import apiManager from "./apiManager"; import AppStorage from '../storage'; import cryptoWorker from "../crypto/cryptoworker"; import networkerFactory from "./networkerFactory"; //const ctx: Worker = self as any; const ctx = self; //console.error('INCLUDE !!!', new Error().stack); networkerFactory.setUpdatesProcessor((obj, bool) => { ctx.postMessage({update: {obj, bool}}); }); ctx.onmessage = function(e) { var taskID = e.data.taskID; if(e.data.useLs) { AppStorage.finishTask(e.data.taskID, e.data.args); return; } switch(e.data.task) { case 'unzip': return cryptoWorker.gzipUncompress.apply(cryptoWorker, e.data.args).then(result => { ctx.postMessage({taskID: taskID, result: result}); }); default: { try { let result = apiManager[e.data.task].apply(apiManager, e.data.args); if(result instanceof Promise) { result.then(result => { //console.log(e.data.task + ' result:', result, taskID); ctx.postMessage({taskID: taskID, result: result}); }).catch(err => { //console.error(e.data.task + ' err:', err, taskID); ctx.postMessage({taskID: taskID, error: err}); }); } else { ctx.postMessage({taskID: taskID, result: result}); } } catch(err) { ctx.postMessage({taskID: taskID, error: err}); } //throw new Error('Unknown task: ' + e.data.task); } } } ctx.postMessage('ready');