worker.ts 399 B

12345678910
  1. const ch2: Record<string, string> = {};
  2. export default <T>(c: string, id: number, msg: unknown, transfer: ArrayBuffer[], cb: (err: Error, msg: T) => void) => {
  3. const u = ch2[id] ||= URL.createObjectURL(new Blob([c], { type: 'text/javascript' }));
  4. const w = new Worker(u);
  5. w.onerror = e => cb(e.error, null);
  6. w.onmessage = e => cb(null, e.data);
  7. w.postMessage(msg, transfer);
  8. return w;
  9. }