Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

workerpool

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

workerpool - npm Package Compare versions

Comparing version 1.3.1 to 2.0.0

77

dist/worker.js

@@ -52,4 +52,2 @@ /******/ (function(modules) { // webpackBootstrap

var serializerr = __webpack_require__(1);
// create a worker API for sending and receiving messages which works both on

@@ -78,2 +76,11 @@ // node.js and in the browser

function convertError(error) {
return Object.getOwnPropertyNames(error).reduce(function(product, name) {
return Object.defineProperty(product, name, {
value: error[name],
enumerable: true
});
}, {});
}
/**

@@ -133,3 +140,3 @@ * Test whether a value is a Promise via duck typing.

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -155,3 +162,3 @@ });

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -180,65 +187,3 @@ }

/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _protochain = __webpack_require__(2);
var _protochain2 = _interopRequireDefault(_protochain);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function serializerr() {
var obj = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var chain = (0, _protochain2.default)(obj).filter(function (obj) {
return obj !== Object.prototype;
});
return [obj].concat(chain).map(function (item) {
return Object.getOwnPropertyNames(item);
}).reduce(function (result, names) {
names.forEach(function (name) {
result[name] = obj[name];
});
return result;
}, {});
}
module.exports = serializerr;
serializerr.serializerr = serializerr;
exports.default = serializerr;
/***/ },
/* 2 */
/***/ function(module, exports) {
'use strict';
module.exports = function protochain(obj) {
var chain = [];
var target = getPrototypeOf(obj);
while (target) {
chain.push(target);
target = getPrototypeOf(target);
}
return chain;
};
function getPrototypeOf(obj) {
if (obj == null) return null;
return Object.getPrototypeOf(Object(obj));
}
/***/ }
/******/ ]);

@@ -7,4 +7,4 @@ /**

*
* @version 1.3.0
* @date 2016-09-12
* @version 2.0.0
* @date 2016-09-18
*

@@ -715,4 +715,4 @@ * @license

/**
* Convert an object returned from serializerr to an Error.
* @param {Object} obj Output of serializerr.
* Converts a serialized error to Error
* @param {Object} obj Error that has been serialized and parsed to object
* @return {Error} The equivalent Error.

@@ -983,3 +983,3 @@ */

*/
module.exports = "!function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p=\"\",r(0)}([function(module,exports,__webpack_require__){function isPromise(e){return e&&\"function\"==typeof e.then&&\"function\"==typeof e.catch}var serializerr=__webpack_require__(1),worker={};if(\"undefined\"!=typeof self&&\"function\"==typeof postMessage&&\"function\"==typeof addEventListener)worker.on=function(e,r){addEventListener(e,function(e){r(e.data)})},worker.send=function(e){postMessage(e)};else{if(\"undefined\"==typeof process)throw new Error(\"Script must be executed as a worker\");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval(\"(\"+fn+\")\");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on(\"message\",function(e){try{var r=worker.methods[e.method];if(!r)throw new Error('Unknown method \"'+e.method+'\"');var t=r.apply(r,e.params);isPromise(t)?t.then(function(r){worker.send({id:e.id,result:r,error:null})}).catch(function(r){worker.send({id:e.id,result:null,error:serializerr(r)})}):worker.send({id:e.id,result:t,error:null})}catch(r){worker.send({id:e.id,result:null,error:serializerr(r)})}}),worker.register=function(e){if(e)for(var r in e)e.hasOwnProperty(r)&&(worker.methods[r]=e[r])},exports.add=worker.register},function(e,r,t){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=(0,i.default)(e).filter(function(e){return e!==Object.prototype});return[e].concat(r).map(function(e){return Object.getOwnPropertyNames(e)}).reduce(function(r,t){return t.forEach(function(t){r[t]=e[t]}),r},{})}Object.defineProperty(r,\"__esModule\",{value:!0});var s=t(2),i=n(s);e.exports=o,o.serializerr=o,r.default=o},function(e,r){\"use strict\";function t(e){return null==e?null:Object.getPrototypeOf(Object(e))}e.exports=function(e){for(var r=[],n=t(e);n;)r.push(n),n=t(n);return r}}]);";
module.exports = "!function(r){function e(n){if(o[n])return o[n].exports;var t=o[n]={exports:{},id:n,loaded:!1};return r[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}var o={};return e.m=r,e.c=o,e.p=\"\",e(0)}([function(module,exports,__webpack_require__){function convertError(r){return Object.getOwnPropertyNames(r).reduce(function(e,o){return Object.defineProperty(e,o,{value:r[o],enumerable:!0})},{})}function isPromise(r){return r&&\"function\"==typeof r.then&&\"function\"==typeof r.catch}var worker={};if(\"undefined\"!=typeof self&&\"function\"==typeof postMessage&&\"function\"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if(\"undefined\"==typeof process)throw new Error(\"Script must be executed as a worker\");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval(\"(\"+fn+\")\");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on(\"message\",function(r){try{var e=worker.methods[r.method];if(!e)throw new Error('Unknown method \"'+r.method+'\"');var o=e.apply(e,r.params);isPromise(o)?o.then(function(e){worker.send({id:r.id,result:e,error:null})}).catch(function(e){worker.send({id:r.id,result:null,error:convertError(e)})}):worker.send({id:r.id,result:o,error:null})}catch(e){worker.send({id:r.id,result:null,error:convertError(e)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},exports.add=worker.register}]);";

