UNPKG

@pilotlab/lux-tools

Version:

A luxurious user experience framework, developed by your friends at Pilot.

32 lines 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const is_1 = require("@pilotlab/is"); class BackgroundProcess { constructor() { } run(data) { this.p_worker.postMessage({ 'command': 'start', 'data': data }); } create() { let blob = new Blob(["self.addEventListener('message', function(e) { var data = e.data; switch (data.command) { case 'start': self.postMessage(data.data); break; case 'stop': self.close(); break; default: self.postMessage('Unknown command: ' + data.command); }; }, false);"]); this.p_blobUrl = window.URL.createObjectURL(blob); if (is_1.default.empty(this.p_blobUrl)) return; this.p_worker = new Worker(this.p_blobUrl); if (is_1.default.empty(this.p_worker)) return; this.p_worker.onmessage = (e) => { this.p_function(e.data); }; } destroy() { if (is_1.default.notEmpty(this.p_worker)) this.p_worker.postMessage({ 'command': 'stop' }); if (is_1.default.notEmpty(this.p_blobUrl)) window.URL.revokeObjectURL(this.p_blobUrl); this.p_worker = null; this.p_blobUrl = ''; } } exports.BackgroundProcess = BackgroundProcess; exports.default = BackgroundProcess; //# sourceMappingURL=index.js.map