UNPKG

zorigami

Version:
50 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _a; var worker_constants_1 = require("../worker_constants"); var provide_worker_instance_1 = require("../main_thread_api/provide_worker_instance"); var provide_response_callbacks_1 = require("../shared/provide_response_callbacks"); /* need to import ResponseMessage type */ /* what to do here - type default_handler so that it is of the handler type - make a dictionary type with an indexable interface and readonly properties so that we can avoid using immutable. - */ var default_handler = function (event, respond) { throw new Error(JSON.stringify(event)); }; var default_main_sub_to_worker_api = (_a = {}, _a[worker_constants_1.RESPONSE_MESSAGE] = function (event) { provide_response_callbacks_1.default.getResponseCallback(event.data.callback_guid)(event); provide_response_callbacks_1.default.removeResponseCallback(event.data.callback_guid); }, _a[worker_constants_1.EXPOSE_WORKER_API] = function (event) { /* gets called when the worker is exposing it's api to the main thread */ var worker_name = event.data.worker_name; var api_config = event.data.api_config; provide_worker_instance_1.default.storeWorkerApi(worker_name, api_config); provide_worker_instance_1.default.storeWorkerPortAPI(worker_name, api_config); /* override respond here because the worker name will not be stored yet when it is generated in dispatch_message_from_worker */ var worker_interfaces = provide_worker_instance_1.default.getWorkerInterface(worker_name); if (worker_interfaces) { var respond = worker_interfaces.createResponse(event); respond({ event: 'done storing worker api on main thread' }); } else { var message = 'could not find response function for '; throw new Error(message + "::" + worker_name); } }, _a); exports.dispatch_message_from_worker = function (event) { var worker_name = event.data.worker_name; var worker_interfaces = provide_worker_instance_1.default.getWorkerInterface(worker_name); if (worker_interfaces) { var respond = worker_interfaces.createResponse(event); (default_main_sub_to_worker_api[event.data.type] || default_handler)(event, respond); } }; //# sourceMappingURL=dispatch_message_from_worker.js.map