UNPKG

@ayonli/jsext

Version:

A JavaScript extension package for building strong and modern applications.

41 lines (40 loc) 1.44 kB
/// <reference types="node" /> /// <reference types="node" /> import type { ChildProcess } from "node:child_process"; import { Channel } from "../chan.ts"; import { AsyncTask } from "../async.ts"; import { BunWorker, NodeWorker, CallResponse } from "./types.ts"; type RemoteTask = { module: string; fn: string; error?: unknown; result?: { value: any; }; promise?: AsyncTask<any>; channel?: Channel<IteratorResult<any>>; generate?: () => void; }; export declare const remoteTasks: Map<number, RemoteTask>; export declare const getMaxParallelism: Promise<number>; export declare function isCallResponse(msg: any): msg is CallResponse; export declare function createWorker(options: { parallel: { workerEntry: string | undefined; }; adapter?: "worker_threads" | "child_process"; }): Promise<{ worker: Worker | BunWorker | NodeWorker | ChildProcess; workerId: number; kind: "web_worker" | "bun_worker" | "node_worker" | "node_process"; }>; export declare function acquireWorker(taskId: number, parallel: { maxWorkers: number | undefined; workerEntry: string | undefined; }): Promise<Worker | NodeWorker | BunWorker>; export declare function wrapArgs<A extends any[]>(args: A, getWorker: Promise<Worker | BunWorker | NodeWorker | ChildProcess>): { args: A; transferable: ArrayBuffer[]; }; export declare function unwrapReturnValue(value: any): any; export {};