-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasync-proxy.dev.js
1 lines (1 loc) · 10.4 KB
/
async-proxy.dev.js
1
!function(r){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.asyncProxy=r()}}(function(){return function r(e,t,a){function o(s,i){if(!t[s]){if(!e[s]){var l="function"==typeof require&&require;if(!i&&l)return l(s,!0);if(n)return n(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[s]={exports:{}};e[s][0].call(u.exports,function(r){var t=e[s][1][r];return o(t?t:r)},u,u.exports,r,e,t,a)}return t[s].exports}for(var n="function"==typeof require&&require,s=0;s<a.length;s++)o(a[s]);return o}({1:[function(r,e,t){"use strict";e.exports.SubWorkerEmulationForChrome=r("sub-worker-emulation-for-chrome"),e.exports.AsyncProxyFactory=r("async-proxy-factory"),e.exports.AsyncProxySlave=r("async-proxy-slave"),e.exports.AsyncProxyMaster=r("async-proxy-master"),e.exports.ScriptsToImportPool=r("scripts-to-Import-Pool")},{"async-proxy-factory":2,"async-proxy-master":3,"async-proxy-slave":4,"scripts-to-Import-Pool":5,"sub-worker-emulation-for-chrome":7}],2:[function(r,e,t){"use strict";var a=r("async-proxy-master"),o=function(){function r(r,t,a){a[0]||{};r.prototype[t]=function(){for(var r=e.getWorkerHelper(this),o=[],n=0;n<arguments.length;++n){var s=a[n+1],i=arguments[n];if("callback"===s)o[n]=r.wrapCallback(i);else{if(s)throw"AsyncProxyFactory error: Unrecognized argument description "+s+" in argument "+(n+1)+" of method "+t;o[n]=i}}return r.callFunction(t,o,a[0])}}var e={};return e.create=function(r,t,a,o){if(!r||!r.length)throw"AsyncProxyFactory error: missing scriptsToImport (2nd argument)";var n=o||function(){var a=e.convertArgs(arguments);e.initialize(this,r,t,a)};return a&&e.addMethods(n,a),n},e.addMethods=function(e,t){for(var a in t)r(e,a,t[a]||[]);return e},e.initialize=function(r,e,t,a){if(r.__workerHelperInitArgs)throw"asyncProxy error: Double initialization of AsyncProxy master";r.__workerHelperInitArgs={scriptsToImport:e,ctorName:t,ctorArgs:a}},e.convertArgs=function(r){for(var e=new Array(r.length),t=0;t<r.length;++t)e[t]=r[t];return e},e.getWorkerHelper=function(r){if(!r.__workerHelper){if(!r.__workerHelperInitArgs)throw"asyncProxy error: asyncProxyFactory.initialize() not called yet";r.__workerHelper=new a(r.__workerHelperInitArgs.scriptsToImport,r.__workerHelperInitArgs.ctorName,r.__workerHelperInitArgs.ctorArgs||[])}return r.__workerHelper},e}();e.exports=o},{"async-proxy-master":3}],3:[function(r,e,t){"use strict";var a=r("scripts-to-import-pool"),o=function(){function r(a,n,s,i){function l(r){o(u,r)}var u=this;i=i||{},u._callbacks=[],u._pendingPromiseCalls=[],u._subWorkerById=[],u._subWorkers=[],u._userDataHandler=null,u._notReturnedFunctions=0,u._functionsBufferSize=i.functionsBufferSize||5,u._pendingMessages=[];var p=e(),f=t.toString();f=f.replace("SCRIPT_PLACEHOLDER",p);var d=new Blob(["(",f,")()"],{type:"application/javascript"}),y=URL.createObjectURL(d);u._worker=new Worker(y),u._worker.onmessage=l,u._worker.postMessage({functionToCall:"ctor",scriptsToImport:a,ctorName:n,args:s,callId:++c,isPromise:!1,masterEntryUrl:r.getEntryUrl()})}function e(){var r=new Error;return a._getScriptName(r)}function t(){importScripts("SCRIPT_PLACEHOLDER"),asyncProxy.AsyncProxySlave._initializeSlave()}function o(r,e){var t=e.data.callId;switch(e.data.type){case"functionCalled":--r._notReturnedFunctions,i(r);break;case"promiseResult":var a=r._pendingPromiseCalls[t];delete r._pendingPromiseCalls[t];var o=e.data.result;a.resolve(o);break;case"promiseFailure":var s=r._pendingPromiseCalls[t];delete r._pendingPromiseCalls[t];var l=e.data.reason;s.reject(l);break;case"userData":null!==r._userDataHandler&&r._userDataHandler(e.data.userData);break;case"callback":var c=r._callbacks[e.data.callId];if(void 0===c)throw"Unexpected message from SlaveWorker of callback ID: "+e.data.callId+". Maybe should indicate isMultipleTimesCallback = true on creation?";c.isMultipleTimeCallback||r.freeCallback(r._callbacks[e.data.callId]),null!==c.callback&&c.callback.apply(null,e.data.args);break;case"subWorkerCtor":var u=new Worker(e.data.scriptUrl),p=e.data.subWorkerId;r._subWorkerById[p]=u,r._subWorkers.push(u),u.onmessage=function(e){n(r,e.ports,!1,{functionToCall:"subWorkerOnMessage",subWorkerId:p,data:e.data})};break;case"subWorkerPostMessage":var f=r._subWorkerById[e.data.subWorkerId];f.postMessage(e.data.data);break;case"subWorkerTerminate":var d=r._subWorkerById[e.data.subWorkerId];d.terminate();break;default:throw"Unknown message from AsyncProxySlave of type: "+e.data.type}}function n(r,e,t,a){return r._notReturnedFunctions>=r._functionsBufferSize?void r._pendingMessages.push({transferables:e,isFunctionCall:t,message:a}):void s(r,e,t,a)}function s(r,e,t,a){t&&++r._notReturnedFunctions,r._worker.postMessage(a,e)}function i(r){for(;r._notReturnedFunctions<r._functionsBufferSize&&r._pendingMessages.length>0;){var e=r._pendingMessages.shift();s(r,e.transferables,e.isFunctionCall,e.message)}}function l(){var r=location.href,e=r.lastIndexOf("/");return e>=0&&(r=r.substring(0,e)),r}var c=0,u=!1,p=l();return r.prototype.setUserDataHandler=function(r){this._userDataHandler=r},r.prototype.terminate=function(){this._worker.terminate();for(var r=0;r<this._subWorkers.length;++r)this._subWorkers[r].terminate()},r.prototype.callFunction=function(e,t,a){a=a||{};var o=!!a.isReturnPromise,i=a.transferables||[],l=a.pathsToTransferablesInPromiseResult,u=++c,p=null,f=this;o&&(p=new Promise(function(r,e){f._pendingPromiseCalls[u]={resolve:r,reject:e}}));var d,y=a.isSendImmediately?s:n;if(d="function"==typeof i?i():r._extractTransferables(i,t),y(this,d,!0,{functionToCall:e,args:t||[],callId:u,isPromise:o,pathsToTransferablesInPromiseResult:l}),o)return p},r.prototype.wrapCallback=function(r,e,t){t=t||{};var a=++c,o={isWorkerHelperCallback:!0,isMultipleTimeCallback:!!t.isMultipleTimeCallback,callId:a,callbackName:e,pathsToTransferables:t.pathsToTransferables},n={isMultipleTimeCallback:!!t.isMultipleTimeCallback,callId:a,callback:r,pathsToTransferables:t.pathsToTransferables};return this._callbacks[a]=n,o},r.prototype.freeCallback=function(r){delete this._callbacks[r.callId]},r.getEntryUrl=function(){return u=!0,p},r._setEntryUrl=function(r){if(p!==r&&u)throw"Previous values returned from getMasterEntryUrl is wrong. Avoid calling it within the slave c`tor";p=r},r._extractTransferables=function(r,e){if(void 0!==r){for(var t=new Array(r.length),a=0;a<r.length;++a){for(var o=r[a],n=e,s=0;s<o.length;++s){var i=o[s];n=n[i]}t[a]=n}return t}},r}();e.exports=o},{"scripts-to-import-pool":6}],4:[function(r,e,t){"use strict";var a=r("async-proxy-master"),o=r("sub-worker-emulation-for-chrome"),n=function(){function r(r){var e=r.data.functionToCall,t=r.data.args,o=r.data.callId,l=r.data.isPromise,p=r.data.pathsToTransferablesInPromiseResult,f=null;switch(e){case"ctor":a._setEntryUrl(r.data.masterEntryUrl);var d=r.data.scriptsToImport;s=r.data.ctorName;for(var y=0;y<d.length;++y)importScripts(d[y]);return void(n=c.apply(null,t));case"subWorkerOnMessage":var m=u[r.data.subWorkerId],k={data:r.data.data};return void m.onmessage(k)}t=new Array(r.data.args.length);for(var b=0;b<r.data.args.length;++b){var v=r.data.args[b];void 0!==v&&null!==v&&v.isWorkerHelperCallback&&(v=i.wrapCallbackFromSlaveSide(v)),t[b]=v}for(var g,_=n;_&&!(g=n[e]);)_=_.__proto__;if(!g)throw"AsyncProxy error: could not find function "+e;var h=g.apply(n,t);l&&i.wrapPromiseFromSlaveSide(o,h,p),self.postMessage({type:"functionCalled",callId:r.data.callId,result:f})}function e(){var r;try{for(var e=s.split("."),a=self,o=0;o<e.length;++o)a=a[e[o]];var n=a,i=[null].concat(t(arguments));r=new(Function.prototype.bind.apply(n,i))}catch(l){throw new Error("Failed locating class name "+s+": "+l)}return r}function t(r){for(var e=new Array(r.length),t=0;t<r.length;++t)e[t]=r[t];return e}var n,s,i={},l=null,c=e,u={};return i._initializeSlave=function(){self.onmessage=r},i.setSlaveSideCreator=function(r){c=r},i.setBeforeOperationListener=function(r){l=r},i.sendUserDataToMaster=function(r){self.postMessage({type:"userData",userData:r})},i.wrapPromiseFromSlaveSide=function(r,e,t){var o=e.then(function(e){var o=a._extractTransferables(t,e);self.postMessage({type:"promiseResult",callId:r,result:e},o)});o["catch"](function(e){self.postMessage({type:"promiseFailure",callId:r,reason:e})})},i.wrapCallbackFromSlaveSide=function(r){function e(){if(o)throw"Callback is called twice but isMultipleTimeCallback = false";var e=t(arguments);if(null!==l)try{l.call(n,"callback",r.callbackName,e)}catch(s){console.log("AsyncProxySlave.beforeOperationListener has thrown an exception: "+s)}var i=a._extractTransferables(r.pathsToTransferables,e);self.postMessage({type:"callback",callId:r.callId,args:e},i),r.isMultipleTimeCallback||(o=!0)}var o=!1;return e},void 0===self.Worker&&(o.initialize(u),self.Worker=o),i}();e.exports=n},{"async-proxy-master":3,"sub-worker-emulation-for-chrome":7}],5:[function(r,e,t){"use strict";var a=function(){function r(){var r=this;r._scriptsByName={},r._scriptsArray=null}var e=/at (|[^ ]+ \()([^ ]+):\d+:\d+/,t=new RegExp(/.+@(.*?):\d+:\d+/),a=new RegExp(/.+\/(.*?):\d+(:\d+)*$/);return r.prototype.addScriptFromErrorWithStackTrace=function(e){var t=r._getScriptName(e);this._scriptsByName[t]||(this._scriptsByName[t]=!0,this._scriptsArray=null)},r.prototype.getScriptsForWorkerImport=function(){if(null===this._scriptsArray){this._scriptsArray=[];for(var r in this._scriptsByName)this._scriptsArray.push(r)}return this._scriptsArray},r._getScriptName=function(r){var o=r.stack.trim(),n=e.exec(o);if(n&&""!==n[2])return n[2];if(n=t.exec(o),n&&""!==n[1])return n[1];if(n=a.exec(o),n&&""!==n[1])return n[1];if(void 0!==r.fileName)return r.fileName;throw"async-proxy.js: Could not get current script URL"},r}();e.exports=a},{}],6:[function(r,e,t){arguments[4][5][0].apply(t,arguments)},{dup:5}],7:[function(r,e,t){"use strict";var a=function(){function r(r){if(null===t)throw"AsyncProxy internal error: SubWorkerEmulationForChrome not initialized";var a=this;a._subWorkerId=++e,t[a._subWorkerId]=a,self.postMessage({type:"subWorkerCtor",subWorkerId:a._subWorkerId,scriptUrl:r})}var e=0,t=null;return r.initialize=function(r){t=r},r.prototype.postMessage=function(r,e){self.postMessage({type:"subWorkerPostMessage",subWorkerId:this._subWorkerId,data:r},e)},r.prototype.terminate=function(r,e){self.postMessage({type:"subWorkerTerminate",subWorkerId:this._subWorkerId},e)},r}();e.exports=a},{}]},{},[1])(1)});