UNPKG

@minimaltech/node-infra

Version:

Minimal Technology NodeJS Infrastructure - Loopback 4 Framework

68 lines 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseWorkerBusHelper = exports.AbstractWorkerBusHelper = exports.BaseWorkerMessageBusHandlerHelper = exports.AbstractWorkerMessageBusHandlerHelper = void 0; const base_helper_1 = require("../../base/base.helper"); // ------------------------------------------------------------------------------------------- class AbstractWorkerMessageBusHandlerHelper extends base_helper_1.BaseHelper { } exports.AbstractWorkerMessageBusHandlerHelper = AbstractWorkerMessageBusHandlerHelper; // ------------------------------------------------------------------------------------------- class BaseWorkerMessageBusHandlerHelper extends AbstractWorkerMessageBusHandlerHelper { constructor(opts) { super({ scope: opts.scope, identifier: opts.scope }); this.onMessage = opts.onMessage; this.onClose = (opts === null || opts === void 0 ? void 0 : opts.onClose) ? opts.onClose : () => { }; this.onExit = (opts === null || opts === void 0 ? void 0 : opts.onExit) ? opts.onExit : (_opts) => { this.logger.warn('[onExit] worker EXITED | exitCode: %s', _opts.exitCode); }; this.onError = (opts === null || opts === void 0 ? void 0 : opts.onError) ? opts.onError : (_opts) => { this.logger.error('[onError] worker error: %s', _opts.error); }; } } exports.BaseWorkerMessageBusHandlerHelper = BaseWorkerMessageBusHandlerHelper; // ------------------------------------------------------------------------------------------- class AbstractWorkerBusHelper extends base_helper_1.BaseHelper { } exports.AbstractWorkerBusHelper = AbstractWorkerBusHelper; // ------------------------------------------------------------------------------------------- class BaseWorkerBusHelper extends AbstractWorkerBusHelper { constructor(opts) { super({ scope: opts.scope, identifier: opts.scope }); // Initialize this.port = opts.port; this.handler = opts.busHandler; // Binding events this.port.on('message', message => { this.handler.onMessage({ message }); }); this.port.on('error', error => { this.handler.onError({ error }); }); this.port.on('messageerror', error => { this.handler.onError({ error }); }); this.port.on('exit', exitCode => { this.handler.onExit({ exitCode }); }); this.port.on('close', () => { this.handler.onClose(); }); } postMessage(opts) { var _a, _b; if (!this.port) { this.logger.error('[postMessage] Failed to post message to main | Invalid parentPort!'); return; } (_a = this.onBeforePostMessage) === null || _a === void 0 ? void 0 : _a.call(this, opts); this.port.postMessage(opts.message, opts.transferList); (_b = this.onAfterPostMessage) === null || _b === void 0 ? void 0 : _b.call(this, opts); } } exports.BaseWorkerBusHelper = BaseWorkerBusHelper; //# sourceMappingURL=worker-bus.js.map