PATH:
usr
/
local
/
lib
/
node_modules
/
pm2
/
node_modules
/
vizion
/
node_modules
/
async
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (worker, concurrency) { // Start with a normal queue var q = (0, _queue2.default)(worker, concurrency); // Override push to accept second parameter representing priority q.push = function (data, priority, callback) { if (callback == null) callback = _noop2.default; if (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) { // call drain immediately if there are no tasks return (0, _setImmediate2.default)(function () { q.drain(); }); } priority = priority || 0; var nextNode = q._tasks.head; while (nextNode && priority >= nextNode.priority) { nextNode = nextNode.next; } for (var i = 0, l = data.length; i < l; i++) { var item = { data: data[i], priority: priority, callback: callback }; if (nextNode) { q._tasks.insertBefore(nextNode, item); } else { q._tasks.push(item); } } (0, _setImmediate2.default)(q.process); }; // Remove unshift function delete q.unshift; return q; }; var _isArray = require('lodash/isArray'); var _isArray2 = _interopRequireDefault(_isArray); var _noop = require('lodash/noop'); var _noop2 = _interopRequireDefault(_noop); var _setImmediate = require('./setImmediate'); var _setImmediate2 = _interopRequireDefault(_setImmediate); var _queue = require('./queue'); var _queue2 = _interopRequireDefault(_queue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = exports['default']; /** * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and * completed in ascending priority order. * * @name priorityQueue * @static * @memberOf module:ControlFlow * @method * @see [async.queue]{@link module:ControlFlow.queue} * @category Control Flow * @param {AsyncFunction} worker - An async function for processing a queued task. * If you want to handle errors from an individual task, pass a callback to * `q.push()`. * Invoked with (task, callback). * @param {number} concurrency - An `integer` for determining how many `worker` * functions should be run in parallel. If omitted, the concurrency defaults to * `1`. If the concurrency is `0`, an error is thrown. * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two * differences between `queue` and `priorityQueue` objects: * * `push(task, priority, [callback])` - `priority` should be a number. If an * array of `tasks` is given, all tasks will be assigned the same priority. * * The `unshift` method was removed. */
[-] concatLimit.js
[edit]
[-] concatSeries.js
[edit]
[-] everySeries.js
[edit]
[-] whilst.js
[edit]
[-] groupBySeries.js
[edit]
[-] asyncify.js
[edit]
[-] auto.js
[edit]
[-] find.js
[edit]
[-] concat.js
[edit]
[-] mapLimit.js
[edit]
[-] allSeries.js
[edit]
[-] tryEach.js
[edit]
[-] detectLimit.js
[edit]
[-] select.js
[edit]
[-] wrapSync.js
[edit]
[-] reflect.js
[edit]
[-] series.js
[edit]
[-] transform.js
[edit]
[-] autoInject.js
[edit]
[-] forEachLimit.js
[edit]
[-] detectSeries.js
[edit]
[-] unmemoize.js
[edit]
[-] reduce.js
[edit]
[-] memoize.js
[edit]
[+]
..
[-] doWhilst.js
[edit]
[-] everyLimit.js
[edit]
[-] priorityQueue.js
[edit]
[-] selectLimit.js
[edit]
[-] timesLimit.js
[edit]
[-] mapValuesSeries.js
[edit]
[-] queue.js
[edit]
[-] forEach.js
[edit]
[-] reflectAll.js
[edit]
[-] cargo.js
[edit]
[-] parallelLimit.js
[edit]
[-] some.js
[edit]
[-] inject.js
[edit]
[-] mapValues.js
[edit]
[-] all.js
[edit]
[-] anySeries.js
[edit]
[-] seq.js
[edit]
[-] package.json
[edit]
[-] findLimit.js
[edit]
[-] forever.js
[edit]
[-] detect.js
[edit]
[-] rejectLimit.js
[edit]
[-] retry.js
[edit]
[-] timeout.js
[edit]
[-] forEachOfSeries.js
[edit]
[-] eachOfLimit.js
[edit]
[-] nextTick.js
[edit]
[-] parallel.js
[edit]
[-] foldl.js
[edit]
[-] waterfall.js
[edit]
[-] rejectSeries.js
[edit]
[-] dir.js
[edit]
[-] reduceRight.js
[edit]
[-] times.js
[edit]
[-] someSeries.js
[edit]
[-] setImmediate.js
[edit]
[-] anyLimit.js
[edit]
[-] filterLimit.js
[edit]
[-] findSeries.js
[edit]
[-] applyEach.js
[edit]
[-] groupBy.js
[edit]
[-] eachOf.js
[edit]
[-] retryable.js
[edit]
[-] during.js
[edit]
[-] apply.js
[edit]
[-] forEachOf.js
[edit]
[-] index.js
[edit]
[-] someLimit.js
[edit]
[-] foldr.js
[edit]
[-] eachSeries.js
[edit]
[-] groupByLimit.js
[edit]
[-] race.js
[edit]
[-] reject.js
[edit]
[-] timesSeries.js
[edit]
[-] sortBy.js
[edit]
[-] doUntil.js
[edit]
[-] constant.js
[edit]
[-] ensureAsync.js
[edit]
[-] any.js
[edit]
[+]
internal
[-] map.js
[edit]
[-] filter.js
[edit]
[-] mapValuesLimit.js
[edit]
[-] every.js
[edit]
[-] compose.js
[edit]
[-] selectSeries.js
[edit]
[-] forEachOfLimit.js
[edit]
[-] filterSeries.js
[edit]
[-] each.js
[edit]
[-] eachLimit.js
[edit]
[-] README.md
[edit]
[-] eachOfSeries.js
[edit]
[-] applyEachSeries.js
[edit]
[-] bower.json
[edit]
[-] mapSeries.js
[edit]
[-] until.js
[edit]
[+]
dist
[-] forEachSeries.js
[edit]
[-] log.js
[edit]
[-] doDuring.js
[edit]
[-] LICENSE
[edit]
[-] CHANGELOG.md
[edit]
[-] allLimit.js
[edit]