mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-11 01:14:35 +01:00
Refactor and enhance type safety across various modules
- Updated function parameters and return types in `page-preview.ts`, `pdf-decrypt.ts`, and `pymupdf-loader.ts` for improved type safety. - Introduced type definitions for `CpdfInstance`, `PyMuPDFInstance`, and other related types to ensure better type checking. - Enhanced error handling in `sanitize.ts` by creating a utility function for error messages. - Removed unnecessary type assertions and improved type inference in `editor.ts`, `serialization.ts`, and `tools.test.ts`. - Added type definitions for markdown-it plugins to improve compatibility and type safety. - Enforced stricter TypeScript settings by enabling `noImplicitAny` in `tsconfig.json`. - Cleaned up test files by refining type assertions and ensuring consistency in type usage.
This commit is contained in:
1 parent
a1fc2fc3c6
commit
9d0b68e18c
114 files changed
+2576
-1867
No files matched your search
@@ -11,8 +11,11 @@ const embedPdfWasmUrl = new URL(
|
||||
import.meta.url
|
||||
).href;
|
||||
|
||||
let viewerInstance: any = null;
|
||||
let docManagerPlugin: any = null;
|
||||
import type { EmbedPdfContainer } from 'embedpdf-snippet';
|
||||
import type { DocManagerPlugin } from '@/types';
|
||||
|
||||
let viewerInstance: EmbedPdfContainer | null = null;
|
||||
let docManagerPlugin: DocManagerPlugin | null = null;
|
||||
let isViewerInitialized = false;
|
||||
const fileEntryMap = new Map<string, HTMLElement>();
|
||||
|
||||
@@ -148,33 +151,37 @@ async function handleFiles(files: FileList) {
|
||||
});
|
||||
|
||||
const registry = await viewerInstance.registry;
|
||||
docManagerPlugin = registry.getPlugin('document-manager').provides();
|
||||
docManagerPlugin = registry
|
||||
.getPlugin('document-manager')
|
||||
.provides() as unknown as DocManagerPlugin;
|
||||
|
||||
docManagerPlugin.onDocumentClosed((data: any) => {
|
||||
const docId = data?.id || data;
|
||||
docManagerPlugin.onDocumentClosed((data: { id?: string }) => {
|
||||
const docId = data?.id || '';
|
||||
removeFileEntry(docId);
|
||||
});
|
||||
|
||||
docManagerPlugin.onDocumentOpened((data: any) => {
|
||||
const docId = data?.id;
|
||||
const docKey = data?.name;
|
||||
if (!docId) return;
|
||||
const pendingEntry = fileDisplayArea.querySelector(
|
||||
`[data-pending-name="${CSS.escape(docKey)}"]`
|
||||
) as HTMLElement;
|
||||
if (pendingEntry) {
|
||||
pendingEntry.removeAttribute('data-pending-name');
|
||||
fileEntryMap.set(docId, pendingEntry);
|
||||
const removeBtn = pendingEntry.querySelector(
|
||||
'[data-remove-btn]'
|
||||
docManagerPlugin.onDocumentOpened(
|
||||
(data: { id?: string; name?: string }) => {
|
||||
const docId = data?.id;
|
||||
const docKey = data?.name;
|
||||
if (!docId) return;
|
||||
const pendingEntry = fileDisplayArea.querySelector(
|
||||
`[data-pending-name="${CSS.escape(docKey)}"]`
|
||||
) as HTMLElement;
|
||||
if (removeBtn) {
|
||||
removeBtn.onclick = () => {
|
||||
docManagerPlugin.closeDocument(docId);
|
||||
};
|
||||
if (pendingEntry) {
|
||||
pendingEntry.removeAttribute('data-pending-name');
|
||||
fileEntryMap.set(docId, pendingEntry);
|
||||
const removeBtn = pendingEntry.querySelector(
|
||||
'[data-remove-btn]'
|
||||
) as HTMLElement;
|
||||
if (removeBtn) {
|
||||
removeBtn.onclick = () => {
|
||||
docManagerPlugin.closeDocument(docId);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
addFileEntries(fileDisplayArea, decryptedFiles);
|
||||
|
||||
|
||||
Reference in new issue
Block a user