Socket
Socket
Sign inDemoInstall

concurrent-tasks

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

concurrent-tasks - npm Package Compare versions

Comparing version 0.0.11 to 1.0.0

83

es/index.js

@@ -0,1 +1,3 @@

'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

@@ -9,6 +11,7 @@

import { startCheckAndRun, runPending, startCheck } from './PrivateFunctions';
import { startCheckAndRun, runPending, startCheck, addCheck, removeCheck, setAppropriateConcurrency } from './PrivateFunctions';
import log from './log';
import { assignFunction, isFunction, isArray, assignNumber } from './util';
import { isNumber } from '../es/util';

@@ -23,15 +26,18 @@ var TaskRunner = (_temp = _class = function TaskRunner() {

var concurrency = config.concurrency,
onAdd = config.onAdd,
onStart = config.onStart,
onDone = config.onDone,
onEnd = config.onEnd,
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onStart', 'onDone', 'onEnd']);
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onAdd', 'onStart', 'onDone', 'onEnd']);
this.config = _extends({
autoStart: true,
name: 'Runner ' + TaskRunner.runnerCount++
name: 'Runner ' + ++TaskRunner.runnerCount
}, otherConfig);
this.concurrency = assignNumber(concurrency, 3);
this.concurrency = this.setConcurrency(concurrency);
this.onAdd = assignFunction(onAdd);
this.onStart = assignFunction(onStart);
this.onDone = assignFunction(onDone);
this.onEnd = assignFunction(onEnd);
Object.seal(this);
}, _class.runnerCount = 0, _initialiseProps = function _initialiseProps() {

@@ -53,4 +59,18 @@ var _this = this;

this.isBusy = function () {
return _this.__working;
};
this.setConcurrency = function (concurrency) {
_this.concurrency = assignNumber(concurrency, 3);
concurrency = parseInt(concurrency, 10);
if (!isNumber(concurrency)) {
console.warn(log.call(_this, 'concurrency_not_a_number'));
}
if (concurrency < 0) {
concurrency = Math.abs(concurrency);
console.warn(log.call(_this, 'concurrency_should_be_positive_integer'));
}
_this.concurrency = assignNumber(concurrency, 3, _this.tasks.total);
if (_this.__working) {

@@ -78,6 +98,14 @@ runPending.call(_this);

this.add = function (task) {
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isFunction(task)) {
var autoStart = _this.config.autoStart;
_this.tasks.list.push(task);
if (first) {
_this.tasks.list.push(task);
} else {
_this.tasks.list.unshift(task);
}
_this.tasks.total++;

@@ -87,2 +115,4 @@ if (autoStart) {

}
addCheck.call(_this);
return true;

@@ -94,3 +124,7 @@ }

this.addMultiple = function (tasks) {
this.addFirst = function (task) {
_this.add(task, true);
};
this.addMultiple = function (tasks, first) {
if (isArray(tasks) && tasks.every(function (t) {

@@ -101,9 +135,13 @@ return isFunction(t);

_this.tasks = _extends({}, _this.tasks, {
list: [].concat(_this.tasks.list, tasks),
list: first ? [].concat(tasks, _this.tasks.list) : [].concat(_this.tasks.list, tasks),
total: _this.tasks.total + tasks.length
});
if (autoStart) {
startCheckAndRun.call(_this);
}
addCheck.call(_this);
return true;

@@ -115,12 +153,33 @@ }

this.remove = function (index) {
_this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length;
this.addMultipleFirst = function (tasks) {
_this.addMultiple(tasks, first);
};
this.remove = function () {
var first = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var task = first ? _this.tasks.list.shift() : _this.tasks.list.pop();
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
removeCheck.call(_this);
return task;
};
this.removeFirst = function () {
_this.remove(true);
};
this.removeAt = function (index) {
var task = _this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
removeCheck.call(_this);
return task;
};
this.removeAll = function () {
_this.tasks.list = [];
_this.tasks.total = 0;
_this.tasks.total = _this.tasks.completed;
removeCheck.call(_this);
return _this.tasks.list;
};
}, _temp);
export { TaskRunner as default };

4

es/log.js

@@ -5,3 +5,5 @@ var logs = {

add_requires_function: 'The "add" operation requires a function. Check if the first argument is a function!',
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!'
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!',
concurrency_not_a_number: 'Concurrency should be a positive number. Defaulting to 3.',
concurrency_should_be_positive_integer: 'Concurrency should be a positive integer. Seems like you have supplied a negative value!'
};

@@ -8,0 +10,0 @@

@@ -46,2 +46,18 @@ import { isFunction } from './util';

export function addCheck() {
if (isFunction(this.onAdd)) {
var tasks = this.tasks;
this.onAdd({ tasks: tasks });
}
}
export function removeCheck() {
if (isFunction(this.onRemove)) {
var tasks = this.tasks;
this.onRemove({ tasks: tasks });
}
}
export function startCheckAndRun() {

@@ -54,3 +70,4 @@ startCheck.call(this);

if (this.tasks.running < this.concurrency) {
for (var i = this.tasks.running; i < this.concurrency; i++) {
var concurrency = this.concurrency === Infinity ? this.tasks.list.length : this.concurrency;
for (var i = this.tasks.running; i < concurrency; i++) {
run.call(this);

@@ -57,0 +74,0 @@ }

@@ -5,3 +5,3 @@ export var isFunction = function isFunction(item) {

export var isNumber = function isNumber(item) {
return typeof item === 'number';
return typeof item === 'number' && !isNaN(item);
};

@@ -24,6 +24,6 @@ export var isString = function isString(item) {

export var assignNumber = function assignNumber(number, defaultNumber) {
export var assignNumber = function assignNumber(number, defaultNumber, listLength) {
if (isNumber(number)) {
if (number === 0) {
return Infinity;
return listLength;
}

@@ -30,0 +30,0 @@

@@ -18,2 +18,4 @@ 'use strict';

var _util2 = require('../es/util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -33,15 +35,18 @@

var concurrency = config.concurrency,
onAdd = config.onAdd,
onStart = config.onStart,
onDone = config.onDone,
onEnd = config.onEnd,
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onStart', 'onDone', 'onEnd']);
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onAdd', 'onStart', 'onDone', 'onEnd']);
this.config = _extends({
autoStart: true,
name: 'Runner ' + TaskRunner.runnerCount++
name: 'Runner ' + ++TaskRunner.runnerCount
}, otherConfig);
this.concurrency = (0, _util.assignNumber)(concurrency, 3);
this.concurrency = this.setConcurrency(concurrency);
this.onAdd = (0, _util.assignFunction)(onAdd);
this.onStart = (0, _util.assignFunction)(onStart);
this.onDone = (0, _util.assignFunction)(onDone);
this.onEnd = (0, _util.assignFunction)(onEnd);
Object.seal(this);
}, _class.runnerCount = 0, _initialiseProps = function _initialiseProps() {

@@ -63,4 +68,18 @@ var _this = this;

this.isBusy = function () {
return _this.__working;
};
this.setConcurrency = function (concurrency) {
_this.concurrency = (0, _util.assignNumber)(concurrency, 3);
concurrency = parseInt(concurrency, 10);
if (!(0, _util2.isNumber)(concurrency)) {
console.warn(_log2.default.call(_this, 'concurrency_not_a_number'));
}
if (concurrency < 0) {
concurrency = Math.abs(concurrency);
console.warn(_log2.default.call(_this, 'concurrency_should_be_positive_integer'));
}
_this.concurrency = (0, _util.assignNumber)(concurrency, 3, _this.tasks.total);
if (_this.__working) {

@@ -88,6 +107,14 @@ _PrivateFunctions.runPending.call(_this);

this.add = function (task) {
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if ((0, _util.isFunction)(task)) {
var autoStart = _this.config.autoStart;
_this.tasks.list.push(task);
if (first) {
_this.tasks.list.push(task);
} else {
_this.tasks.list.unshift(task);
}
_this.tasks.total++;

@@ -97,2 +124,4 @@ if (autoStart) {

}
_PrivateFunctions.addCheck.call(_this);
return true;

@@ -104,3 +133,7 @@ }

this.addMultiple = function (tasks) {
this.addFirst = function (task) {
_this.add(task, true);
};
this.addMultiple = function (tasks, first) {
if ((0, _util.isArray)(tasks) && tasks.every(function (t) {

@@ -111,9 +144,13 @@ return (0, _util.isFunction)(t);

_this.tasks = _extends({}, _this.tasks, {
list: [].concat(_this.tasks.list, tasks),
list: first ? [].concat(tasks, _this.tasks.list) : [].concat(_this.tasks.list, tasks),
total: _this.tasks.total + tasks.length
});
if (autoStart) {
_PrivateFunctions.startCheckAndRun.call(_this);
}
_PrivateFunctions.addCheck.call(_this);
return true;

@@ -125,10 +162,31 @@ }

this.remove = function (index) {
_this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length;
this.addMultipleFirst = function (tasks) {
_this.addMultiple(tasks, first);
};
this.remove = function () {
var first = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var task = first ? _this.tasks.list.shift() : _this.tasks.list.pop();
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
_PrivateFunctions.removeCheck.call(_this);
return task;
};
this.removeFirst = function () {
_this.remove(true);
};
this.removeAt = function (index) {
var task = _this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
_PrivateFunctions.removeCheck.call(_this);
return task;
};
this.removeAll = function () {
_this.tasks.list = [];
_this.tasks.total = 0;
_this.tasks.total = _this.tasks.completed;
_PrivateFunctions.removeCheck.call(_this);
return _this.tasks.list;
};

@@ -135,0 +193,0 @@ }, _temp);

@@ -13,5 +13,7 @@ 'use strict';

add_requires_function: 'The "add" operation requires a function. Check if the first argument is a function!',
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!'
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!',
concurrency_not_a_number: 'Concurrency should be a positive number. Defaulting to 3.',
concurrency_should_be_positive_integer: 'Concurrency should be a positive integer. Seems like you have supplied a negative value!'
};
module.exports = exports['default'];

@@ -7,2 +7,4 @@ 'use strict';

exports.startCheck = startCheck;
exports.addCheck = addCheck;
exports.removeCheck = removeCheck;
exports.startCheckAndRun = startCheckAndRun;

@@ -56,2 +58,18 @@ exports.runPending = runPending;

function addCheck() {
if ((0, _util.isFunction)(this.onAdd)) {
var tasks = this.tasks;
this.onAdd({ tasks: tasks });
}
}
function removeCheck() {
if ((0, _util.isFunction)(this.onRemove)) {
var tasks = this.tasks;
this.onRemove({ tasks: tasks });
}
}
function startCheckAndRun() {

@@ -64,3 +82,4 @@ startCheck.call(this);

if (this.tasks.running < this.concurrency) {
for (var i = this.tasks.running; i < this.concurrency; i++) {
var concurrency = this.concurrency === Infinity ? this.tasks.list.length : this.concurrency;
for (var i = this.tasks.running; i < concurrency; i++) {
run.call(this);

@@ -67,0 +86,0 @@ }

@@ -8,3 +8,3 @@ 'use strict';

var isNumber = exports.isNumber = function isNumber(item) {
return typeof item === 'number';
return typeof item === 'number' && !isNaN(item);
};

@@ -27,6 +27,6 @@ var isString = exports.isString = function isString(item) {

var assignNumber = exports.assignNumber = function assignNumber(number, defaultNumber) {
var assignNumber = exports.assignNumber = function assignNumber(number, defaultNumber, listLength) {
if (isNumber(number)) {
if (number === 0) {
return Infinity;
return listLength;
}

@@ -33,0 +33,0 @@

{
"name": "concurrent-tasks",
"version": "0.0.11",
"version": "1.0.0",
"description": "A simple task runner which will run tasks in parallel while maintaining limits.",
"author": "Samrith Shankar",
"license": "MIT",
"homepage": "https://samrith-s.github.io/concurrent-tasks",
"homepage": "https://concurrent-tasks.js.org",
"repository": "https://github.com/samrith-s/concurrent-tasks.git",

@@ -25,3 +25,25 @@ "main": "lib/index.js",

"nwb": "0.23.x"
}
},
"keywords": [
"parallel",
"concurrent",
"tasks",
"processes",
"threads",
"tasks",
"task",
"worker",
"process",
"run",
"concurrent tasks",
"parallel tasks",
"node parallel tasks",
"react parallel task",
"priority",
"queue",
"priority queue",
"fifo",
"scheduler",
"schedule task"
]
}

@@ -1,3 +0,23 @@

# Concurrent Tasks
# <span style="display: flex; align-items: center">![logo][icon] <span style="margin-left: 10px">Concurrent Tasks</span>
A simple task runner which will run all tasks till completion, while maintaining concurrency limits. For live examples, [click here](https://samrith-s.github.io/concurrent-tasks).
[![npm][npm_v]][npm_package]
[![npm][npm_dw]][npm_package]
[![GitHub issues][gh_issues]][github_issues]
[![GitHub forks][gh_forks]][github_forks]
[![GitHub stars][gh_stars]][github_stars]
A simple task runner which will run all tasks till completion, while maintaining concurrency limits.
For a detailed documentation, visit [the website][website].
[website]: https://concurrent-tasks.js.org
[icon]: https://raw.githubusercontent.com/samrith-s/concurrent-tasks/master/icons/icon-x64.png
[npm_package]: https://www.npmjs.com/package/concurrent-tasks
[npm_v]: https://img.shields.io/npm/v/concurrent-tasks.svg
[npm_dw]: https://img.shields.io/npm/dw/concurrent-tasks.svg
[github_issues]: https://github.com/samrith-s/concurrent-tasks/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc
[github_forks]: https://github.com/samrith-s/concurrent-tasks/network/members
[github_stars]: https://github.com/samrith-s/concurrent-tasks/stargazers
[gh_issues]: https://img.shields.io/github/issues/samrith-s/concurrent-tasks.svg
[gh_forks]: https://img.shields.io/github/forks/samrith-s/concurrent-tasks.svg?label=Fork&style=social
[gh_stars]: https://img.shields.io/github/stars/samrith-s/concurrent-tasks.svg?label=Stars&style=social
/*!
* concurrent-tasks v0.0.11 - https://samrith-s.github.io/concurrent-tasks
* concurrent-tasks v1.0.0 - https://concurrent-tasks.js.org
* MIT Licensed

@@ -120,3 +120,3 @@ */

var isNumber = function isNumber(item) {
return typeof item === 'number';
return typeof item === 'number' && !isNaN(item);
};

@@ -139,6 +139,6 @@ var isString = function isString(item) {

var assignNumber = function assignNumber(number, defaultNumber) {
var assignNumber = function assignNumber(number, defaultNumber, listLength) {
if (isNumber(number)) {
if (number === 0) {
return Infinity;
return listLength;
}

@@ -197,2 +197,18 @@

function addCheck() {
if (isFunction(this.onAdd)) {
var tasks = this.tasks;
this.onAdd({ tasks: tasks });
}
}
function removeCheck() {
if (isFunction(this.onRemove)) {
var tasks = this.tasks;
this.onRemove({ tasks: tasks });
}
}
function startCheckAndRun() {

@@ -205,3 +221,4 @@ startCheck.call(this);

if (this.tasks.running < this.concurrency) {
for (var i = this.tasks.running; i < this.concurrency; i++) {
var concurrency = this.concurrency === Infinity ? this.tasks.list.length : this.concurrency;
for (var i = this.tasks.running; i < concurrency; i++) {
run.call(this);

@@ -216,3 +233,5 @@ }

add_requires_function: 'The "add" operation requires a function. Check if the first argument is a function!',
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!'
add_multiple_requires_array_of_functions: 'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!',
concurrency_not_a_number: 'Concurrency should be a positive number. Defaulting to 3.',
concurrency_should_be_positive_integer: 'Concurrency should be a positive integer. Seems like you have supplied a negative value!'
};

@@ -223,4 +242,40 @@

});
// CONCATENATED MODULE: ./es/util.js
var util_isFunction = function isFunction(item) {
return typeof item === 'function';
};
var util_isNumber = function isNumber(item) {
return typeof item === 'number' && !isNaN(item);
};
var util_isString = function isString(item) {
return typeof item === 'string';
};
var util_isArray = function isArray(item) {
return item.constructor === Array;
};
var util_isEmptyString = function isEmptyString(item) {
return util_isString(item) && !item;
};
var util_assignFunction = function assignFunction(item) {
if (util_isFunction(item)) {
return item;
}
};
var util_assignNumber = function assignNumber(number, defaultNumber, listLength) {
if (util_isNumber(number)) {
if (number === 0) {
return listLength;
}
return number;
}
return defaultNumber;
};
// CONCATENATED MODULE: ./src/index.js
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return src_TaskRunner; });
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

@@ -239,2 +294,3 @@

var src_TaskRunner = (_temp = _class = function TaskRunner() {

@@ -248,15 +304,18 @@ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

var concurrency = config.concurrency,
onAdd = config.onAdd,
onStart = config.onStart,
onDone = config.onDone,
onEnd = config.onEnd,
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onStart', 'onDone', 'onEnd']);
otherConfig = _objectWithoutProperties(config, ['concurrency', 'onAdd', 'onStart', 'onDone', 'onEnd']);
this.config = _extends({
autoStart: true,
name: 'Runner ' + TaskRunner.runnerCount++
name: 'Runner ' + ++TaskRunner.runnerCount
}, otherConfig);
this.concurrency = assignNumber(concurrency, 3);
this.concurrency = this.setConcurrency(concurrency);
this.onAdd = assignFunction(onAdd);
this.onStart = assignFunction(onStart);
this.onDone = assignFunction(onDone);
this.onEnd = assignFunction(onEnd);
Object.seal(this);
}, _class.runnerCount = 0, src_initialiseProps = function _initialiseProps() {

@@ -278,4 +337,18 @@ var _this = this;

this.isBusy = function () {
return _this.__working;
};
this.setConcurrency = function (concurrency) {
_this.concurrency = assignNumber(concurrency, 3);
concurrency = parseInt(concurrency, 10);
if (!util_isNumber(concurrency)) {
console.warn(log.call(_this, 'concurrency_not_a_number'));
}
if (concurrency < 0) {
concurrency = Math.abs(concurrency);
console.warn(log.call(_this, 'concurrency_should_be_positive_integer'));
}
_this.concurrency = assignNumber(concurrency, 3, _this.tasks.total);
if (_this.__working) {

@@ -303,6 +376,14 @@ runPending.call(_this);

this.add = function (task) {
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isFunction(task)) {
var autoStart = _this.config.autoStart;
_this.tasks.list.push(task);
if (first) {
_this.tasks.list.push(task);
} else {
_this.tasks.list.unshift(task);
}
_this.tasks.total++;

@@ -312,2 +393,4 @@ if (autoStart) {

}
addCheck.call(_this);
return true;

@@ -319,3 +402,7 @@ }

this.addMultiple = function (tasks) {
this.addFirst = function (task) {
_this.add(task, true);
};
this.addMultiple = function (tasks, first) {
if (isArray(tasks) && tasks.every(function (t) {

@@ -326,9 +413,13 @@ return isFunction(t);

_this.tasks = _extends({}, _this.tasks, {
list: [].concat(_this.tasks.list, tasks),
list: first ? [].concat(tasks, _this.tasks.list) : [].concat(_this.tasks.list, tasks),
total: _this.tasks.total + tasks.length
});
if (autoStart) {
startCheckAndRun.call(_this);
}
addCheck.call(_this);
return true;

@@ -340,10 +431,31 @@ }

this.remove = function (index) {
_this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length;
this.addMultipleFirst = function (tasks) {
_this.addMultiple(tasks, first);
};
this.remove = function () {
var first = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var task = first ? _this.tasks.list.shift() : _this.tasks.list.pop();
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
removeCheck.call(_this);
return task;
};
this.removeFirst = function () {
_this.remove(true);
};
this.removeAt = function (index) {
var task = _this.tasks.list.splice(index, 1);
_this.tasks.total = _this.tasks.list.length + _this.tasks.completed;
removeCheck.call(_this);
return task;
};
this.removeAll = function () {
_this.tasks.list = [];
_this.tasks.total = 0;
_this.tasks.total = _this.tasks.completed;
removeCheck.call(_this);
return _this.tasks.list;
};

@@ -350,0 +462,0 @@ }, _temp);

/*!
* concurrent-tasks v0.0.11 - https://samrith-s.github.io/concurrent-tasks
* concurrent-tasks v1.0.0 - https://concurrent-tasks.js.org
* MIT Licensed
*/
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.TaskRunner=n():t.TaskRunner=n()}(window,function(){return function(t){var n={};function r(e){if(n[e])return n[e].exports;var o=n[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)r.d(e,o,function(n){return t[n]}.bind(null,o));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="",r(r.s=0)}([function(t,n,r){t.exports=r(1)},function(t,n,r){"use strict";r.r(n);var e=function(t){return"function"==typeof t},o=function(t){if(e(t))return t},i=function(t,n){return function(t){return"number"==typeof t}(t)?0===t?1/0:t:n};function a(){if(this.tasks.list.length)this.tasks.running<this.concurrency&&(this.tasks.list.shift()(function(){this.tasks.completed++,this.tasks.running--,this.duration.total=Date.now()-this.duration.start,e(this.onDone)&&this.onDone(this.tasks);a.call(this)}.bind(this)),this.tasks.running++);else if(this.tasks.completed===this.tasks.total&&(this.duration.end=Date.now(),this.duration.total=this.duration.end-this.duration.start,this.__working=!1,e(this.onEnd))){var t=this.tasks.completed,n=this.duration;this.onEnd({completed:t,duration:n})}}function s(){if(!this.__working&&(this.duration.start=Date.now(),this.__working=!0,e(this.onStart))){var t=this.duration;this.onStart({duration:t})}}function u(){s.call(this),a.call(this)}function c(){if(this.tasks.running<this.concurrency)for(var t=this.tasks.running;t<this.concurrency;t++)a.call(this)}var l={already_running:"Cannot start TaskRunner instance as it is already running!",auto_start_true:"Cannot programmatically start TaskRunner instance as autoStart is true!",add_requires_function:'The "add" operation requires a function. Check if the first argument is a function!',add_multiple_requires_array_of_functions:'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!'},f=function(t){return"[TaskRunner]"+this.config.name+": "+l[t]};r.d(n,"default",function(){return _});var h,d,p,y=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t};var _=(d=h=function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),p.call(this);var r=n.concurrency,e=n.onStart,a=n.onDone,s=n.onEnd,u=function(t,n){var r={};for(var e in t)n.indexOf(e)>=0||Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e]);return r}(n,["concurrency","onStart","onDone","onEnd"]);this.config=y({autoStart:!0,name:"Runner "+t.runnerCount++},u),this.concurrency=i(r,3),this.onStart=o(e),this.onDone=o(a),this.onEnd=o(s)},h.runnerCount=0,p=function(){var t=this;this.__working=!1,this.tasks={list:[],total:0,completed:0,running:0},this.duration={start:0,end:0,total:0},this.setConcurrency=function(n){t.concurrency=i(n,3),t.__working&&c.call(t)},this.start=function(){return t.__working?(console.warn(f.call(t,"already_running")),!1):t.config.autoStart?(console.warn(f.call(t,"auto_start_true")),!1):(s.call(t),c.call(t),!0)},this.add=function(n){if(e(n)){var r=t.config.autoStart;return t.tasks.list.push(n),t.tasks.total++,r&&u.call(t),!0}throw new TypeError(f("add_requires_function"))},this.addMultiple=function(n){if(function(t){return t.constructor===Array}(n)&&n.every(function(t){return e(t)})){var r=t.config.autoStart;return t.tasks=y({},t.tasks,{list:[].concat(t.tasks.list,n),total:t.tasks.total+n.length}),r&&u.call(t),!0}throw new TypeError(f.call(t,"add_multiple_requires_array_of_functions"))},this.remove=function(n){t.tasks.list.splice(n,1),t.tasks.total=t.tasks.list.length},this.removeAll=function(){t.tasks.list=[],t.tasks.total=0}},d)}]).default});
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.TaskRunner=n():t.TaskRunner=n()}(window,function(){return function(t){var n={};function r(e){if(n[e])return n[e].exports;var i=n[e]={i:e,l:!1,exports:{}};return t[e].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)r.d(e,i,function(n){return t[n]}.bind(null,i));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="",r(r.s=0)}([function(t,n,r){t.exports=r(1)},function(t,n,r){"use strict";r.r(n);var e=function(t){return"function"==typeof t},i=function(t){if(e(t))return t},o=function(t,n,r){return function(t){return"number"==typeof t&&!isNaN(t)}(t)?0===t?r:t:n};function s(){if(this.tasks.list.length)this.tasks.running<this.concurrency&&(this.tasks.list.shift()(function(){this.tasks.completed++,this.tasks.running--,this.duration.total=Date.now()-this.duration.start,e(this.onDone)&&this.onDone(this.tasks);s.call(this)}.bind(this)),this.tasks.running++);else if(this.tasks.completed===this.tasks.total&&(this.duration.end=Date.now(),this.duration.total=this.duration.end-this.duration.start,this.__working=!1,e(this.onEnd))){var t=this.tasks.completed,n=this.duration;this.onEnd({completed:t,duration:n})}}function a(){if(!this.__working&&(this.duration.start=Date.now(),this.__working=!0,e(this.onStart))){var t=this.duration;this.onStart({duration:t})}}function u(){if(e(this.onAdd)){var t=this.tasks;this.onAdd({tasks:t})}}function c(){if(e(this.onRemove)){var t=this.tasks;this.onRemove({tasks:t})}}function l(){a.call(this),s.call(this)}function f(){if(this.tasks.running<this.concurrency)for(var t=this.concurrency===1/0?this.tasks.list.length:this.concurrency,n=this.tasks.running;n<t;n++)s.call(this)}var h={already_running:"Cannot start TaskRunner instance as it is already running!",auto_start_true:"Cannot programmatically start TaskRunner instance as autoStart is true!",add_requires_function:'The "add" operation requires a function. Check if the first argument is a function!',add_multiple_requires_array_of_functions:'The "addMultiple" operation requires an array of functions. Check if the first argument is an array and whether all the items in the array are functions!',concurrency_not_a_number:"Concurrency should be a positive number. Defaulting to 3.",concurrency_should_be_positive_integer:"Concurrency should be a positive integer. Seems like you have supplied a negative value!"},d=function(t){return"[TaskRunner]"+this.config.name+": "+h[t]},p=function(t){return"number"==typeof t&&!isNaN(t)};r.d(n,"default",function(){return g});var k,y,_,v=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t};var g=(y=k=function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),_.call(this);var r=n.concurrency,e=n.onAdd,o=n.onStart,s=n.onDone,a=n.onEnd,u=function(t,n){var r={};for(var e in t)n.indexOf(e)>=0||Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e]);return r}(n,["concurrency","onAdd","onStart","onDone","onEnd"]);this.config=v({autoStart:!0,name:"Runner "+ ++t.runnerCount},u),this.concurrency=this.setConcurrency(r),this.onAdd=i(e),this.onStart=i(o),this.onDone=i(s),this.onEnd=i(a),Object.seal(this)},k.runnerCount=0,_=function(){var t=this;this.__working=!1,this.tasks={list:[],total:0,completed:0,running:0},this.duration={start:0,end:0,total:0},this.isBusy=function(){return t.__working},this.setConcurrency=function(n){n=parseInt(n,10),p(n)||console.warn(d.call(t,"concurrency_not_a_number")),n<0&&(n=Math.abs(n),console.warn(d.call(t,"concurrency_should_be_positive_integer"))),t.concurrency=o(n,3,t.tasks.total),t.__working&&f.call(t)},this.start=function(){return t.__working?(console.warn(d.call(t,"already_running")),!1):t.config.autoStart?(console.warn(d.call(t,"auto_start_true")),!1):(a.call(t),f.call(t),!0)},this.add=function(n){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e(n)){var i=t.config.autoStart;return r?t.tasks.list.push(n):t.tasks.list.unshift(n),t.tasks.total++,i&&l.call(t),u.call(t),!0}throw new TypeError(d("add_requires_function"))},this.addFirst=function(n){t.add(n,!0)},this.addMultiple=function(n,r){if(function(t){return t.constructor===Array}(n)&&n.every(function(t){return e(t)})){var i=t.config.autoStart;return t.tasks=v({},t.tasks,{list:r?[].concat(n,t.tasks.list):[].concat(t.tasks.list,n),total:t.tasks.total+n.length}),i&&l.call(t),u.call(t),!0}throw new TypeError(d.call(t,"add_multiple_requires_array_of_functions"))},this.addMultipleFirst=function(n){t.addMultiple(n,first)},this.remove=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0]?t.tasks.list.shift():t.tasks.list.pop();return t.tasks.total=t.tasks.list.length+t.tasks.completed,c.call(t),n},this.removeFirst=function(){t.remove(!0)},this.removeAt=function(n){var r=t.tasks.list.splice(n,1);return t.tasks.total=t.tasks.list.length+t.tasks.completed,c.call(t),r},this.removeAll=function(){return t.tasks.list=[],t.tasks.total=t.tasks.completed,c.call(t),t.tasks.list}},y)}]).default});
//# sourceMappingURL=concurrent-tasks.min.js.map

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