UNPKG

zorigami

Version:
52 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var provide_sibling_ports_1 = require("../worker_api/provide_sibling_ports"); var provide_name_1 = require("../shared/provide_name"); var provide_api_config_1 = require("../shared/provide_api_config"); var zorigami_types_1 = require("../zorigami_types"); var default_handler = function (event, respond) { console.warn('default_handler: throwing error', event.data, provide_name_1.default.getWorkerName()); throw new Error(JSON.stringify(event)); }; var generic_worker_api = {}; function dispatchMessage(event) { var worker_name = event.data.worker_name || 'Error: worker name not found'; var response_provider = provide_sibling_ports_1.default.getPortInterface(worker_name); if (zorigami_types_1.isCustomPort(response_provider)) { // console.log('found response_provider', event); var respond = response_provider.createResponse(event); var built_in_handler = generic_worker_api[event.data.type]; try { if (built_in_handler) { console.log('calling built_in_handler for ', event.data); built_in_handler(event, respond); } else { console.log('dispatching custom worker registered event', event.data); provide_api_config_1.default[event.data.type](event, respond); } } catch (error) { console.warn('dispatchMessage failed with error', error); /* re-throw the error */ throw error; } /* this throws in the new version because the response function is undefined. normally the 'worker_accept_and_trade_api_with_main' method would just ignore the undefined response function but in the TS version it just never gets called */ } else { var respond = function () { return undefined; }; try { generic_worker_api[event.data.type](event, respond); } catch (inner_error) { throw new Error(JSON.stringify(provide_name_1.default.getWorkerName()) + " ICustomWorkerPort\n for worker_name: " + JSON.stringify(event.data.worker_name) + " not found\n " + JSON.stringify(event.data) + "\n " + JSON.stringify(inner_error) + "\n "); } } } exports.default = dispatchMessage; //# sourceMappingURL=dispatch_message.js.map