UNPKG

@minimaltech/node-infra

Version:

Minimal Technology NodeJS Infrastructure - Loopback 4 Framework

58 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseWorkerThreadHelper = exports.AbstractWorkerThreadHelper = void 0; const base_helper_1 = require("../../base/base.helper"); const error_utility_1 = require("../../utilities/error.utility"); const node_worker_threads_1 = require("node:worker_threads"); // ------------------------------------------------------------------------------------------- class AbstractWorkerThreadHelper extends base_helper_1.BaseHelper { } exports.AbstractWorkerThreadHelper = AbstractWorkerThreadHelper; // ------------------------------------------------------------------------------------------- class BaseWorkerThreadHelper extends AbstractWorkerThreadHelper { constructor(opts) { const { scope } = opts; super({ scope, identifier: scope }); if (node_worker_threads_1.isMainThread) { throw (0, error_utility_1.getError)({ message: '[BaseWorker] Cannot start worker in MAIN_THREAD', }); } this.buses = {}; } bindWorkerBus(opts) { if (!this.buses) { this.buses = {}; } const { key, bus } = opts; if (this.buses[key]) { this.logger.warn('[bindWorkerBus] Worker Bus existed | key: %s', key); return; } this.buses[key] = bus; } unbindWorkerBus(opts) { var _a, _b; if (!this.buses) { return; } const { key } = opts; if (!(key in this.buses)) { this.logger.warn('[unbindWorkerBus] Worker Bus not existed | key: %s', key); return; } (_b = (_a = this.buses[key]) === null || _a === void 0 ? void 0 : _a.port) === null || _b === void 0 ? void 0 : _b.removeAllListeners(); delete this.buses[key]; } getWorkerBus(opts) { const rs = this.buses[opts.key]; if (!rs) { throw (0, error_utility_1.getError)({ message: `[getWorkerBus] Not found worker bus | key: ${opts.key}`, }); } return rs; } } exports.BaseWorkerThreadHelper = BaseWorkerThreadHelper; //# sourceMappingURL=base.js.map