@pilotlab/lux-tools
Version:
A luxurious user experience framework, developed by your friends at Pilot.
32 lines • 1.32 kB
JavaScript
;
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