pdf-worker.fixture.mjs 749 B

12345678910111213141516171819
  1. /** Real worker-thread carrier for the installed PDF.js worker in the Node smoke. */
  2. import { parentPort, workerData } from 'node:worker_threads'
  3. const listeners = new Map()
  4. const port = {
  5. postMessage: (message, transfer) => parentPort.postMessage(message, transfer),
  6. addEventListener: (_type, listener) => {
  7. const forward = data => listener({ data })
  8. listeners.set(listener, forward)
  9. parentPort.on('message', forward)
  10. },
  11. removeEventListener: (_type, listener) => {
  12. const forward = listeners.get(listener)
  13. if (forward !== undefined) parentPort.off('message', forward)
  14. listeners.delete(listener)
  15. },
  16. }
  17. const { WorkerMessageHandler } = await import(workerData.workerUrl)
  18. WorkerMessageHandler.initializeFromPort(port)