UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

26 lines (25 loc) 1.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isArray_1 = __importDefault(require("../isArray")); const getIteratee_1 = __importDefault(require("./getIteratee")); const baseAggregator_1 = __importDefault(require("./baseAggregator")); const arrayAggregator_1 = __importDefault(require("./arrayAggregator")); /** * Creates a function like `groupBy`. * * @ignore * @private * @param {Function} setter The function to set accumulator values. * @param {Function} [initializer] The accumulator object initializer. * @returns {Function} Returns the new aggregator function. */ function createAggregator(setter, initializer) { return function (collection, iteratee) { var func = (0, isArray_1.default)(collection) ? arrayAggregator_1.default : baseAggregator_1.default, accumulator = initializer ? initializer() : {}; return func(collection, setter, (0, getIteratee_1.default)(iteratee, 2), accumulator); }; } exports.default = createAggregator;