redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
28 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleCallableWorker = handleCallableWorker;
const index_js_1 = require("../types/index.js");
const worker_thread_message_js_1 = require("./worker-thread-message.js");
function handleCallableWorker(worker, messagePort) {
const callback = (err, reply) => {
if (err) {
(0, worker_thread_message_js_1.postMessage)(messagePort, index_js_1.EWorkerThreadChildExecutionCode.PROCESSING_ERROR, err);
}
else {
(0, worker_thread_message_js_1.postMessage)(messagePort, index_js_1.EWorkerThreadChildExecutionCode.OK, null, reply);
}
};
const onMessage = (message) => {
if (message.type === index_js_1.EWorkerThreadParentMessage.CALL) {
const { payload } = message;
try {
worker(payload, callback);
}
catch (err) {
(0, worker_thread_message_js_1.postMessage)(messagePort, index_js_1.EWorkerThreadChildExecutionCode.PROCESSING_CAUGHT_ERROR, err);
}
}
};
messagePort.on('message', onMessage);
}
//# sourceMappingURL=callable-worker-thread.js.map