mirror of
https://github.com/azure/login.git
synced 2026-03-15 09:20:56 -04:00
* Bump lodash from 4.17.15 to 4.17.19 (#52) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * Bump @actions/core from 1.1.3 to 1.2.6 (#60) Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.1.3 to 1.2.6. - [Release notes](https://github.com/actions/toolkit/releases) - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * updating node_nodules * updated package-lock Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
var iterate = require('./lib/iterate.js')
|
|
, initState = require('./lib/state.js')
|
|
, terminator = require('./lib/terminator.js')
|
|
;
|
|
|
|
// Public API
|
|
module.exports = serialOrdered;
|
|
// sorting helpers
|
|
module.exports.ascending = ascending;
|
|
module.exports.descending = descending;
|
|
|
|
/**
|
|
* Runs iterator over provided sorted array elements in series
|
|
*
|
|
* @param {array|object} list - array or object (named list) to iterate over
|
|
* @param {function} iterator - iterator to run
|
|
* @param {function} sortMethod - custom sort function
|
|
* @param {function} callback - invoked when all elements processed
|
|
* @returns {function} - jobs terminator
|
|
*/
|
|
function serialOrdered(list, iterator, sortMethod, callback)
|
|
{
|
|
var state = initState(list, sortMethod);
|
|
|
|
iterate(list, iterator, state, function iteratorHandler(error, result)
|
|
{
|
|
if (error)
|
|
{
|
|
callback(error, result);
|
|
return;
|
|
}
|
|
|
|
state.index++;
|
|
|
|
// are we there yet?
|
|
if (state.index < (state['keyedList'] || list).length)
|
|
{
|
|
iterate(list, iterator, state, iteratorHandler);
|
|
return;
|
|
}
|
|
|
|
// done here
|
|
callback(null, state.results);
|
|
});
|
|
|
|
return terminator.bind(state, callback);
|
|
}
|
|
|
|
/*
|
|
* -- Sort methods
|
|
*/
|
|
|
|
/**
|
|
* sort helper to sort array elements in ascending order
|
|
*
|
|
* @param {mixed} a - an item to compare
|
|
* @param {mixed} b - an item to compare
|
|
* @returns {number} - comparison result
|
|
*/
|
|
function ascending(a, b)
|
|
{
|
|
return a < b ? -1 : a > b ? 1 : 0;
|
|
}
|
|
|
|
/**
|
|
* sort helper to sort array elements in descending order
|
|
*
|
|
* @param {mixed} a - an item to compare
|
|
* @param {mixed} b - an item to compare
|
|
* @returns {number} - comparison result
|
|
*/
|
|
function descending(a, b)
|
|
{
|
|
return -1 * ascending(a, b);
|
|
}
|