UNPKG

piscina

Version:

A fast, efficient Node.js Worker Thread Pool implementation

44 lines (43 loc) 1.11 kB
import type { MessagePort, Worker } from 'node:worker_threads'; import type { READY } from './common'; import type { kTransferable, kValue } from './symbols'; export interface StartupMessage { filename: string | null; name: string; port: MessagePort; sharedBuffer: Int32Array; atomics: 'async' | 'sync' | 'disabled'; niceIncrement: number; } export interface RequestMessage { taskId: number; task: any; filename: string; name: string; histogramEnabled: number; } export interface ReadyMessage { [READY]: true; } export interface ResponseMessage { taskId: number; result: any; error: Error | null; time: number | null; } export declare const commonState: { isWorkerThread: boolean; workerData: undefined; }; export interface Transferable { readonly [kTransferable]: object; readonly [kValue]: object; } export type ResourceLimits = Worker extends { resourceLimits?: infer T; } ? T : {}; export type EnvSpecifier = typeof Worker extends { new (filename: never, options?: { env: infer T; }): Worker; } ? T : never;