diff options
Diffstat (limited to 'tools/eslint/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/internal/baseSortByOrder.js')
-rw-r--r-- | tools/eslint/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/internal/baseSortByOrder.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/internal/baseSortByOrder.js b/tools/eslint/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/internal/baseSortByOrder.js new file mode 100644 index 0000000000..0a9ef20796 --- /dev/null +++ b/tools/eslint/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/internal/baseSortByOrder.js @@ -0,0 +1,31 @@ +var arrayMap = require('./arrayMap'), + baseCallback = require('./baseCallback'), + baseMap = require('./baseMap'), + baseSortBy = require('./baseSortBy'), + compareMultiple = require('./compareMultiple'); + +/** + * The base implementation of `_.sortByOrder` without param guards. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {boolean[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ +function baseSortByOrder(collection, iteratees, orders) { + var index = -1; + + iteratees = arrayMap(iteratees, function(iteratee) { return baseCallback(iteratee); }); + + var result = baseMap(collection, function(value) { + var criteria = arrayMap(iteratees, function(iteratee) { return iteratee(value); }); + return { 'criteria': criteria, 'index': ++index, 'value': value }; + }); + + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); +} + +module.exports = baseSortByOrder; |