refactor(pdf-viewer): export LibLoader type and update callers

Exporting LibLoader gives the type a stable, named identity.
PdfViewer.svelte and PdfViewer.svelte.spec.ts now import it directly
instead of using Parameters<typeof createPdfRenderer>[0].

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-11 23:12:55 +02:00
parent 11c61c8a77
commit e529f9f7d1
3 changed files with 5 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import { onMount, setContext, untrack } from 'svelte';
import { createPdfRenderer } from '$lib/document/viewer/usePdfRenderer.svelte';
import { createPdfRenderer, type LibLoader } from '$lib/document/viewer/usePdfRenderer.svelte';
import PdfControls from './PdfControls.svelte';
import AnnotationLayer from '$lib/document/annotation/AnnotationLayer.svelte';
import type { Annotation } from '$lib/shared/types';
@@ -36,7 +36,7 @@ let {
documentFileHash?: string | null;
annotationsDimmed?: boolean;
flashAnnotationId?: string | null;
libLoader?: Parameters<typeof createPdfRenderer>[0];
libLoader?: LibLoader;
} = $props();
const renderer = untrack(() => createPdfRenderer(libLoader));

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, afterEach } from 'vitest';
import { cleanup, render } from 'vitest-browser-svelte';
import { page } from 'vitest/browser';
import type { createPdfRenderer } from '$lib/document/viewer/usePdfRenderer.svelte';
import type { LibLoader } from '$lib/document/viewer/usePdfRenderer.svelte';
import PdfViewer from './PdfViewer.svelte';
afterEach(cleanup);
@@ -28,7 +28,7 @@ function makeFakePdfjsLib() {
} as unknown as typeof import('pdfjs-dist');
}
function makeFakeLibLoader(): Parameters<typeof createPdfRenderer>[0] {
function makeFakeLibLoader(): LibLoader {
const fakePdfjs = makeFakePdfjsLib();
return vi.fn().mockResolvedValue([fakePdfjs, { default: '' }] as const);
}

View File

@@ -1,6 +1,6 @@
import type { PDFDocumentProxy, RenderTask } from 'pdfjs-dist';
type LibLoader = () => Promise<readonly [typeof import('pdfjs-dist'), { default: string }]>;
export type LibLoader = () => Promise<readonly [typeof import('pdfjs-dist'), { default: string }]>;
const defaultLibLoader: LibLoader = () =>
Promise.all([import('pdfjs-dist'), import('pdfjs-dist/build/pdf.worker.min.mjs?url')]);