@tangelo/tangelo-configuration-toolkit
Version:
Tangelo Configuration Toolkit is a command-line toolkit which offers support for developing a Tangelo configuration.
27 lines (21 loc) • 814 B
JavaScript
const {Worker} = require('worker_threads');
const {Spinner} = require('cli-spinner');
module.exports = function workerWithSpinner (spinnerTxt, workerFn, postMsg, onMessageFn) {
const spinner = new Spinner(` ${spinnerTxt} %s`).setSpinnerDelay(150).start();
const wFnWrap = (wFn) => {
const {parentPort} = require('worker_threads');
parentPort.once('message', postMsg => {
parentPort.postMessage(wFn(postMsg));
});
};
return new Promise((resolve) => {
const worker = new Worker(`(${wFnWrap.toString()})(${workerFn.toString()})`, {eval: true});
worker.on('message', msg => {
spinner.stop(true);
onMessageFn(msg);
resolve();
});
worker.on('error', err => _error('\n' + err.stdout));
worker.postMessage(postMsg);
});
};