added unit testing, and started implementing unit tests...phew
This commit is contained in:
88
node_modules/async/internal/DoublyLinkedList.js
generated
vendored
Normal file
88
node_modules/async/internal/DoublyLinkedList.js
generated
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = DLL;
|
||||
// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation
|
||||
// used for queues. This implementation assumes that the node provided by the user can be modified
|
||||
// to adjust the next and last properties. We implement only the minimal functionality
|
||||
// for queue support.
|
||||
function DLL() {
|
||||
this.head = this.tail = null;
|
||||
this.length = 0;
|
||||
}
|
||||
|
||||
function setInitial(dll, node) {
|
||||
dll.length = 1;
|
||||
dll.head = dll.tail = node;
|
||||
}
|
||||
|
||||
DLL.prototype.removeLink = function (node) {
|
||||
if (node.prev) node.prev.next = node.next;else this.head = node.next;
|
||||
if (node.next) node.next.prev = node.prev;else this.tail = node.prev;
|
||||
|
||||
node.prev = node.next = null;
|
||||
this.length -= 1;
|
||||
return node;
|
||||
};
|
||||
|
||||
DLL.prototype.empty = function () {
|
||||
while (this.head) this.shift();
|
||||
return this;
|
||||
};
|
||||
|
||||
DLL.prototype.insertAfter = function (node, newNode) {
|
||||
newNode.prev = node;
|
||||
newNode.next = node.next;
|
||||
if (node.next) node.next.prev = newNode;else this.tail = newNode;
|
||||
node.next = newNode;
|
||||
this.length += 1;
|
||||
};
|
||||
|
||||
DLL.prototype.insertBefore = function (node, newNode) {
|
||||
newNode.prev = node.prev;
|
||||
newNode.next = node;
|
||||
if (node.prev) node.prev.next = newNode;else this.head = newNode;
|
||||
node.prev = newNode;
|
||||
this.length += 1;
|
||||
};
|
||||
|
||||
DLL.prototype.unshift = function (node) {
|
||||
if (this.head) this.insertBefore(this.head, node);else setInitial(this, node);
|
||||
};
|
||||
|
||||
DLL.prototype.push = function (node) {
|
||||
if (this.tail) this.insertAfter(this.tail, node);else setInitial(this, node);
|
||||
};
|
||||
|
||||
DLL.prototype.shift = function () {
|
||||
return this.head && this.removeLink(this.head);
|
||||
};
|
||||
|
||||
DLL.prototype.pop = function () {
|
||||
return this.tail && this.removeLink(this.tail);
|
||||
};
|
||||
|
||||
DLL.prototype.toArray = function () {
|
||||
var arr = Array(this.length);
|
||||
var curr = this.head;
|
||||
for (var idx = 0; idx < this.length; idx++) {
|
||||
arr[idx] = curr.data;
|
||||
curr = curr.next;
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
DLL.prototype.remove = function (testFn) {
|
||||
var curr = this.head;
|
||||
while (!!curr) {
|
||||
var next = curr.next;
|
||||
if (testFn(curr)) {
|
||||
this.removeLink(curr);
|
||||
}
|
||||
curr = next;
|
||||
}
|
||||
return this;
|
||||
};
|
||||
module.exports = exports["default"];
|
38
node_modules/async/internal/applyEach.js
generated
vendored
Normal file
38
node_modules/async/internal/applyEach.js
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = applyEach;
|
||||
|
||||
var _slice = require('./slice');
|
||||
|
||||
var _slice2 = _interopRequireDefault(_slice);
|
||||
|
||||
var _initialParams = require('./initialParams');
|
||||
|
||||
var _initialParams2 = _interopRequireDefault(_initialParams);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function applyEach(eachfn) {
|
||||
return function (fns /*, ...args*/) {
|
||||
var args = (0, _slice2.default)(arguments, 1);
|
||||
var go = (0, _initialParams2.default)(function (args, callback) {
|
||||
var that = this;
|
||||
return eachfn(fns, function (fn, cb) {
|
||||
(0, _wrapAsync2.default)(fn).apply(that, args.concat(cb));
|
||||
}, callback);
|
||||
});
|
||||
if (args.length) {
|
||||
return go.apply(this, args);
|
||||
} else {
|
||||
return go;
|
||||
}
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
9
node_modules/async/internal/breakLoop.js
generated
vendored
Normal file
9
node_modules/async/internal/breakLoop.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
// A temporary value used to identify if the loop should be broken.
|
||||
// See #1064, #1293
|
||||
exports.default = {};
|
||||
module.exports = exports["default"];
|
42
node_modules/async/internal/consoleFunc.js
generated
vendored
Normal file
42
node_modules/async/internal/consoleFunc.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = consoleFunc;
|
||||
|
||||
var _arrayEach = require('lodash/_arrayEach');
|
||||
|
||||
var _arrayEach2 = _interopRequireDefault(_arrayEach);
|
||||
|
||||
var _slice = require('./slice');
|
||||
|
||||
var _slice2 = _interopRequireDefault(_slice);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function consoleFunc(name) {
|
||||
return function (fn /*, ...args*/) {
|
||||
var args = (0, _slice2.default)(arguments, 1);
|
||||
args.push(function (err /*, ...args*/) {
|
||||
var args = (0, _slice2.default)(arguments, 1);
|
||||
if (typeof console === 'object') {
|
||||
if (err) {
|
||||
if (console.error) {
|
||||
console.error(err);
|
||||
}
|
||||
} else if (console[name]) {
|
||||
(0, _arrayEach2.default)(args, function (x) {
|
||||
console[name](x);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
(0, _wrapAsync2.default)(fn).apply(null, args);
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
44
node_modules/async/internal/createTester.js
generated
vendored
Normal file
44
node_modules/async/internal/createTester.js
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _createTester;
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _breakLoop = require('./breakLoop');
|
||||
|
||||
var _breakLoop2 = _interopRequireDefault(_breakLoop);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _createTester(check, getResult) {
|
||||
return function (eachfn, arr, iteratee, cb) {
|
||||
cb = cb || _noop2.default;
|
||||
var testPassed = false;
|
||||
var testResult;
|
||||
eachfn(arr, function (value, _, callback) {
|
||||
iteratee(value, function (err, result) {
|
||||
if (err) {
|
||||
callback(err);
|
||||
} else if (check(result) && !testResult) {
|
||||
testPassed = true;
|
||||
testResult = getResult(true, value);
|
||||
callback(null, _breakLoop2.default);
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
} else {
|
||||
cb(null, testPassed ? testResult : getResult(false));
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
12
node_modules/async/internal/doLimit.js
generated
vendored
Normal file
12
node_modules/async/internal/doLimit.js
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = doLimit;
|
||||
function doLimit(fn, limit) {
|
||||
return function (iterable, iteratee, callback) {
|
||||
return fn(iterable, limit, iteratee, callback);
|
||||
};
|
||||
}
|
||||
module.exports = exports["default"];
|
23
node_modules/async/internal/doParallel.js
generated
vendored
Normal file
23
node_modules/async/internal/doParallel.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = doParallel;
|
||||
|
||||
var _eachOf = require('../eachOf');
|
||||
|
||||
var _eachOf2 = _interopRequireDefault(_eachOf);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function doParallel(fn) {
|
||||
return function (obj, iteratee, callback) {
|
||||
return fn(_eachOf2.default, obj, (0, _wrapAsync2.default)(iteratee), callback);
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
23
node_modules/async/internal/doParallelLimit.js
generated
vendored
Normal file
23
node_modules/async/internal/doParallelLimit.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = doParallelLimit;
|
||||
|
||||
var _eachOfLimit = require('./eachOfLimit');
|
||||
|
||||
var _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function doParallelLimit(fn) {
|
||||
return function (obj, limit, iteratee, callback) {
|
||||
return fn((0, _eachOfLimit2.default)(limit), obj, (0, _wrapAsync2.default)(iteratee), callback);
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
74
node_modules/async/internal/eachOfLimit.js
generated
vendored
Normal file
74
node_modules/async/internal/eachOfLimit.js
generated
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _eachOfLimit;
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _once = require('./once');
|
||||
|
||||
var _once2 = _interopRequireDefault(_once);
|
||||
|
||||
var _iterator = require('./iterator');
|
||||
|
||||
var _iterator2 = _interopRequireDefault(_iterator);
|
||||
|
||||
var _onlyOnce = require('./onlyOnce');
|
||||
|
||||
var _onlyOnce2 = _interopRequireDefault(_onlyOnce);
|
||||
|
||||
var _breakLoop = require('./breakLoop');
|
||||
|
||||
var _breakLoop2 = _interopRequireDefault(_breakLoop);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _eachOfLimit(limit) {
|
||||
return function (obj, iteratee, callback) {
|
||||
callback = (0, _once2.default)(callback || _noop2.default);
|
||||
if (limit <= 0 || !obj) {
|
||||
return callback(null);
|
||||
}
|
||||
var nextElem = (0, _iterator2.default)(obj);
|
||||
var done = false;
|
||||
var running = 0;
|
||||
var looping = false;
|
||||
|
||||
function iterateeCallback(err, value) {
|
||||
running -= 1;
|
||||
if (err) {
|
||||
done = true;
|
||||
callback(err);
|
||||
} else if (value === _breakLoop2.default || done && running <= 0) {
|
||||
done = true;
|
||||
return callback(null);
|
||||
} else if (!looping) {
|
||||
replenish();
|
||||
}
|
||||
}
|
||||
|
||||
function replenish() {
|
||||
looping = true;
|
||||
while (running < limit && !done) {
|
||||
var elem = nextElem();
|
||||
if (elem === null) {
|
||||
done = true;
|
||||
if (running <= 0) {
|
||||
callback(null);
|
||||
}
|
||||
return;
|
||||
}
|
||||
running += 1;
|
||||
iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));
|
||||
}
|
||||
looping = false;
|
||||
}
|
||||
|
||||
replenish();
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
75
node_modules/async/internal/filter.js
generated
vendored
Normal file
75
node_modules/async/internal/filter.js
generated
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _filter;
|
||||
|
||||
var _arrayMap = require('lodash/_arrayMap');
|
||||
|
||||
var _arrayMap2 = _interopRequireDefault(_arrayMap);
|
||||
|
||||
var _isArrayLike = require('lodash/isArrayLike');
|
||||
|
||||
var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
|
||||
|
||||
var _baseProperty = require('lodash/_baseProperty');
|
||||
|
||||
var _baseProperty2 = _interopRequireDefault(_baseProperty);
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function filterArray(eachfn, arr, iteratee, callback) {
|
||||
var truthValues = new Array(arr.length);
|
||||
eachfn(arr, function (x, index, callback) {
|
||||
iteratee(x, function (err, v) {
|
||||
truthValues[index] = !!v;
|
||||
callback(err);
|
||||
});
|
||||
}, function (err) {
|
||||
if (err) return callback(err);
|
||||
var results = [];
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (truthValues[i]) results.push(arr[i]);
|
||||
}
|
||||
callback(null, results);
|
||||
});
|
||||
}
|
||||
|
||||
function filterGeneric(eachfn, coll, iteratee, callback) {
|
||||
var results = [];
|
||||
eachfn(coll, function (x, index, callback) {
|
||||
iteratee(x, function (err, v) {
|
||||
if (err) {
|
||||
callback(err);
|
||||
} else {
|
||||
if (v) {
|
||||
results.push({ index: index, value: x });
|
||||
}
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
callback(err);
|
||||
} else {
|
||||
callback(null, (0, _arrayMap2.default)(results.sort(function (a, b) {
|
||||
return a.index - b.index;
|
||||
}), (0, _baseProperty2.default)('value')));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function _filter(eachfn, coll, iteratee, callback) {
|
||||
var filter = (0, _isArrayLike2.default)(coll) ? filterArray : filterGeneric;
|
||||
filter(eachfn, coll, (0, _wrapAsync2.default)(iteratee), callback || _noop2.default);
|
||||
}
|
||||
module.exports = exports['default'];
|
10
node_modules/async/internal/findGetResult.js
generated
vendored
Normal file
10
node_modules/async/internal/findGetResult.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _findGetResult;
|
||||
function _findGetResult(v, x) {
|
||||
return x;
|
||||
}
|
||||
module.exports = exports["default"];
|
13
node_modules/async/internal/getIterator.js
generated
vendored
Normal file
13
node_modules/async/internal/getIterator.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
exports.default = function (coll) {
|
||||
return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();
|
||||
};
|
||||
|
||||
var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;
|
||||
|
||||
module.exports = exports['default'];
|
21
node_modules/async/internal/initialParams.js
generated
vendored
Normal file
21
node_modules/async/internal/initialParams.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
exports.default = function (fn) {
|
||||
return function () /*...args, callback*/{
|
||||
var args = (0, _slice2.default)(arguments);
|
||||
var callback = args.pop();
|
||||
fn.call(this, args, callback);
|
||||
};
|
||||
};
|
||||
|
||||
var _slice = require('./slice');
|
||||
|
||||
var _slice2 = _interopRequireDefault(_slice);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
module.exports = exports['default'];
|
58
node_modules/async/internal/iterator.js
generated
vendored
Normal file
58
node_modules/async/internal/iterator.js
generated
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = iterator;
|
||||
|
||||
var _isArrayLike = require('lodash/isArrayLike');
|
||||
|
||||
var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
|
||||
|
||||
var _getIterator = require('./getIterator');
|
||||
|
||||
var _getIterator2 = _interopRequireDefault(_getIterator);
|
||||
|
||||
var _keys = require('lodash/keys');
|
||||
|
||||
var _keys2 = _interopRequireDefault(_keys);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function createArrayIterator(coll) {
|
||||
var i = -1;
|
||||
var len = coll.length;
|
||||
return function next() {
|
||||
return ++i < len ? { value: coll[i], key: i } : null;
|
||||
};
|
||||
}
|
||||
|
||||
function createES2015Iterator(iterator) {
|
||||
var i = -1;
|
||||
return function next() {
|
||||
var item = iterator.next();
|
||||
if (item.done) return null;
|
||||
i++;
|
||||
return { value: item.value, key: i };
|
||||
};
|
||||
}
|
||||
|
||||
function createObjectIterator(obj) {
|
||||
var okeys = (0, _keys2.default)(obj);
|
||||
var i = -1;
|
||||
var len = okeys.length;
|
||||
return function next() {
|
||||
var key = okeys[++i];
|
||||
return i < len ? { value: obj[key], key: key } : null;
|
||||
};
|
||||
}
|
||||
|
||||
function iterator(coll) {
|
||||
if ((0, _isArrayLike2.default)(coll)) {
|
||||
return createArrayIterator(coll);
|
||||
}
|
||||
|
||||
var iterator = (0, _getIterator2.default)(coll);
|
||||
return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);
|
||||
}
|
||||
module.exports = exports['default'];
|
35
node_modules/async/internal/map.js
generated
vendored
Normal file
35
node_modules/async/internal/map.js
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _asyncMap;
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _asyncMap(eachfn, arr, iteratee, callback) {
|
||||
callback = callback || _noop2.default;
|
||||
arr = arr || [];
|
||||
var results = [];
|
||||
var counter = 0;
|
||||
var _iteratee = (0, _wrapAsync2.default)(iteratee);
|
||||
|
||||
eachfn(arr, function (value, _, callback) {
|
||||
var index = counter++;
|
||||
_iteratee(value, function (err, v) {
|
||||
results[index] = v;
|
||||
callback(err);
|
||||
});
|
||||
}, function (err) {
|
||||
callback(err, results);
|
||||
});
|
||||
}
|
||||
module.exports = exports['default'];
|
10
node_modules/async/internal/notId.js
generated
vendored
Normal file
10
node_modules/async/internal/notId.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = notId;
|
||||
function notId(v) {
|
||||
return !v;
|
||||
}
|
||||
module.exports = exports["default"];
|
15
node_modules/async/internal/once.js
generated
vendored
Normal file
15
node_modules/async/internal/once.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = once;
|
||||
function once(fn) {
|
||||
return function () {
|
||||
if (fn === null) return;
|
||||
var callFn = fn;
|
||||
fn = null;
|
||||
callFn.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
module.exports = exports["default"];
|
15
node_modules/async/internal/onlyOnce.js
generated
vendored
Normal file
15
node_modules/async/internal/onlyOnce.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = onlyOnce;
|
||||
function onlyOnce(fn) {
|
||||
return function () {
|
||||
if (fn === null) throw new Error("Callback was already called.");
|
||||
var callFn = fn;
|
||||
fn = null;
|
||||
callFn.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
module.exports = exports["default"];
|
42
node_modules/async/internal/parallel.js
generated
vendored
Normal file
42
node_modules/async/internal/parallel.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _parallel;
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _isArrayLike = require('lodash/isArrayLike');
|
||||
|
||||
var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
|
||||
|
||||
var _slice = require('./slice');
|
||||
|
||||
var _slice2 = _interopRequireDefault(_slice);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _parallel(eachfn, tasks, callback) {
|
||||
callback = callback || _noop2.default;
|
||||
var results = (0, _isArrayLike2.default)(tasks) ? [] : {};
|
||||
|
||||
eachfn(tasks, function (task, key, callback) {
|
||||
(0, _wrapAsync2.default)(task)(function (err, result) {
|
||||
if (arguments.length > 2) {
|
||||
result = (0, _slice2.default)(arguments, 1);
|
||||
}
|
||||
results[key] = result;
|
||||
callback(err);
|
||||
});
|
||||
}, function (err) {
|
||||
callback(err, results);
|
||||
});
|
||||
}
|
||||
module.exports = exports['default'];
|
204
node_modules/async/internal/queue.js
generated
vendored
Normal file
204
node_modules/async/internal/queue.js
generated
vendored
Normal file
@ -0,0 +1,204 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = queue;
|
||||
|
||||
var _baseIndexOf = require('lodash/_baseIndexOf');
|
||||
|
||||
var _baseIndexOf2 = _interopRequireDefault(_baseIndexOf);
|
||||
|
||||
var _isArray = require('lodash/isArray');
|
||||
|
||||
var _isArray2 = _interopRequireDefault(_isArray);
|
||||
|
||||
var _noop = require('lodash/noop');
|
||||
|
||||
var _noop2 = _interopRequireDefault(_noop);
|
||||
|
||||
var _onlyOnce = require('./onlyOnce');
|
||||
|
||||
var _onlyOnce2 = _interopRequireDefault(_onlyOnce);
|
||||
|
||||
var _setImmediate = require('./setImmediate');
|
||||
|
||||
var _setImmediate2 = _interopRequireDefault(_setImmediate);
|
||||
|
||||
var _DoublyLinkedList = require('./DoublyLinkedList');
|
||||
|
||||
var _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList);
|
||||
|
||||
var _wrapAsync = require('./wrapAsync');
|
||||
|
||||
var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function queue(worker, concurrency, payload) {
|
||||
if (concurrency == null) {
|
||||
concurrency = 1;
|
||||
} else if (concurrency === 0) {
|
||||
throw new Error('Concurrency must not be zero');
|
||||
}
|
||||
|
||||
var _worker = (0, _wrapAsync2.default)(worker);
|
||||
var numRunning = 0;
|
||||
var workersList = [];
|
||||
|
||||
var processingScheduled = false;
|
||||
function _insert(data, insertAtFront, callback) {
|
||||
if (callback != null && typeof callback !== 'function') {
|
||||
throw new Error('task callback must be a function');
|
||||
}
|
||||
q.started = true;
|
||||
if (!(0, _isArray2.default)(data)) {
|
||||
data = [data];
|
||||
}
|
||||
if (data.length === 0 && q.idle()) {
|
||||
// call drain immediately if there are no tasks
|
||||
return (0, _setImmediate2.default)(function () {
|
||||
q.drain();
|
||||
});
|
||||
}
|
||||
|
||||
for (var i = 0, l = data.length; i < l; i++) {
|
||||
var item = {
|
||||
data: data[i],
|
||||
callback: callback || _noop2.default
|
||||
};
|
||||
|
||||
if (insertAtFront) {
|
||||
q._tasks.unshift(item);
|
||||
} else {
|
||||
q._tasks.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!processingScheduled) {
|
||||
processingScheduled = true;
|
||||
(0, _setImmediate2.default)(function () {
|
||||
processingScheduled = false;
|
||||
q.process();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function _next(tasks) {
|
||||
return function (err) {
|
||||
numRunning -= 1;
|
||||
|
||||
for (var i = 0, l = tasks.length; i < l; i++) {
|
||||
var task = tasks[i];
|
||||
|
||||
var index = (0, _baseIndexOf2.default)(workersList, task, 0);
|
||||
if (index === 0) {
|
||||
workersList.shift();
|
||||
} else if (index > 0) {
|
||||
workersList.splice(index, 1);
|
||||
}
|
||||
|
||||
task.callback.apply(task, arguments);
|
||||
|
||||
if (err != null) {
|
||||
q.error(err, task.data);
|
||||
}
|
||||
}
|
||||
|
||||
if (numRunning <= q.concurrency - q.buffer) {
|
||||
q.unsaturated();
|
||||
}
|
||||
|
||||
if (q.idle()) {
|
||||
q.drain();
|
||||
}
|
||||
q.process();
|
||||
};
|
||||
}
|
||||
|
||||
var isProcessing = false;
|
||||
var q = {
|
||||
_tasks: new _DoublyLinkedList2.default(),
|
||||
concurrency: concurrency,
|
||||
payload: payload,
|
||||
saturated: _noop2.default,
|
||||
unsaturated: _noop2.default,
|
||||
buffer: concurrency / 4,
|
||||
empty: _noop2.default,
|
||||
drain: _noop2.default,
|
||||
error: _noop2.default,
|
||||
started: false,
|
||||
paused: false,
|
||||
push: function (data, callback) {
|
||||
_insert(data, false, callback);
|
||||
},
|
||||
kill: function () {
|
||||
q.drain = _noop2.default;
|
||||
q._tasks.empty();
|
||||
},
|
||||
unshift: function (data, callback) {
|
||||
_insert(data, true, callback);
|
||||
},
|
||||
remove: function (testFn) {
|
||||
q._tasks.remove(testFn);
|
||||
},
|
||||
process: function () {
|
||||
// Avoid trying to start too many processing operations. This can occur
|
||||
// when callbacks resolve synchronously (#1267).
|
||||
if (isProcessing) {
|
||||
return;
|
||||
}
|
||||
isProcessing = true;
|
||||
while (!q.paused && numRunning < q.concurrency && q._tasks.length) {
|
||||
var tasks = [],
|
||||
data = [];
|
||||
var l = q._tasks.length;
|
||||
if (q.payload) l = Math.min(l, q.payload);
|
||||
for (var i = 0; i < l; i++) {
|
||||
var node = q._tasks.shift();
|
||||
tasks.push(node);
|
||||
workersList.push(node);
|
||||
data.push(node.data);
|
||||
}
|
||||
|
||||
numRunning += 1;
|
||||
|
||||
if (q._tasks.length === 0) {
|
||||
q.empty();
|
||||
}
|
||||
|
||||
if (numRunning === q.concurrency) {
|
||||
q.saturated();
|
||||
}
|
||||
|
||||
var cb = (0, _onlyOnce2.default)(_next(tasks));
|
||||
_worker(data, cb);
|
||||
}
|
||||
isProcessing = false;
|
||||
},
|
||||
length: function () {
|
||||
return q._tasks.length;
|
||||
},
|
||||
running: function () {
|
||||
return numRunning;
|
||||
},
|
||||
workersList: function () {
|
||||
return workersList;
|
||||
},
|
||||
idle: function () {
|
||||
return q._tasks.length + numRunning === 0;
|
||||
},
|
||||
pause: function () {
|
||||
q.paused = true;
|
||||
},
|
||||
resume: function () {
|
||||
if (q.paused === false) {
|
||||
return;
|
||||
}
|
||||
q.paused = false;
|
||||
(0, _setImmediate2.default)(q.process);
|
||||
}
|
||||
};
|
||||
return q;
|
||||
}
|
||||
module.exports = exports['default'];
|
21
node_modules/async/internal/reject.js
generated
vendored
Normal file
21
node_modules/async/internal/reject.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = reject;
|
||||
|
||||
var _filter = require('./filter');
|
||||
|
||||
var _filter2 = _interopRequireDefault(_filter);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function reject(eachfn, arr, iteratee, callback) {
|
||||
(0, _filter2.default)(eachfn, arr, function (value, cb) {
|
||||
iteratee(value, function (err, v) {
|
||||
cb(err, !v);
|
||||
});
|
||||
}, callback);
|
||||
}
|
||||
module.exports = exports['default'];
|
42
node_modules/async/internal/setImmediate.js
generated
vendored
Normal file
42
node_modules/async/internal/setImmediate.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.hasNextTick = exports.hasSetImmediate = undefined;
|
||||
exports.fallback = fallback;
|
||||
exports.wrap = wrap;
|
||||
|
||||
var _slice = require('./slice');
|
||||
|
||||
var _slice2 = _interopRequireDefault(_slice);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;
|
||||
var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';
|
||||
|
||||
function fallback(fn) {
|
||||
setTimeout(fn, 0);
|
||||
}
|
||||
|
||||
function wrap(defer) {
|
||||
return function (fn /*, ...args*/) {
|
||||
var args = (0, _slice2.default)(arguments, 1);
|
||||
defer(function () {
|
||||
fn.apply(null, args);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
var _defer;
|
||||
|
||||
if (hasSetImmediate) {
|
||||
_defer = setImmediate;
|
||||
} else if (hasNextTick) {
|
||||
_defer = process.nextTick;
|
||||
} else {
|
||||
_defer = fallback;
|
||||
}
|
||||
|
||||
exports.default = wrap(_defer);
|
16
node_modules/async/internal/slice.js
generated
vendored
Normal file
16
node_modules/async/internal/slice.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = slice;
|
||||
function slice(arrayLike, start) {
|
||||
start = start | 0;
|
||||
var newLen = Math.max(arrayLike.length - start, 0);
|
||||
var newArr = Array(newLen);
|
||||
for (var idx = 0; idx < newLen; idx++) {
|
||||
newArr[idx] = arrayLike[start + idx];
|
||||
}
|
||||
return newArr;
|
||||
}
|
||||
module.exports = exports["default"];
|
12
node_modules/async/internal/withoutIndex.js
generated
vendored
Normal file
12
node_modules/async/internal/withoutIndex.js
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = _withoutIndex;
|
||||
function _withoutIndex(iteratee) {
|
||||
return function (value, index, callback) {
|
||||
return iteratee(value, callback);
|
||||
};
|
||||
}
|
||||
module.exports = exports["default"];
|
25
node_modules/async/internal/wrapAsync.js
generated
vendored
Normal file
25
node_modules/async/internal/wrapAsync.js
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isAsync = undefined;
|
||||
|
||||
var _asyncify = require('../asyncify');
|
||||
|
||||
var _asyncify2 = _interopRequireDefault(_asyncify);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var supportsSymbol = typeof Symbol === 'function';
|
||||
|
||||
function isAsync(fn) {
|
||||
return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';
|
||||
}
|
||||
|
||||
function wrapAsync(asyncFn) {
|
||||
return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;
|
||||
}
|
||||
|
||||
exports.default = wrapAsync;
|
||||
exports.isAsync = isAsync;
|
Reference in New Issue
Block a user