UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

27 lines (26 loc) 780 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.adjust = void 0; const main_1 = require("./main"); function adjust(idx, fn, coll) { if (arguments.length === 1) { return function (fn_, coll_) { return arguments.length === 1 ? adjust(idx, fn_) : adjust(idx, fn_, coll_); }; } else if (arguments.length === 2) { return (_coll) => adjust(idx, fn, _coll); } else { const input = (0, main_1.getValueOr)([], coll); const output = Array.from(input); const i = (0, main_1.getValueOr)(-1, idx); if (0 <= i && i < input.length) { output[i] = fn(input[i]); } return output; } } exports.adjust = adjust;