@newdash/newdash
Version:
javascript/typescript utility library
26 lines (25 loc) • 1.15 kB
JavaScript
;
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;