@@ -1026,4 +1026,2 @@

var serializerr = __webpack_require__(9);
// create a worker API for sending and receiving messages which works both on

@@ -1052,2 +1050,11 @@ // node.js and in the browser

function convertError(error) {
return Object.getOwnPropertyNames(error).reduce(function(product, name) {
return Object.defineProperty(product, name, {
value: error[name],
enumerable: true
});
}, {});
}
/**

@@ -1107,3 +1114,3 @@ * Test whether a value is a Promise via duck typing.

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -1129,3 +1136,3 @@ });

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -1154,64 +1161,2 @@ }

/***/ },
/* 9 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _protochain = __webpack_require__(10);
var _protochain2 = _interopRequireDefault(_protochain);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function serializerr() {
var obj = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var chain = (0, _protochain2.default)(obj).filter(function (obj) {
return obj !== Object.prototype;
});
return [obj].concat(chain).map(function (item) {
return Object.getOwnPropertyNames(item);
}).reduce(function (result, names) {
names.forEach(function (name) {
result[name] = obj[name];
});
return result;
}, {});
}
module.exports = serializerr;
serializerr.serializerr = serializerr;
exports.default = serializerr;
/***/ },
/* 10 */
/***/ function(module, exports) {
'use strict';
module.exports = function protochain(obj) {
var chain = [];
var target = getPrototypeOf(obj);
while (target) {
chain.push(target);
target = getPrototypeOf(target);
}
return chain;
};
function getPrototypeOf(obj) {
if (obj == null) return null;
return Object.getPrototypeOf(Object(obj));
}
/***/ }

@@ -1218,0 +1163,0 @@ /******/ ])

6

dist/workerpool.min.js

