UNPKG

@rxx/worker

Version:

React MVI micro framework.

75 lines 5.62 kB
"use strict"; /** * @fileoverview * @author Taketoshi Aono */ Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var WorkerPostEventType; (function (WorkerPostEventType) { WorkerPostEventType["INITIALIZED"] = "INITIALIZED"; WorkerPostEventType["DISPATCHED"] = "DISPATCHED"; WorkerPostEventType["UPDATE"] = "UPDATE"; })(WorkerPostEventType = exports.WorkerPostEventType || (exports.WorkerPostEventType = {})); var WorkerReceiveEventType; (function (WorkerReceiveEventType) { WorkerReceiveEventType["DISPATCH"] = "DISPATCH"; WorkerReceiveEventType["INITIALIZE"] = "INITIALIZE"; WorkerReceiveEventType["EXIT"] = "EXIT"; })(WorkerReceiveEventType = exports.WorkerReceiveEventType || (exports.WorkerReceiveEventType = {})); exports.initWorker = function (provisioning) { var subject = new rxjs_1.Subject(); var subscription = new rxjs_1.Subscription(); var post = process.env.RMVI_TEST ? function (_a) { var type = _a.type, payload = _a.payload; global['RECEIVE_WORKER_MESSAGE']({ type: type, payload: payload }); } : typeof postMessage === 'function' ? function (_a) { var type = _a.type, payload = _a.payload; postMessage({ type: type, payload: payload }); } : function () { }; if (typeof Worker === 'function') { onmessage = function (e) { var data = e.data; subject.next(data); }; } var publisher = provisioning.getPublisher(); subscription.add(subject.subscribe(function (_a) { var type = _a.type, payload = _a.payload; switch (type) { case WorkerReceiveEventType.DISPATCH: publisher(payload.type, payload.payload); provisioning.emitAsync(function () { return post({ type: WorkerPostEventType.DISPATCHED, payload: payload }); }); break; case WorkerReceiveEventType.INITIALIZE: provisioning.prepare(payload); provisioning.subscribe(function (state, isInitial) { if (isInitial) { post({ type: WorkerPostEventType.INITIALIZED, payload: state.view, }); } else { post({ type: WorkerPostEventType.UPDATE, payload: state.view }); } }, true); break; case WorkerReceiveEventType.EXIT: publisher.unsubscribe(); provisioning.dispose(); subscription.unsubscribe(); break; default: return; } })); return subject; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOztBQUVILDZCQUE2QztBQUc3QyxJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isa0RBQTJCLENBQUE7SUFDM0IsZ0RBQXlCLENBQUE7SUFDekIsd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLG1CQUFtQixHQUFuQiwyQkFBbUIsS0FBbkIsMkJBQW1CLFFBSTlCO0FBRUQsSUFBWSxzQkFJWDtBQUpELFdBQVksc0JBQXNCO0lBQ2hDLCtDQUFxQixDQUFBO0lBQ3JCLG1EQUF5QixDQUFBO0lBQ3pCLHVDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsc0JBQXNCLEdBQXRCLDhCQUFzQixLQUF0Qiw4QkFBc0IsUUFJakM7QUFHWSxRQUFBLFVBQVUsR0FBRyxVQUFDLFlBQTBCO0lBQ25ELElBQU0sT0FBTyxHQUFHLElBQUksY0FBTyxFQUFpQixDQUFDO0lBQzdDLElBQU0sWUFBWSxHQUFHLElBQUksbUJBQVksRUFBRSxDQUFDO0lBRXhDLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUztRQUNoQyxDQUFDLENBQUMsVUFBQyxFQUFpRDtnQkFBL0MsY0FBSSxFQUFFLG9CQUFPO1lBQ2QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNILENBQUMsQ0FBQyxPQUFPLFdBQVcsS0FBSyxVQUFVO1lBQ2pDLENBQUMsQ0FBQyxVQUFDLEVBQWlEO29CQUEvQyxjQUFJLEVBQUUsb0JBQU87Z0JBQ2QsV0FBVyxDQUFDLEVBQUUsSUFBSSxNQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFDSCxDQUFDLENBQUMsY0FBTyxDQUFDLENBQUM7SUFFZixJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtRQUNoQyxTQUFTLEdBQUcsVUFBQSxDQUFDO1lBQ0gsSUFBQSxhQUFJLENBQU87WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7S0FDSDtJQUVELElBQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxZQUFZLENBQUMsR0FBRyxDQUNkLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBQyxFQUFpQjtZQUFmLGNBQUksRUFBRSxvQkFBTztRQUNoQyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssc0JBQXNCLENBQUMsUUFBUTtnQkFDbEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN6QyxZQUFZLENBQUMsU0FBUyxDQUFDO29CQUNyQixPQUFBLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQztnQkFBdkQsQ0FBdUQsQ0FDeEQsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxzQkFBc0IsQ0FBQyxVQUFVO2dCQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixZQUFZLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBSyxFQUFFLFNBQVM7b0JBQ3RDLElBQUksU0FBUyxFQUFFO3dCQUNiLElBQUksQ0FBQzs0QkFDSCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVzs0QkFDckMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJO3lCQUNwQixDQUFDLENBQUM7cUJBQ0o7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7cUJBQ2pFO2dCQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDVCxNQUFNO1lBQ1IsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJO2dCQUM5QixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3hCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixNQUFNO1lBQ1I7Z0JBQ0UsT0FBTztTQUNWO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyJ9