UNPKG

@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
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); }); };