@@ -7,4 +7,4 @@ /**

*
* @version 1.3.0
* @date 2016-09-12
* @version 2.0.0
* @date 2016-09-18
*

@@ -26,3 +26,3 @@ * @license

*/
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.workerpool=r():e.workerpool=r()}(this,function(){return function(e){function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{},id:o,loaded:!1};return e[o].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){"undefined"!=typeof window;r.pool=function(e,r){var o=t(1);return new o(e,r)},r.worker=function e(r){var o=t(4);if("browser"==o){var n=new Blob([t(6)],{type:"text/javascript"}),i=window.URL.createObjectURL(n);importScripts(i)}else var e=t(8);e.add(r)},r.Promise=t(2)},function(e,r,t){function o(e,r){if("string"==typeof e?this.script=e||null:(this.script=null,r=e),r&&"maxWorkers"in r){if(!n(r.maxWorkers)||!i(r.maxWorkers)||r.maxWorkers<1)throw new TypeError("Option maxWorkers must be a positive integer number");this.maxWorkers=r.maxWorkers}else{var o=t(4),s="browser"==o?window.navigator.hardwareConcurrency||4:c.require("os").cpus().length;this.maxWorkers=Math.max(s-1,1)}this.workers=[],this.tasks=[]}function n(e){return"number"==typeof e}function i(e){return Math.round(e)==e}var s=t(2),u=t(3),c={require:t(5)};o.prototype.exec=function(e,r){if(r&&!Array.isArray(r))throw new TypeError('Array expected as argument "params"');if("string"==typeof e){var t=s.defer();return this.tasks.push({method:e,params:r,resolver:t}),this._next(),t.promise}if("function"==typeof e)return this.exec("run",[String(e),r]);throw new TypeError('Function or string expected as argument "method"')},o.prototype.proxy=function(){if(arguments.length>0)throw new Error("No arguments expected");var e=this;return this.exec("methods").then(function(r){var t={};return r.forEach(function(r){t[r]=function(){return e.exec(r,Array.prototype.slice.call(arguments))}}),t})},o.prototype._next=function(){if(this.tasks.length>0){var e=this._getWorker();if(e){var r=this,t=this.tasks.shift();t.resolver.promise.pending&&e.exec(t.method,t.params,t.resolver).then(function(){r._next()}).catch(function(){e.terminated&&r._removeWorker(e),r._next()})}}},o.prototype._getWorker=function(){for(var e=0,r=this.workers.length;e<r;e++){var t=this.workers[e];if(!t.busy())return t}return this.workers.length<this.maxWorkers?(t=new u(this.script),this.workers.push(t),t):null},o.prototype._removeWorker=function(e){e.terminate();var r=this.workers.indexOf(e);r!=-1&&this.workers.splice(r,1)},o.prototype.clear=function(e){this.workers.forEach(function(r){r.terminate(e)}),this.workers=[]},e.exports=o},function(e,r){"use strict";function t(e,r){var s=this;if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if("function"!=typeof e)throw new SyntaxError("Function parameter handler(resolve, reject) missing");var u=[],c=[];this.resolved=!1,this.rejected=!1,this.pending=!0;var a=function(e,r){u.push(e),c.push(r)};this.then=function(e,r){return new t(function(t,n){var i=e?o(e,t,n):t,s=r?o(r,t,n):n;a(i,s)},s)};var f=function(e){return s.resolved=!0,s.rejected=!1,s.pending=!1,u.forEach(function(r){r(e)}),a=function(r,t){r(e)},f=p=function(){throw new Error("Promise is already resolved")},s},p=function(e){return s.resolved=!1,s.rejected=!0,s.pending=!1,c.forEach(function(r){r(e)}),a=function(r,t){t(e)},f=p=function(){throw new Error("Promise is already resolved")},s};this.cancel=function(){return r?r.cancel():p(new n),s},this.timeout=function(e){if(r)r.timeout(e);else{var t=setTimeout(function(){p(new i("Promise timed out after "+e+" ms"))},e);s.always(function(){clearTimeout(t)})}return s},e(function(e){f(e)},function(e){p(e)})}function o(e,r,t){return function(o){try{var n=e(o);n&&"function"==typeof n.then&&"function"==typeof n.catch?n.then(r,t):r(n)}catch(e){t(e)}}}function n(e){this.message=e||"promise cancelled",this.stack=(new Error).stack}function i(e){this.message=e||"timeout exceeded",this.stack=(new Error).stack}t.prototype.catch=function(e){return this.then(null,e)},t.prototype.always=function(e){return this.then(e,e)},t.all=function(e){return new t(function(r,t){var o=e.length,n=[];o?e.forEach(function(e,i){e.then(function(e){n[i]=e,o--,0==o&&r(n)},function(e){o=0,t(e)})}):r(n)})},t.defer=function(){var e={};return e.promise=new t(function(r,t){e.resolve=r,e.reject=t}),e},n.prototype=new Error,n.prototype.constructor=Error,n.prototype.name="CancellationError",t.CancellationError=n,i.prototype=new Error,i.prototype.constructor=Error,i.prototype.name="TimeoutError",t.TimeoutError=i,e.exports=t},function(e,r,t){function o(){if("browser"==u){if("undefined"==typeof Blob)throw new Error("Blob not supported by the browser");if(!window.URL||"function"!=typeof window.URL.createObjectURL)throw new Error("URL.createObjectURL not supported by the browser");var e=new Blob([t(6)],{type:"text/javascript"});return window.URL.createObjectURL(e)}return __dirname+"/worker.js"}function n(e){for(var r=new Error(""),t=Object.keys(e),o=0;o<t.length;o++)r[t[o]]=e[t[o]];return r}function i(e){function r(e){t.terminated=!0;for(var r in t.processing)t.processing.hasOwnProperty(r)&&t.processing[r].resolver.reject(e);t.processing={}}if(this.script=e||o(),"browser"==u){if("function"!=typeof Worker&&("object"!=typeof Worker||"function"!=typeof Worker.prototype.constructor))throw new Error("Web workers not supported by the browser");this.worker=new Worker(this.script),this.worker.on=function(e,r){this.addEventListener(e,function(e){r(e.data)})},this.worker.send=function(e){this.postMessage(e)}}else this.worker=c.require("child_process").fork(this.script);var t=this;this.worker.on("message",function(e){var r=e.id,o=t.processing[r];o&&(delete t.processing[r],t.terminating&&t.terminate(),e.error?o.resolver.reject(n(e.error)):o.resolver.resolve(e.result))}),this.worker.on("error",r),this.worker.on("exit",function(){var e=new Error("Worker terminated unexpectedly");r(e)}),this.processing={},this.terminating=!1,this.terminated=!1,this.lastId=0}var s=t(2),u=t(4),c={require:t(5)};i.prototype.methods=function(){return this.exec("methods")},i.prototype.exec=function(e,r,t){t||(t=s.defer());var o=++this.lastId;this.processing[o]={id:o,resolver:t};var n={id:o,method:e,params:r};this.terminated?t.reject(new Error("Worker is terminated")):this.worker.send(n);var i=this;return t.promise.catch(function(e){(e instanceof s.CancellationError||e instanceof s.TimeoutError)&&(delete i.processing[o],i.terminate(!0))}),t.promise},i.prototype.busy=function(){return Object.keys(this.processing).length>0},i.prototype.terminate=function(e){if(e){for(var r in this.processing)this.processing.hasOwnProperty(r)&&this.processing[r].resolver.reject(new Error("Worker terminated"));this.processing={}}if(this.busy())this.terminating=!0;else{if(this.worker){if("function"==typeof this.worker.kill)this.worker.kill();else{if("function"!=typeof this.worker.terminate)throw new Error("Failed to terminate worker");this.worker.terminate()}this.worker=null}this.terminating=!1,this.terminated=!0}},e.exports=i},function(e,r){e.exports="undefined"!=typeof window?"browser":"node"},function(e,r,t){function o(e){return t(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={"./Pool":1,"./Pool.js":1,"./Promise":2,"./Promise.js":2,"./WorkerHandler":3,"./WorkerHandler.js":3,"./environment":4,"./environment.js":4,"./generated/embeddedWorker":6,"./generated/embeddedWorker.js":6,"./header":7,"./header.js":7,"./worker":8,"./worker.js":8};o.keys=function(){return Object.keys(i)},o.resolve=n,e.exports=o,o.id=5},function(e,r){e.exports='!function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(module,exports,__webpack_require__){function isPromise(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}var serializerr=__webpack_require__(1),worker={};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(e,r){addEventListener(e,function(e){r(e.data)})},worker.send=function(e){postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval("("+fn+")");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on("message",function(e){try{var r=worker.methods[e.method];if(!r)throw new Error(\'Unknown method "\'+e.method+\'"\');var t=r.apply(r,e.params);isPromise(t)?t.then(function(r){worker.send({id:e.id,result:r,error:null})}).catch(function(r){worker.send({id:e.id,result:null,error:serializerr(r)})}):worker.send({id:e.id,result:t,error:null})}catch(r){worker.send({id:e.id,result:null,error:serializerr(r)})}}),worker.register=function(e){if(e)for(var r in e)e.hasOwnProperty(r)&&(worker.methods[r]=e[r])},exports.add=worker.register},function(e,r,t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=(0,i.default)(e).filter(function(e){return e!==Object.prototype});return[e].concat(r).map(function(e){return Object.getOwnPropertyNames(e)}).reduce(function(r,t){return t.forEach(function(t){r[t]=e[t]}),r},{})}Object.defineProperty(r,"__esModule",{value:!0});var s=t(2),i=n(s);e.exports=o,o.serializerr=o,r.default=o},function(e,r){"use strict";function t(e){return null==e?null:Object.getPrototypeOf(Object(e))}e.exports=function(e){for(var r=[],n=t(e);n;)r.push(n),n=t(n);return r}}]);'},function(e,r){},function(module,exports,__webpack_require__){function isPromise(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}var serializerr=__webpack_require__(9),worker={};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(e,r){addEventListener(e,function(e){r(e.data)})},worker.send=function(e){postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval("("+fn+")");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on("message",function(e){try{var r=worker.methods[e.method];if(!r)throw new Error('Unknown method "'+e.method+'"');var t=r.apply(r,e.params);isPromise(t)?t.then(function(r){worker.send({id:e.id,result:r,error:null})}).catch(function(r){worker.send({id:e.id,result:null,error:serializerr(r)})}):worker.send({id:e.id,result:t,error:null})}catch(r){worker.send({id:e.id,result:null,error:serializerr(r)})}}),worker.register=function(e){if(e)for(var r in e)e.hasOwnProperty(r)&&(worker.methods[r]=e[r])},exports.add=worker.register},function(e,r,t){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function n(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=(0,s.default)(e).filter(function(e){return e!==Object.prototype});return[e].concat(r).map(function(e){return Object.getOwnPropertyNames(e)}).reduce(function(r,t){return t.forEach(function(t){r[t]=e[t]}),r},{})}Object.defineProperty(r,"__esModule",{value:!0});var i=t(10),s=o(i);e.exports=n,n.serializerr=n,r.default=n},function(e,r){"use strict";function t(e){return null==e?null:Object.getPrototypeOf(Object(e))}e.exports=function(e){for(var r=[],o=t(e);o;)r.push(o),o=t(o);return r}}])});
!function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.workerpool=e():r.workerpool=e()}(this,function(){return function(r){function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{},id:o,loaded:!1};return r[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var t={};return e.m=r,e.c=t,e.p="",e(0)}([function(r,e,t){"undefined"!=typeof window;e.pool=function(r,e){var o=t(1);return new o(r,e)},e.worker=function r(e){var o=t(4);if("browser"==o){var n=new Blob([t(6)],{type:"text/javascript"}),i=window.URL.createObjectURL(n);importScripts(i)}else var r=t(8);r.add(e)},e.Promise=t(2)},function(r,e,t){function o(r,e){if("string"==typeof r?this.script=r||null:(this.script=null,e=r),e&&"maxWorkers"in e){if(!n(e.maxWorkers)||!i(e.maxWorkers)||e.maxWorkers<1)throw new TypeError("Option maxWorkers must be a positive integer number");this.maxWorkers=e.maxWorkers}else{var o=t(4),s="browser"==o?window.navigator.hardwareConcurrency||4:u.require("os").cpus().length;this.maxWorkers=Math.max(s-1,1)}this.workers=[],this.tasks=[]}function n(r){return"number"==typeof r}function i(r){return Math.round(r)==r}var s=t(2),c=t(3),u={require:t(5)};o.prototype.exec=function(r,e){if(e&&!Array.isArray(e))throw new TypeError('Array expected as argument "params"');if("string"==typeof r){var t=s.defer();return this.tasks.push({method:r,params:e,resolver:t}),this._next(),t.promise}if("function"==typeof r)return this.exec("run",[String(r),e]);throw new TypeError('Function or string expected as argument "method"')},o.prototype.proxy=function(){if(arguments.length>0)throw new Error("No arguments expected");var r=this;return this.exec("methods").then(function(e){var t={};return e.forEach(function(e){t[e]=function(){return r.exec(e,Array.prototype.slice.call(arguments))}}),t})},o.prototype._next=function(){if(this.tasks.length>0){var r=this._getWorker();if(r){var e=this,t=this.tasks.shift();t.resolver.promise.pending&&r.exec(t.method,t.params,t.resolver).then(function(){e._next()}).catch(function(){r.terminated&&e._removeWorker(r),e._next()})}}},o.prototype._getWorker=function(){for(var r=0,e=this.workers.length;r<e;r++){var t=this.workers[r];if(!t.busy())return t}return this.workers.length<this.maxWorkers?(t=new c(this.script),this.workers.push(t),t):null},o.prototype._removeWorker=function(r){r.terminate();var e=this.workers.indexOf(r);e!=-1&&this.workers.splice(e,1)},o.prototype.clear=function(r){this.workers.forEach(function(e){e.terminate(r)}),this.workers=[]},r.exports=o},function(r,e){"use strict";function t(r,e){var s=this;if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if("function"!=typeof r)throw new SyntaxError("Function parameter handler(resolve, reject) missing");var c=[],u=[];this.resolved=!1,this.rejected=!1,this.pending=!0;var a=function(r,e){c.push(r),u.push(e)};this.then=function(r,e){return new t(function(t,n){var i=r?o(r,t,n):t,s=e?o(e,t,n):n;a(i,s)},s)};var f=function(r){return s.resolved=!0,s.rejected=!1,s.pending=!1,c.forEach(function(e){e(r)}),a=function(e,t){e(r)},f=p=function(){throw new Error("Promise is already resolved")},s},p=function(r){return s.resolved=!1,s.rejected=!0,s.pending=!1,u.forEach(function(e){e(r)}),a=function(e,t){t(r)},f=p=function(){throw new Error("Promise is already resolved")},s};this.cancel=function(){return e?e.cancel():p(new n),s},this.timeout=function(r){if(e)e.timeout(r);else{var t=setTimeout(function(){p(new i("Promise timed out after "+r+" ms"))},r);s.always(function(){clearTimeout(t)})}return s},r(function(r){f(r)},function(r){p(r)})}function o(r,e,t){return function(o){try{var n=r(o);n&&"function"==typeof n.then&&"function"==typeof n.catch?n.then(e,t):e(n)}catch(r){t(r)}}}function n(r){this.message=r||"promise cancelled",this.stack=(new Error).stack}function i(r){this.message=r||"timeout exceeded",this.stack=(new Error).stack}t.prototype.catch=function(r){return this.then(null,r)},t.prototype.always=function(r){return this.then(r,r)},t.all=function(r){return new t(function(e,t){var o=r.length,n=[];o?r.forEach(function(r,i){r.then(function(r){n[i]=r,o--,0==o&&e(n)},function(r){o=0,t(r)})}):e(n)})},t.defer=function(){var r={};return r.promise=new t(function(e,t){r.resolve=e,r.reject=t}),r},n.prototype=new Error,n.prototype.constructor=Error,n.prototype.name="CancellationError",t.CancellationError=n,i.prototype=new Error,i.prototype.constructor=Error,i.prototype.name="TimeoutError",t.TimeoutError=i,r.exports=t},function(r,e,t){function o(){if("browser"==c){if("undefined"==typeof Blob)throw new Error("Blob not supported by the browser");if(!window.URL||"function"!=typeof window.URL.createObjectURL)throw new Error("URL.createObjectURL not supported by the browser");var r=new Blob([t(6)],{type:"text/javascript"});return window.URL.createObjectURL(r)}return __dirname+"/worker.js"}function n(r){for(var e=new Error(""),t=Object.keys(r),o=0;o<t.length;o++)e[t[o]]=r[t[o]];return e}function i(r){function e(r){t.terminated=!0;for(var e in t.processing)t.processing.hasOwnProperty(e)&&t.processing[e].resolver.reject(r);t.processing={}}if(this.script=r||o(),"browser"==c){if("function"!=typeof Worker&&("object"!=typeof Worker||"function"!=typeof Worker.prototype.constructor))throw new Error("Web workers not supported by the browser");this.worker=new Worker(this.script),this.worker.on=function(r,e){this.addEventListener(r,function(r){e(r.data)})},this.worker.send=function(r){this.postMessage(r)}}else this.worker=u.require("child_process").fork(this.script);var t=this;this.worker.on("message",function(r){var e=r.id,o=t.processing[e];o&&(delete t.processing[e],t.terminating&&t.terminate(),r.error?o.resolver.reject(n(r.error)):o.resolver.resolve(r.result))}),this.worker.on("error",e),this.worker.on("exit",function(){var r=new Error("Worker terminated unexpectedly");e(r)}),this.processing={},this.terminating=!1,this.terminated=!1,this.lastId=0}var s=t(2),c=t(4),u={require:t(5)};i.prototype.methods=function(){return this.exec("methods")},i.prototype.exec=function(r,e,t){t||(t=s.defer());var o=++this.lastId;this.processing[o]={id:o,resolver:t};var n={id:o,method:r,params:e};this.terminated?t.reject(new Error("Worker is terminated")):this.worker.send(n);var i=this;return t.promise.catch(function(r){(r instanceof s.CancellationError||r instanceof s.TimeoutError)&&(delete i.processing[o],i.terminate(!0))}),t.promise},i.prototype.busy=function(){return Object.keys(this.processing).length>0},i.prototype.terminate=function(r){if(r){for(var e in this.processing)this.processing.hasOwnProperty(e)&&this.processing[e].resolver.reject(new Error("Worker terminated"));this.processing={}}if(this.busy())this.terminating=!0;else{if(this.worker){if("function"==typeof this.worker.kill)this.worker.kill();else{if("function"!=typeof this.worker.terminate)throw new Error("Failed to terminate worker");this.worker.terminate()}this.worker=null}this.terminating=!1,this.terminated=!0}},r.exports=i},function(r,e){r.exports="undefined"!=typeof window?"browser":"node"},function(r,e,t){function o(r){return t(n(r))}function n(r){return i[r]||function(){throw new Error("Cannot find module '"+r+"'.")}()}var i={"./Pool":1,"./Pool.js":1,"./Promise":2,"./Promise.js":2,"./WorkerHandler":3,"./WorkerHandler.js":3,"./environment":4,"./environment.js":4,"./generated/embeddedWorker":6,"./generated/embeddedWorker.js":6,"./header":7,"./header.js":7,"./worker":8,"./worker.js":8};o.keys=function(){return Object.keys(i)},o.resolve=n,r.exports=o,o.id=5},function(r,e){r.exports='!function(r){function e(n){if(o[n])return o[n].exports;var t=o[n]={exports:{},id:n,loaded:!1};return r[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}var o={};return e.m=r,e.c=o,e.p="",e(0)}([function(module,exports,__webpack_require__){function convertError(r){return Object.getOwnPropertyNames(r).reduce(function(e,o){return Object.defineProperty(e,o,{value:r[o],enumerable:!0})},{})}function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r.catch}var worker={};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval("("+fn+")");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on("message",function(r){try{var e=worker.methods[r.method];if(!e)throw new Error(\'Unknown method "\'+r.method+\'"\');var o=e.apply(e,r.params);isPromise(o)?o.then(function(e){worker.send({id:r.id,result:e,error:null})}).catch(function(e){worker.send({id:r.id,result:null,error:convertError(e)})}):worker.send({id:r.id,result:o,error:null})}catch(e){worker.send({id:r.id,result:null,error:convertError(e)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},exports.add=worker.register}]);'},function(r,e){},function(module,exports,__webpack_require__){function convertError(r){return Object.getOwnPropertyNames(r).reduce(function(e,t){return Object.defineProperty(e,t,{value:r[t],enumerable:!0})},{})}function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r.catch}var worker={};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval("("+fn+")");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on("message",function(r){try{var e=worker.methods[r.method];if(!e)throw new Error('Unknown method "'+r.method+'"');var t=e.apply(e,r.params);isPromise(t)?t.then(function(e){worker.send({id:r.id,result:e,error:null})}).catch(function(e){worker.send({id:r.id,result:null,error:convertError(e)})}):worker.send({id:r.id,result:t,error:null})}catch(e){worker.send({id:r.id,result:null,error:convertError(e)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},exports.add=worker.register}])});
//# sourceMappingURL=workerpool.map

@@ -5,2 +5,11 @@ # workerpool history

## 2016-09-18, version 2.0.0
- Replaced conversion of Error-objecting using serializerr to custom
implementation to prevent issues with serializing/deserializing functions.
This conversion implementation loses the prototype object which means that
e.g. 'TypeError' will become just 'Error' in the main code. See #8.
Thanks @natlibfi-arlehiko.
## 2016-09-12, version 1.3.1

@@ -7,0 +16,0 @@

@@ -6,2 +6,2 @@ /**

*/
module.exports = "!function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p=\"\",r(0)}([function(module,exports,__webpack_require__){function isPromise(e){return e&&\"function\"==typeof e.then&&\"function\"==typeof e.catch}var serializerr=__webpack_require__(1),worker={};if(\"undefined\"!=typeof self&&\"function\"==typeof postMessage&&\"function\"==typeof addEventListener)worker.on=function(e,r){addEventListener(e,function(e){r(e.data)})},worker.send=function(e){postMessage(e)};else{if(\"undefined\"==typeof process)throw new Error(\"Script must be executed as a worker\");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval(\"(\"+fn+\")\");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on(\"message\",function(e){try{var r=worker.methods[e.method];if(!r)throw new Error('Unknown method \"'+e.method+'\"');var t=r.apply(r,e.params);isPromise(t)?t.then(function(r){worker.send({id:e.id,result:r,error:null})}).catch(function(r){worker.send({id:e.id,result:null,error:serializerr(r)})}):worker.send({id:e.id,result:t,error:null})}catch(r){worker.send({id:e.id,result:null,error:serializerr(r)})}}),worker.register=function(e){if(e)for(var r in e)e.hasOwnProperty(r)&&(worker.methods[r]=e[r])},exports.add=worker.register},function(e,r,t){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=(0,i.default)(e).filter(function(e){return e!==Object.prototype});return[e].concat(r).map(function(e){return Object.getOwnPropertyNames(e)}).reduce(function(r,t){return t.forEach(function(t){r[t]=e[t]}),r},{})}Object.defineProperty(r,\"__esModule\",{value:!0});var s=t(2),i=n(s);e.exports=o,o.serializerr=o,r.default=o},function(e,r){\"use strict\";function t(e){return null==e?null:Object.getPrototypeOf(Object(e))}e.exports=function(e){for(var r=[],n=t(e);n;)r.push(n),n=t(n);return r}}]);";
module.exports = "!function(r){function e(n){if(o[n])return o[n].exports;var t=o[n]={exports:{},id:n,loaded:!1};return r[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}var o={};return e.m=r,e.c=o,e.p=\"\",e(0)}([function(module,exports,__webpack_require__){function convertError(r){return Object.getOwnPropertyNames(r).reduce(function(e,o){return Object.defineProperty(e,o,{value:r[o],enumerable:!0})},{})}function isPromise(r){return r&&\"function\"==typeof r.then&&\"function\"==typeof r.catch}var worker={};if(\"undefined\"!=typeof self&&\"function\"==typeof postMessage&&\"function\"==typeof addEventListener)worker.on=function(r,e){addEventListener(r,function(r){e(r.data)})},worker.send=function(r){postMessage(r)};else{if(\"undefined\"==typeof process)throw new Error(\"Script must be executed as a worker\");worker.on=process.on.bind(process),worker.send=process.send.bind(process)}worker.methods={},worker.methods.run=function run(fn,args){var f=eval(\"(\"+fn+\")\");return f.apply(f,args)},worker.methods.methods=function(){return Object.keys(worker.methods)},worker.on(\"message\",function(r){try{var e=worker.methods[r.method];if(!e)throw new Error('Unknown method \"'+r.method+'\"');var o=e.apply(e,r.params);isPromise(o)?o.then(function(e){worker.send({id:r.id,result:e,error:null})}).catch(function(e){worker.send({id:r.id,result:null,error:convertError(e)})}):worker.send({id:r.id,result:o,error:null})}catch(e){worker.send({id:r.id,result:null,error:convertError(e)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},exports.add=worker.register}]);";

@@ -6,4 +6,2 @@ /**

var serializerr = require('serializerr');
// create a worker API for sending and receiving messages which works both on

@@ -32,2 +30,11 @@ // node.js and in the browser

function convertError(error) {
return Object.getOwnPropertyNames(error).reduce(function(product, name) {
return Object.defineProperty(product, name, {
value: error[name],
enumerable: true
});
}, {});
}
/**

@@ -87,3 +94,3 @@ * Test whether a value is a Promise via duck typing.

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -109,3 +116,3 @@ });

result: null,
error: serializerr(err)
error: convertError(err)
});

@@ -112,0 +119,0 @@ }

@@ -31,4 +31,4 @@ var Promise = require('./Promise');

/**
* Convert an object returned from serializerr to an Error.
* @param {Object} obj Output of serializerr.
* Converts a serialized error to Error
* @param {Object} obj Error that has been serialized and parsed to object
* @return {Error} The equivalent Error.

@@ -35,0 +35,0 @@ */

{
"name": "workerpool",
"version": "1.3.1",
"version": "2.0.0",
"description": "Offload tasks to a pool of workers on node.js and in the browser",

@@ -25,5 +25,2 @@ "homepage": "https://github.com/josdejong/workerpool",

},
"dependencies": {
"serializerr": "^1.0.2"
},
"devDependencies": {

@@ -30,0 +27,0 @@ "gulp": "^3.9.1",

@@ -165,3 +165,4 @@ var assert = require('assert'),

.catch(function (err) {
assert.equal(err.toString(), 'TypeError: Test error');
assert.ok(err instanceof Error);
assert.equal(err.message, 'Test error')

@@ -168,0 +169,0 @@ pool.clear();

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc