workerpool
Advanced tools
Comparing version 1.2.0 to 1.2.1
@@ -1,127 +0,248 @@ | ||
/** | ||
* worker must be started as a child process or a web worker. | ||
* It listens for RPC messages from the parent process. | ||
*/ | ||
/******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
var serializerr = require('serializerr') | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
// create a worker API for sending and receiving messages which works both on | ||
// node.js and in the browser | ||
var worker = {}; | ||
if (typeof self !== 'undefined' && typeof postMessage === 'function' && typeof addEventListener === 'function') { | ||
// worker in the browser | ||
worker.on = function (event, callback) { | ||
addEventListener(event, function (message) { | ||
callback(message.data); | ||
}) | ||
}; | ||
worker.send = function (message) { | ||
postMessage(message); | ||
}; | ||
} | ||
else if (typeof process !== 'undefined') { | ||
// node.js | ||
worker.on = process.on.bind(process); | ||
worker.send = process.send.bind(process); | ||
} | ||
else { | ||
throw new Error('Script must be executed as a worker'); | ||
} | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) | ||
/******/ return installedModules[moduleId].exports; | ||
/** | ||
* Test whether a value is a Promise via duck typing. | ||
* @param {*} value | ||
* @returns {boolean} Returns true when given value is an object | ||
* having functions `then` and `catch`. | ||
*/ | ||
function isPromise(value) { | ||
return value && (typeof value.then === 'function') && (typeof value.catch === 'function'); | ||
} | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ exports: {}, | ||
/******/ id: moduleId, | ||
/******/ loaded: false | ||
/******/ }; | ||
// functions available externally | ||
worker.methods = {}; | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/** | ||
* Execute a function with provided arguments | ||
* @param {String} fn Stringified function | ||
* @param {Array} [args] Function arguments | ||
* @returns {*} | ||
*/ | ||
worker.methods.run = function run(fn, args) { | ||
var f = eval('(' + fn + ')'); | ||
return f.apply(f, args); | ||
}; | ||
/******/ // Flag the module as loaded | ||
/******/ module.loaded = true; | ||
/** | ||
* Get a list with methods available on this worker | ||
* @return {String[]} methods | ||
*/ | ||
worker.methods.methods = function methods() { | ||
return Object.keys(worker.methods); | ||
}; | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
worker.on('message', function (request) { | ||
try { | ||
var method = worker.methods[request.method]; | ||
if (method) { | ||
// execute the function | ||
var result = method.apply(method, request.params); | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
if (isPromise(result)) { | ||
// promise returned, resolve this and then return | ||
result | ||
.then(function (result) { | ||
worker.send({ | ||
id: request.id, | ||
result: result, | ||
error: null | ||
}); | ||
}) | ||
.catch(function (err) { | ||
worker.send({ | ||
id: request.id, | ||
result: null, | ||
error: serializerr(err) | ||
}); | ||
}); | ||
} | ||
else { | ||
// immediate result | ||
worker.send({ | ||
id: request.id, | ||
result: result, | ||
error: null | ||
}); | ||
} | ||
} | ||
else { | ||
throw new Error('Unknown method "' + request.method + '"'); | ||
} | ||
} | ||
catch (err) { | ||
worker.send({ | ||
id: request.id, | ||
result: null, | ||
error: serializerr(err) | ||
}); | ||
} | ||
}); | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/** | ||
* Register methods to the worker | ||
* @param {Object} methods | ||
*/ | ||
worker.register = function (methods) { | ||
if (methods) { | ||
for (var name in methods) { | ||
if (methods.hasOwnProperty(name)) { | ||
worker.methods[name] = methods[name]; | ||
} | ||
} | ||
} | ||
}; | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
if (typeof exports !== 'undefined') { | ||
exports.add = worker.register; | ||
} | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* worker must be started as a child process or a web worker. | ||
* It listens for RPC messages from the parent process. | ||
*/ | ||
var serializerr = __webpack_require__(1); | ||
// create a worker API for sending and receiving messages which works both on | ||
// node.js and in the browser | ||
var worker = {}; | ||
if (typeof self !== 'undefined' && typeof postMessage === 'function' && typeof addEventListener === 'function') { | ||
// worker in the browser | ||
worker.on = function (event, callback) { | ||
addEventListener(event, function (message) { | ||
callback(message.data); | ||
}) | ||
}; | ||
worker.send = function (message) { | ||
postMessage(message); | ||
}; | ||
} | ||
else if (typeof process !== 'undefined') { | ||
// node.js | ||
worker.on = process.on.bind(process); | ||
worker.send = process.send.bind(process); | ||
} | ||
else { | ||
throw new Error('Script must be executed as a worker'); | ||
} | ||
/** | ||
* Test whether a value is a Promise via duck typing. | ||
* @param {*} value | ||
* @returns {boolean} Returns true when given value is an object | ||
* having functions `then` and `catch`. | ||
*/ | ||
function isPromise(value) { | ||
return value && (typeof value.then === 'function') && (typeof value.catch === 'function'); | ||
} | ||
// functions available externally | ||
worker.methods = {}; | ||
/** | ||
* Execute a function with provided arguments | ||
* @param {String} fn Stringified function | ||
* @param {Array} [args] Function arguments | ||
* @returns {*} | ||
*/ | ||
worker.methods.run = function run(fn, args) { | ||
var f = eval('(' + fn + ')'); | ||
return f.apply(f, args); | ||
}; | ||
/** | ||
* Get a list with methods available on this worker | ||
* @return {String[]} methods | ||
*/ | ||
worker.methods.methods = function methods() { | ||
return Object.keys(worker.methods); | ||
}; | ||
worker.on('message', function (request) { | ||
try { | ||
var method = worker.methods[request.method]; | ||
if (method) { | ||
// execute the function | ||
var result = method.apply(method, request.params); | ||
if (isPromise(result)) { | ||
// promise returned, resolve this and then return | ||
result | ||
.then(function (result) { | ||
worker.send({ | ||
id: request.id, | ||
result: result, | ||
error: null | ||
}); | ||
}) | ||
.catch(function (err) { | ||
worker.send({ | ||
id: request.id, | ||
result: null, | ||
error: serializerr(err) | ||
}); | ||
}); | ||
} | ||
else { | ||
// immediate result | ||
worker.send({ | ||
id: request.id, | ||
result: result, | ||
error: null | ||
}); | ||
} | ||
} | ||
else { | ||
throw new Error('Unknown method "' + request.method + '"'); | ||
} | ||
} | ||
catch (err) { | ||
worker.send({ | ||
id: request.id, | ||
result: null, | ||
error: serializerr(err) | ||
}); | ||
} | ||
}); | ||
/** | ||
* Register methods to the worker | ||
* @param {Object} methods | ||
*/ | ||
worker.register = function (methods) { | ||
if (methods) { | ||
for (var name in methods) { | ||
if (methods.hasOwnProperty(name)) { | ||
worker.methods[name] = methods[name]; | ||
} | ||
} | ||
} | ||
}; | ||
if (true) { | ||
exports.add = worker.register; | ||
} | ||
/***/ }, | ||
/* 1 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { | ||
value: true | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
var _protochain = __webpack_require__(2); | ||
var _protochain2 = _interopRequireDefault(_protochain); | ||
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) { | ||
return result[name] = obj[name]; | ||
}); | ||
return result; | ||
}, {}); | ||
} | ||
module.exports = serializerr; | ||
serializerr.serializerr = serializerr; | ||
exports['default'] = serializerr; | ||
module.exports = exports['default']; | ||
/***/ }, | ||
/* 2 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
module.exports = protochain; | ||
function protochain(obj) { | ||
var result = []; | ||
var target = getPrototypeOf(obj); | ||
while (target) { | ||
result.push(target); | ||
target = getPrototypeOf(target); | ||
} | ||
return result; | ||
} | ||
function getPrototypeOf(obj) { | ||
if (obj == null) { | ||
return obj; | ||
}if (isPrimitive(obj)) obj = Object(obj); | ||
return Object.getPrototypeOf(obj); | ||
} | ||
function isPrimitive(item) { | ||
return item === null || typeof item !== "object" && typeof item !== "function"; | ||
} | ||
/***/ } | ||
/******/ ]); |
@@ -7,7 +7,7 @@ /** | ||
* | ||
* @version 1.2.0 | ||
* @date 2016-05-22 | ||
* @version 1.2.1 | ||
* @date 2016-06-25 | ||
* | ||
* @license | ||
* Copyright (C) 2014 Jos de Jong <wjosdejong@gmail.com> | ||
* Copyright (C) 2014-2016 Jos de Jong <wjosdejong@gmail.com> | ||
* | ||
@@ -29,10 +29,10 @@ * Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(require("child_process"), require("os")); | ||
module.exports = factory(); | ||
else if(typeof define === 'function' && define.amd) | ||
define(["child_process", "os"], factory); | ||
define([], factory); | ||
else if(typeof exports === 'object') | ||
exports["workerpool"] = factory(require("child_process"), require("os")); | ||
exports["workerpool"] = factory(); | ||
else | ||
root["workerpool"] = factory(root["child_process"], root["os"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_7__) { | ||
root["workerpool"] = factory(); | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -107,3 +107,3 @@ /******/ // The module cache | ||
// use embedded worker.js | ||
var blob = new Blob([__webpack_require__(5)], {type: 'text/javascript'}); | ||
var blob = new Blob([__webpack_require__(6)], {type: 'text/javascript'}); | ||
var url = window.URL.createObjectURL(blob); | ||
@@ -135,2 +135,5 @@ importScripts(url); | ||
// used to prevent webpack from resolving requires on node libs | ||
var node = {require: __webpack_require__(5)}; | ||
/** | ||
@@ -160,3 +163,4 @@ * A pool to manage workers | ||
var environment = __webpack_require__(4); | ||
var numCPUs = (environment == 'browser') ? 4 : __webpack_require__(7).cpus().length; | ||
// call node.require to prevent os to be required when loading with AMD | ||
var numCPUs = (environment == 'browser') ? 4 : node.require('os').cpus().length; | ||
this.maxWorkers = Math.max(numCPUs - 1, 1); | ||
@@ -687,2 +691,5 @@ } | ||
// used to prevent webpack from resolving requires on node libs | ||
var node = {require: __webpack_require__(5)}; | ||
// get the default worker script | ||
@@ -700,3 +707,3 @@ function getDefaultWorker() { | ||
// use embedded worker.js | ||
var blob = new Blob([__webpack_require__(5)], {type: 'text/javascript'}); | ||
var blob = new Blob([__webpack_require__(6)], {type: 'text/javascript'}); | ||
return window.URL.createObjectURL(blob); | ||
@@ -757,3 +764,4 @@ } | ||
// on node.js, create a child process | ||
this.worker = __webpack_require__(6).fork(this.script); | ||
// call node.require to prevent child_process to be required when loading with AMD | ||
this.worker = node.require('child_process').fork(this.script); | ||
} | ||
@@ -936,2 +944,36 @@ | ||
/* 5 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var map = { | ||
"./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 | ||
}; | ||
function webpackContext(req) { | ||
return __webpack_require__(webpackContextResolve(req)); | ||
}; | ||
function webpackContextResolve(req) { | ||
return map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }()); | ||
}; | ||
webpackContext.keys = function webpackContextKeys() { | ||
return Object.keys(map); | ||
}; | ||
webpackContext.resolve = webpackContextResolve; | ||
module.exports = webpackContext; | ||
webpackContext.id = 5; | ||
/***/ }, | ||
/* 6 */ | ||
/***/ function(module, exports) { | ||
@@ -944,17 +986,35 @@ | ||
*/ | ||
module.exports = "function isPromise(r){return r&&\"function\"==typeof r.then&&\"function\"==typeof r[\"catch\"]}var serializerr=require(\"serializerr\"),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:serializerr(e)})}):worker.send({id:r.id,result:o,error:null})}catch(n){worker.send({id:r.id,result:null,error:serializerr(n)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},\"undefined\"!=typeof exports&&(exports.add=worker.register);"; | ||
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(n){worker.send({id:e.id,result:null,error:serializerr(n)})}}),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,u[\"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){return r[t]=e[t]}),r},{})}Object.defineProperty(r,\"__esModule\",{value:!0});var s=t(2),u=n(s);e.exports=o,o.serializerr=o,r[\"default\"]=o,e.exports=r[\"default\"]},function(e,r){\"use strict\";function t(e){for(var r=[],t=n(e);t;)r.push(t),t=n(t);return r}function n(e){return null==e?e:(o(e)&&(e=Object(e)),Object.getPrototypeOf(e))}function o(e){return null===e||\"object\"!=typeof e&&\"function\"!=typeof e}e.exports=t}]);"; | ||
/***/ }, | ||
/* 6 */ | ||
/* 7 */ | ||
/***/ function(module, exports) { | ||
module.exports = require("child_process"); | ||
/** | ||
* workerpool.js | ||
* https://github.com/josdejong/workerpool | ||
* | ||
* Offload tasks to a pool of workers on node.js and in the browser. | ||
* | ||
* @version @@version | ||
* @date @@date | ||
* | ||
* @license | ||
* Copyright (C) 2014-2016 Jos de Jong <wjosdejong@gmail.com> | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
* use this file except in compliance with the License. You may obtain a copy | ||
* of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
/***/ }, | ||
/* 7 */ | ||
/***/ function(module, exports) { | ||
module.exports = require("os"); | ||
/***/ }, | ||
@@ -969,3 +1029,3 @@ /* 8 */ | ||
var serializerr = __webpack_require__(9) | ||
var serializerr = __webpack_require__(9); | ||
@@ -972,0 +1032,0 @@ // create a worker API for sending and receiving messages which works both on |
@@ -7,7 +7,7 @@ /** | ||
* | ||
* @version 1.2.0 | ||
* @date 2016-05-22 | ||
* @version 1.2.1 | ||
* @date 2016-06-25 | ||
* | ||
* @license | ||
* Copyright (C) 2014 Jos de Jong <wjosdejong@gmail.com> | ||
* Copyright (C) 2014-2016 Jos de Jong <wjosdejong@gmail.com> | ||
* | ||
@@ -26,4 +26,3 @@ * Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
*/ | ||
!function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("child_process"),require("os")):"function"==typeof define&&define.amd?define(["child_process","os"],e):"object"==typeof exports?exports.workerpool=e(require("child_process"),require("os")):r.workerpool=e(r.child_process,r.os)}(this,function(__WEBPACK_EXTERNAL_MODULE_6__,__WEBPACK_EXTERNAL_MODULE_7__){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 o(r){var e=t(4);if("browser"==e){var n=new Blob([t(5)],{type:"text/javascript"}),i=window.URL.createObjectURL(n);importScripts(i)}else var o=t(8);o.add(r)},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?4:t(7).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);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;e>r;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);-1!=e&&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 f=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;f(i,s)},s)};var a=function(r){return s.resolved=!0,s.rejected=!1,s.pending=!1,c.forEach(function(e){e(r)}),f=function(e,t){e(r)},a=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)}),f=function(e,t){t(r)},a=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){a(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(i){t(i)}}}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(5)],{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){i.terminated=!0;for(var e in i.processing)i.processing.hasOwnProperty(e)&&i.processing[e].resolver.reject(r);i.processing={}}if(this.script=r||o(),"browser"==c){if("function"!=typeof Worker)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=t(6).fork(this.script);var i=this;this.worker.on("message",function(r){var e=r.id,t=i.processing[e];t&&(delete i.processing[e],i.terminating&&i.terminate(),r.error?t.resolver.reject(n(r.error)):t.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);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){r.exports='function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r["catch"]}var serializerr=require("serializerr"),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:serializerr(e)})}):worker.send({id:r.id,result:o,error:null})}catch(n){worker.send({id:r.id,result:null,error:serializerr(n)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},"undefined"!=typeof exports&&(exports.add=worker.register);'},function(r,e){r.exports=require("child_process")},function(r,e){r.exports=require("os")},function(module,exports,__webpack_require__){function isPromise(r){return r&&"function"==typeof r.then&&"function"==typeof r["catch"]}var serializerr=__webpack_require__(9),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:serializerr(e)})}):worker.send({id:r.id,result:t,error:null})}catch(o){worker.send({id:r.id,result:null,error:serializerr(o)})}}),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,t){"use strict";function o(r){return r&&r.__esModule?r:{"default":r}}function n(){var r=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=(0,s["default"])(r).filter(function(r){return r!==Object.prototype});return[r].concat(e).map(function(r){return Object.getOwnPropertyNames(r)}).reduce(function(e,t){return t.forEach(function(t){return e[t]=r[t]}),e},{})}Object.defineProperty(e,"__esModule",{value:!0});var i=t(10),s=o(i);r.exports=n,n.serializerr=n,e["default"]=n,r.exports=e["default"]},function(r,e){"use strict";function t(r){for(var e=[],t=o(r);t;)e.push(t),t=o(t);return e}function o(r){return null==r?r:(n(r)&&(r=Object(r)),Object.getPrototypeOf(r))}function n(r){return null===r||"object"!=typeof r&&"function"!=typeof r}r.exports=t}])}); | ||
//# sourceMappingURL=workerpool.map | ||
!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(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(e,r,t){"undefined"!=typeof window;r.pool=function(e,r){var n=t(1);return new n(e,r)},r.worker=function n(e){var r=t(4);if("browser"==r){var o=new Blob([t(6)],{type:"text/javascript"}),i=window.URL.createObjectURL(o);importScripts(i)}else var n=t(8);n.add(e)},r.Promise=t(2)},function(e,r,t){function n(e,r){if("string"==typeof e?this.script=e||null:(this.script=null,r=e),r&&"maxWorkers"in r){if(!o(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 n=t(4),s="browser"==n?4:c.require("os").cpus().length;this.maxWorkers=Math.max(s-1,1)}this.workers=[],this.tasks=[]}function o(e){return"number"==typeof e}function i(e){return Math.round(e)==e}var s=t(2),u=t(3),c={require:t(5)};n.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"')},n.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})},n.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()})}}},n.prototype._getWorker=function(){for(var e=0,r=this.workers.length;r>e;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},n.prototype._removeWorker=function(e){e.terminate();var r=this.workers.indexOf(e);-1!=r&&this.workers.splice(r,1)},n.prototype.clear=function(e){this.workers.forEach(function(r){r.terminate(e)}),this.workers=[]},e.exports=n},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 f=function(e,r){u.push(e),c.push(r)};this.then=function(e,r){return new t(function(t,o){var i=e?n(e,t,o):t,s=r?n(r,t,o):o;f(i,s)},s)};var a=function(e){return s.resolved=!0,s.rejected=!1,s.pending=!1,u.forEach(function(r){r(e)}),f=function(r,t){r(e)},a=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)}),f=function(r,t){t(e)},a=p=function(){throw new Error("Promise is already resolved")},s};this.cancel=function(){return r?r.cancel():p(new o),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){a(e)},function(e){p(e)})}function n(e,r,t){return function(n){try{var o=e(n);o&&"function"==typeof o.then&&"function"==typeof o["catch"]?o.then(r,t):r(o)}catch(i){t(i)}}}function o(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 n=e.length,o=[];n?e.forEach(function(e,i){e.then(function(e){o[i]=e,n--,0==n&&r(o)},function(e){n=0,t(e)})}):r(o)})},t.defer=function(){var e={};return e.promise=new t(function(r,t){e.resolve=r,e.reject=t}),e},o.prototype=new Error,o.prototype.constructor=Error,o.prototype.name="CancellationError",t.CancellationError=o,i.prototype=new Error,i.prototype.constructor=Error,i.prototype.name="TimeoutError",t.TimeoutError=i,e.exports=t},function(e,r,t){function n(){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 o(e){for(var r=new Error(""),t=Object.keys(e),n=0;n<t.length;n++)r[t[n]]=e[t[n]];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||n(),"browser"==u){if("function"!=typeof Worker)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,n=t.processing[r];n&&(delete t.processing[r],t.terminating&&t.terminate(),e.error?n.resolver.reject(o(e.error)):n.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 n=++this.lastId;this.processing[n]={id:n,resolver:t};var o={id:n,method:e,params:r};this.terminated?t.reject(new Error("Worker is terminated")):this.worker.send(o);var i=this;return t.promise["catch"](function(e){(e instanceof s.CancellationError||e instanceof s.TimeoutError)&&(delete i.processing[n],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 n(e){return t(o(e))}function o(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};n.keys=function(){return Object.keys(i)},n.resolve=o,e.exports=n,n.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(n){worker.send({id:e.id,result:null,error:serializerr(n)})}}),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,u["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){return r[t]=e[t]}),r},{})}Object.defineProperty(r,"__esModule",{value:!0});var s=t(2),u=n(s);e.exports=o,o.serializerr=o,r["default"]=o,e.exports=r["default"]},function(e,r){"use strict";function t(e){for(var r=[],t=n(e);t;)r.push(t),t=n(t);return r}function n(e){return null==e?e:(o(e)&&(e=Object(e)),Object.getPrototypeOf(e))}function o(e){return null===e||"object"!=typeof e&&"function"!=typeof e}e.exports=t}]);'},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(n){worker.send({id:e.id,result:null,error:serializerr(n)})}}),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,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){return r[t]=e[t]}),r},{})}Object.defineProperty(r,"__esModule",{value:!0});var i=t(10),s=n(i);e.exports=o,o.serializerr=o,r["default"]=o,e.exports=r["default"]},function(e,r){"use strict";function t(e){for(var r=[],t=n(e);t;)r.push(t),t=n(t);return r}function n(e){return null==e?e:(o(e)&&(e=Object(e)),Object.getPrototypeOf(e))}function o(e){return null===e||"object"!=typeof e&&"function"!=typeof e}e.exports=t}])}); | ||
//# sourceMappingURL=workerpool.map |
@@ -5,2 +5,7 @@ # workerpool history | ||
## 2016-06-25, version 1.2.1 | ||
- Fixed #5 error when loading via AMD or bundling using Webpack. | ||
## 2016-05-22, version 1.2.0 | ||
@@ -7,0 +12,0 @@ |
@@ -6,2 +6,2 @@ /** | ||
*/ | ||
module.exports = "function isPromise(r){return r&&\"function\"==typeof r.then&&\"function\"==typeof r[\"catch\"]}var serializerr=require(\"serializerr\"),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:serializerr(e)})}):worker.send({id:r.id,result:o,error:null})}catch(n){worker.send({id:r.id,result:null,error:serializerr(n)})}}),worker.register=function(r){if(r)for(var e in r)r.hasOwnProperty(e)&&(worker.methods[e]=r[e])},\"undefined\"!=typeof exports&&(exports.add=worker.register);"; | ||
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(n){worker.send({id:e.id,result:null,error:serializerr(n)})}}),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,u[\"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){return r[t]=e[t]}),r},{})}Object.defineProperty(r,\"__esModule\",{value:!0});var s=t(2),u=n(s);e.exports=o,o.serializerr=o,r[\"default\"]=o,e.exports=r[\"default\"]},function(e,r){\"use strict\";function t(e){for(var r=[],t=n(e);t;)r.push(t),t=n(t);return r}function n(e){return null==e?e:(o(e)&&(e=Object(e)),Object.getPrototypeOf(e))}function o(e){return null===e||\"object\"!=typeof e&&\"function\"!=typeof e}e.exports=t}]);"; |
@@ -11,3 +11,3 @@ /** | ||
* @license | ||
* Copyright (C) 2014 Jos de Jong <wjosdejong@gmail.com> | ||
* Copyright (C) 2014-2016 Jos de Jong <wjosdejong@gmail.com> | ||
* | ||
@@ -14,0 +14,0 @@ * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
var Promise = require('./Promise'), | ||
WorkerHandler = require('./WorkerHandler'); | ||
// used to prevent webpack from resolving requires on node libs | ||
var node = {require: require}; | ||
/** | ||
@@ -28,3 +31,4 @@ * A pool to manage workers | ||
var environment = require('./environment'); | ||
var numCPUs = (environment == 'browser') ? 4 : require('os').cpus().length; | ||
// call node.require to prevent os to be required when loading with AMD | ||
var numCPUs = (environment == 'browser') ? 4 : node.require('os').cpus().length; | ||
this.maxWorkers = Math.max(numCPUs - 1, 1); | ||
@@ -31,0 +35,0 @@ } |
@@ -6,3 +6,3 @@ /** | ||
var serializerr = require('serializerr') | ||
var serializerr = require('serializerr'); | ||
@@ -9,0 +9,0 @@ // create a worker API for sending and receiving messages which works both on |
@@ -6,2 +6,5 @@ var Promise = require('./Promise'); | ||
// used to prevent webpack from resolving requires on node libs | ||
var node = {require: require}; | ||
// get the default worker script | ||
@@ -75,3 +78,4 @@ function getDefaultWorker() { | ||
// on node.js, create a child process | ||
this.worker = require('child_process').fork(this.script); | ||
// call node.require to prevent child_process to be required when loading with AMD | ||
this.worker = node.require('child_process').fork(this.script); | ||
} | ||
@@ -78,0 +82,0 @@ |
{ | ||
"name": "workerpool", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"description": "Offload tasks to a pool of workers on node.js and in the browser", | ||
@@ -26,3 +26,2 @@ "homepage": "https://github.com/josdejong/workerpool", | ||
"dependencies": { | ||
"promise": "^5.0.0", | ||
"serializerr": "^1.0.2" | ||
@@ -29,0 +28,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
1
32
3459
0
1
151225
1
0
- Removedpromise@^5.0.0
- Removedasap@1.0.0(transitive)
- Removedpromise@5.0.0(transitive)