UNPKG

workerpool

Version:

Offload tasks to a pool of workers on node.js and in the browser

61 lines (51 loc) 1.49 kB
const {platform, isMainThread, cpus} = require('./environment'); /** @typedef {import("./Pool")} Pool */ /** @typedef {import("./types.js").WorkerPoolOptions} WorkerPoolOptions */ /** @typedef {import("./types.js").WorkerRegisterOptions} WorkerRegisterOptions */ /** * @template { { [k: string]: (...args: any[]) => any } } T * @typedef {import('./types.js').Proxy<T>} Proxy<T> */ /** * @overload * Create a new worker pool * @param {WorkerPoolOptions} [script] * @returns {Pool} pool */ /** * @overload * Create a new worker pool * @param {string} [script] * @param {WorkerPoolOptions} [options] * @returns {Pool} pool */ function pool(script, options) { var Pool = require('./Pool'); return new Pool(script, options); }; exports.pool = pool; /** * Create a worker and optionally register a set of methods to the worker. * @param {{ [k: string]: (...args: any[]) => any }} [methods] * @param {WorkerRegisterOptions} [options] */ function worker(methods, options) { var worker = require('./worker'); worker.add(methods, options); }; exports.worker = worker; /** * Sends an event to the parent worker pool. * @param {any} payload */ function workerEmit(payload) { var worker = require('./worker'); worker.emit(payload); }; exports.workerEmit = workerEmit; const {Promise} = require('./Promise'); exports.Promise = Promise; exports.Transfer = require('./transfer'); exports.platform = platform; exports.isMainThread = isMainThread; exports.cpus = cpus;