UNPKG

delphirtl

Version:
38 lines 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.workerData = exports.parentPort = exports.Worker = exports.isMainThread = void 0; exports.runInThread = runInThread; const worker_threads_1 = require("worker_threads"); /** * Runs a function in a thread * * @template T * @param {() => T} fn The function to run in a thread * @returns {Promise<T>} * @category Threads */ async function runInThread(fn) { return new Promise((resolve, reject) => { const worker = new worker_threads_1.Worker(__filename, { workerData: { fn: fn.toString() } }); worker.on('message', resolve); worker.on('error', reject); worker.on('exit', (code) => { if (code !== 0) { reject(new Error(`Worker stopped with exit code ${code}`)); } }); }); } if (!worker_threads_1.isMainThread) { const { workerData } = require('worker_threads'); const fn = new Function(`return (${workerData.fn})`)(); worker_threads_1.parentPort?.postMessage(fn()); } var worker_threads_2 = require("worker_threads"); Object.defineProperty(exports, "isMainThread", { enumerable: true, get: function () { return worker_threads_2.isMainThread; } }); Object.defineProperty(exports, "Worker", { enumerable: true, get: function () { return worker_threads_2.Worker; } }); Object.defineProperty(exports, "parentPort", { enumerable: true, get: function () { return worker_threads_2.parentPort; } }); Object.defineProperty(exports, "workerData", { enumerable: true, get: function () { return worker_threads_2.workerData; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGhyZWFkdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOENJLGtDQUFXO0FBOUNmLG1EQUFrRTtBQUVsRTs7Ozs7OztHQU9HO0FBQ0gsS0FBSyxVQUFVLFdBQVcsQ0FBSSxFQUFXO0lBQ3JDLE9BQU8sSUFBSSxPQUFPLENBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSx1QkFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1NBQ3BDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsSUFBSSxDQUFDLDZCQUFZLEVBQUUsQ0FBQztJQUNoQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsTUFBTSxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsV0FBVyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3ZELDJCQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQWtCRCxpREFBOEU7QUFBckUsOEdBQUEsWUFBWSxPQUFBO0FBQUUsd0dBQUEsTUFBTSxPQUFBO0FBQUUsNEdBQUEsVUFBVSxPQUFBO0FBQUUsNEdBQUEsVUFBVSxPQUFBIn0=