@@ -8,9 +8,16 @@ let pdfjsPromise: Promise<typeof import('pdfjs-dist')> | null = null
88let workerUrlPromise : Promise < string > | null = null
99let workerSrcOverride : string | null = null
1010
11+ type PdfjsModule = typeof import ( 'pdfjs-dist' )
12+
13+ function normalizePdfjs ( mod : PdfjsModule ) : PdfjsModule {
14+ const m = mod as PdfjsModule & { default ?: PdfjsModule }
15+ return ( m . default ?. PDFWorker ? m . default : m ) as PdfjsModule
16+ }
17+
1118function loadPdfjs ( ) {
1219 if ( ! pdfjsPromise ) {
13- pdfjsPromise = import ( 'pdfjs-dist' )
20+ pdfjsPromise = import ( 'pdfjs-dist' ) . then ( normalizePdfjs )
1421 }
1522 return pdfjsPromise
1623}
@@ -24,7 +31,10 @@ function loadWorkerUrl() {
2431 return workerUrlPromise
2532}
2633
27- async function ensureWorkerSrc ( pdfjs : typeof import ( 'pdfjs-dist' ) ) {
34+ async function ensureWorkerSrc ( pdfjs : PdfjsModule ) {
35+ if ( ! pdfjs ?. GlobalWorkerOptions ) {
36+ return
37+ }
2838 if ( workerSrcOverride ) {
2939 pdfjs . GlobalWorkerOptions . workerSrc = workerSrcOverride
3040 return
@@ -34,7 +44,7 @@ async function ensureWorkerSrc(pdfjs: typeof import('pdfjs-dist')) {
3444 }
3545}
3646
37- async function getSharedWorker ( pdfjs : typeof import ( 'pdfjs-dist' ) ) : Promise < PDFWorker > {
47+ async function getSharedWorker ( pdfjs : PdfjsModule ) : Promise < PDFWorker > {
3848 if ( ! sharedWorker ) {
3949 await ensureWorkerSrc ( pdfjs )
4050 sharedWorker = new pdfjs . PDFWorker ( { } ) as PDFWorker
@@ -44,9 +54,14 @@ async function getSharedWorker(pdfjs: typeof import('pdfjs-dist')): Promise<PDFW
4454
4555export function setWorkerPath ( path : string ) {
4656 workerSrcOverride = path
57+ sharedWorker = null
4758 if ( pdfjsPromise ) {
4859 pdfjsPromise . then ( ( pdfjs ) => {
49- pdfjs . GlobalWorkerOptions . workerSrc = path
60+ if ( pdfjs ?. GlobalWorkerOptions ) {
61+ pdfjs . GlobalWorkerOptions . workerSrc = path
62+ }
63+ } ) . catch ( ( error ) => {
64+ console . warn ( 'setWorkerPath: failed to update pdfjs workerSrc immediately' , error )
5065 } )
5166 }
5267}
0 commit comments