declarative-js
Version:
_declarative-js_ is modern JavaScript library, that helps to: - tackle array transformation with built in JavaScript array api (e.g. `array.filter(toBe.unique())`), - provide a type-level solution for representing optional values instead of null referen
22 lines (21 loc) • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var reducer_utils_1 = require("./reducer.utils");
exports.toObjectValueObject = function (getKey) { return function (agr, value, index, array) {
var key = reducer_utils_1.valid(getKey(value));
if (Object.prototype.hasOwnProperty.call(agr, key)) {
throw new Error("Key: \"" + key + "\" has duplicates");
}
agr[key] = value;
return reducer_utils_1.isLastElement(array, index) ? reducer_utils_1.finalizeObject(agr) : agr;
}; };
exports.toObjectAndValue = function (getKey, getValue, onDuplicate) { return function (agr, value, index, array) {
var key = reducer_utils_1.valid(getKey(value));
if (Object.prototype.hasOwnProperty.call(agr, key)) {
agr[key] = onDuplicate(agr[key], getValue(value), key);
}
else {
agr[key] = getValue(value);
}
return reducer_utils_1.isLastElement(array, index) ? reducer_utils_1.finalizeObject(agr) : agr;
}; };