UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

36 lines (35 loc) 1.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const baseSortBy_1 = __importDefault(require("./baseSortBy")); const baseUnary_1 = __importDefault(require("./baseUnary")); const compareMultiple_1 = __importDefault(require("./compareMultiple")); const arrayMap_1 = __importDefault(require("./arrayMap")); const getIteratee_1 = __importDefault(require("./getIteratee")); const baseMap_1 = __importDefault(require("./baseMap")); const identity_1 = __importDefault(require("./identity")); /** * The base implementation of `orderBy` without param guards. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. * @param {string[]} orders The sort orders of `iteratees`. * @returns {Array} Returns the new sorted array. */ function baseOrderBy(collection, iteratees, orders) { var index = -1; iteratees = (0, arrayMap_1.default)(iteratees.length ? iteratees : [identity_1.default], (0, baseUnary_1.default)((0, getIteratee_1.default)())); var result = (0, baseMap_1.default)(collection, function (value, key, collection) { var criteria = (0, arrayMap_1.default)(iteratees, function (iteratee) { return iteratee(value); }); return { 'criteria': criteria, 'index': ++index, 'value': value }; }); return (0, baseSortBy_1.default)(result, function (object, other) { return (0, compareMultiple_1.default)(object, other, orders); }); } exports.default = baseOrderBy;