Offload functions to worker threads with shared memory primitives for Node.js.
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: prefer unknown over any where possible

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Devin Ivy 877e9272 8bff1ec8

+4 -4
+1 -1
src/execute.ts
··· 6 6 const pending = new Map<number, { resolve: (value: any) => void; reject: (reason: any) => void }>(); 7 7 8 8 export function setupWorker(worker: Worker): void { 9 - worker.on('message', (msg: { callId: number; value?: any; error?: string }) => { 9 + worker.on('message', (msg: { callId: number; value?: unknown; error?: string }) => { 10 10 const call = pending.get(msg.callId); 11 11 if (!call) return; 12 12 pending.delete(msg.callId);
+3 -3
src/sync/reconstruct.ts
··· 1 1 const SYNC = Symbol.for('moroutine.sync'); 2 2 3 - const registry = new Map<string, new (buffer: SharedArrayBuffer, byteOffset: number) => any>(); 3 + const registry = new Map<string, new (buffer: SharedArrayBuffer, byteOffset: number) => unknown>(); 4 4 5 - export function registerSync(tag: string, ctor: new (buffer: SharedArrayBuffer, byteOffset: number) => any): void { 5 + export function registerSync(tag: string, ctor: new (buffer: SharedArrayBuffer, byteOffset: number) => unknown): void { 6 6 registry.set(tag, ctor); 7 7 } 8 8 9 9 export function serializeArg(arg: unknown): unknown { 10 10 if (typeof arg === 'object' && arg !== null && SYNC in arg) { 11 - const sync = (arg as any)[SYNC](); 11 + const sync = (arg as { [key: symbol]: () => { tag: string; buffer: SharedArrayBuffer; byteOffset: number } })[SYNC](); 12 12 return { __sync__: sync.tag, buffer: sync.buffer, byteOffset: sync.byteOffset }; 13 13 } 14 14 return arg;