UNPKG

@kitmi/jacaranda

Version:

JavaScript application framework

64 lines (63 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _App = /*#__PURE__*/ _interop_require_default(require("../App")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Start a worker app * @param {Function} worker * @param {object} [workerOptions] * @property {string} [workerOptions.workerName] * @property {boolean} [workerOptions.dontStop] - Don't stop after worker done * @property {Function} [workerOptions.initializer] */ async function startWorker(worker, options) { const { workerName, dontStop, initializer, uninitializer, throwOnError, verbose, ...appOptions } = options || {}; if (verbose) { appOptions.logLevel = 'verbose'; } // create an app instance with custom configuration let app = new _App.default(workerName || 'worker', appOptions); try { await app.start_(); if (initializer) { await initializer(app); } const result = await worker(app); if (dontStop) { process.once('SIGINT', ()=>{ app.stop_(); }); } else { await app.stop_(); } if (uninitializer) { await uninitializer(); } return result; } catch (error) { if (app.started) { try { await app.stop_(); } catch (_e) {} } if (throwOnError) { throw error; } // eslint-disable-next-line no-undef console.error(verbose ? error : error.message); process.exit(1); } } const _default = startWorker; //# sourceMappingURL=worker.js.map