UNPKG

typescript-libraries

Version:
33 lines (32 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TSWorker = void 0; var TSWorker = /** @class */ (function () { function TSWorker() { } TSWorker.create = function (WorkerFunction) { if ('Worker' in window) { var worker_1 = new WorkerFunction(); var lastRequestId_1 = 0; var pendingPromises_1 = new Map(); worker_1.onmessage = function (event) { var _a = event.data, id = _a.id, result = _a.result; if (pendingPromises_1.has(id)) { var resolve = pendingPromises_1.get(id); resolve(result); pendingPromises_1.delete(id); } }; return function (params) { var requestId = ++lastRequestId_1; var promise = new Promise(function (resolve) { pendingPromises_1.set(requestId, resolve); worker_1.postMessage({ id: requestId, params: params }); }); return promise; }; } }; return TSWorker; }()); exports.TSWorker = TSWorker;