UNPKG

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
"use strict"; 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; }; };