UNPKG

async-transforms

Version:
61 lines (51 loc) 1.68 kB
'use strict'; var worker = require('worker_threads'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n['default'] = e; return Object.freeze(n); } var worker__default = /*#__PURE__*/_interopDefaultLegacy(worker); /** * @fileoverview Runnable that invokes Worker. */ const {parentPort} = worker__default['default']; if (worker__default['default'].isMainThread || !parentPort) { throw new TypeError('cannot run on main thread'); } const {dep} = worker__default['default'].workerData; Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(dep)); }) .then(({default: method}) => { parentPort.on('message', ({args, port}) => { Promise.resolve() .then(() => method(...args)) .then((result) => port.postMessage({result})) .catch((error) => port.postMessage({error})) .then(() => port.close()); }); parentPort.postMessage({ok: true}); }) .catch((error) => { // Failure mode: the module couldn't be imported, complain loudly. parentPort.on('message', ({port}) => { port.postMessage({error}); port.close(); }); parentPort.postMessage({ok: false}); throw error; });