data-collectors
Version:
A collection of composable reduction operations for arbitrary streams of values
17 lines • 845 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const toArray_1 = require("./toArray");
const groupingBy_1 = require("./groupingBy");
const flatMapping_1 = require("../transformers/flatMapping");
const mapping_1 = require("../transformers/mapping");
function groupingByMany(mapper, supplier, collector) {
if (!supplier && !collector) {
return groupingByMany(mapper, () => new Map(), toArray_1.toArray());
}
else if (!collector) {
return groupingByMany(mapper, () => new Map(), supplier);
}
return flatMapping_1.flatMapping(item => Array.from(mapper(item)).map(k => [k, item]), new groupingBy_1.GroupingByCollector(pair => pair[0], supplier, mapping_1.mapping(pair => pair[1])));
}
exports.groupingByMany = groupingByMany;
//# sourceMappingURL=groupingByMany.js.map