File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -33,10 +33,25 @@ import {
3333 TaskError ,
3434 PdfErrorCode ,
3535 SearchResult ,
36+ serializeLogger ,
3637} from '@embedpdf/models' ;
3738import type { IPdfExecutor , ImageDataLike } from './pdf-engine' ;
3839import type { WorkerRequest , WorkerResponse } from './pdfium-native-runner' ;
3940
41+ /**
42+ * Options for creating a RemoteExecutor
43+ */
44+ export interface RemoteExecutorOptions {
45+ /**
46+ * URL to the pdfium.wasm file (required)
47+ */
48+ wasmUrl : string ;
49+ /**
50+ * Logger instance for debugging
51+ */
52+ logger ?: Logger ;
53+ }
54+
4055const LOG_SOURCE = 'RemoteExecutor' ;
4156const LOG_CATEGORY = 'Worker' ;
4257
@@ -102,10 +117,19 @@ export class RemoteExecutor implements IPdfExecutor {
102117
103118 constructor (
104119 private worker : Worker ,
105- logger ?: Logger ,
120+ options : RemoteExecutorOptions ,
106121 ) {
107- this . logger = logger ?? new NoopLogger ( ) ;
122+ this . logger = options . logger ?? new NoopLogger ( ) ;
108123 this . worker . addEventListener ( 'message' , this . handleMessage ) ;
124+
125+ // Send initialization message with WASM URL
126+ this . worker . postMessage ( {
127+ id : '0' ,
128+ type : 'wasmInit' ,
129+ wasmUrl : options . wasmUrl ,
130+ logger : options . logger ? serializeLogger ( options . logger ) : undefined ,
131+ } ) ;
132+
109133 this . logger . debug ( LOG_SOURCE , LOG_CATEGORY , 'RemoteExecutor created' ) ;
110134 }
111135
Original file line number Diff line number Diff line change 1- import { Logger , serializeLogger } from '@embedpdf/models' ;
1+ import { Logger } from '@embedpdf/models' ;
22import { PdfEngine } from '../../orchestrator/pdf-engine' ;
33import { RemoteExecutor } from '../../orchestrator/remote-executor' ;
44import { ImageEncoderWorkerPool } from '../../image-encoder' ;
@@ -71,16 +71,8 @@ export function createPdfiumEngine(
7171 } ,
7272 ) ;
7373
74- // Send initialization message with WASM URL
75- worker . postMessage ( {
76- id : '0' ,
77- type : 'wasmInit' ,
78- wasmUrl,
79- logger : logger ? serializeLogger ( logger ) : undefined ,
80- } ) ;
81-
82- // Create RemoteExecutor (proxy to worker)
83- const remoteExecutor = new RemoteExecutor ( worker , logger ) ;
74+ // Create RemoteExecutor (proxy to worker) - handles wasmInit internally
75+ const remoteExecutor = new RemoteExecutor ( worker , { wasmUrl, logger } ) ;
8476
8577 const finalEncoderWorkerUrl = URL . createObjectURL (
8678 new Blob ( [ __ENCODER_WORKER_BODY__ ] , { type : 'application/javascript' } ) ,
You can’t perform that action at this time.
0 commit comments