MCPcopy
hub / github.com/simstudioai/sim / renderInWorker

Function renderInWorker

apps/sim/lib/pptx-renderer/utils/pdf-renderer.ts:133–164  ·  view source on GitHub ↗
(
  pdfData: Uint8Array,
  width: number,
  height: number,
  pdfjsUrl: string
)

Source from the content-addressed store, hash-verified

131}
132
133function renderInWorker(
134 pdfData: Uint8Array,
135 width: number,
136 height: number,
137 pdfjsUrl: string
138): Promise<Blob | null> {
139 return new Promise((resolve) => {
140 const worker = getWorker(pdfjsUrl)
141 if (!worker) {
142 resolve(null)
143 return
144 }
145
146 const id = ++_msgId
147 _pending.set(id, {
148 resolve,
149 reject: () => resolve(null),
150 })
151
152 // Transfer the buffer to avoid copying
153 const copy = pdfData.slice() // copy so caller retains original
154 worker.postMessage({ id, pdfData: copy, width, height, pdfjsUrl }, [copy.buffer])
155
156 // Timeout: if worker doesn't respond in 15s, give up
157 setTimeout(() => {
158 if (_pending.has(id)) {
159 _pending.delete(id)
160 resolve(null)
161 }
162 }, 15000)
163 })
164}
165
166// ---------------------------------------------------------------------------
167// Public API

Callers 1

renderPdfToImageFunction · 0.85

Calls 4

getWorkerFunction · 0.70
setMethod · 0.65
deleteMethod · 0.65
resolveFunction · 0.50

Tested by

no test coverage detected