UNPKG

fp-ts-std

Version:

The missing pseudo-standard library for fp-ts.

25 lines (24 loc) 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.omit = exports.pick = exports.invertAll = exports.invertLast = exports.reject = exports.lookupV = exports.values = void 0; const Predicate_1 = require("fp-ts/Predicate"); const RA = require("fp-ts/ReadonlyArray"); const RR = require("fp-ts/ReadonlyRecord"); const RT = require("fp-ts/ReadonlyTuple"); const Semigroup_1 = require("fp-ts/Semigroup"); const function_1 = require("fp-ts/function"); const Str = require("fp-ts/string"); const ReadonlyArray_1 = require("./ReadonlyArray"); exports.values = Object.values; const lookupV = (x) => (k) => RR.lookup(k)(x); exports.lookupV = lookupV; const reject = (f) => RR.filter((0, Predicate_1.not)(f)); exports.reject = reject; const invertLast = (f) => (0, function_1.flow)(RR.toReadonlyArray, RA.map((0, function_1.flow)(RT.mapSnd(f), RT.swap)), RR.fromFoldable((0, Semigroup_1.last)(), RA.Foldable)); exports.invertLast = invertLast; const invertAll = (f) => (0, function_1.flow)(RR.toReadonlyArray, RA.map((0, function_1.flow)(RT.bimap(f, RA.of), RT.swap)), RR.fromFoldable(RA.getMonoid(), RA.Foldable)); exports.invertAll = invertAll; const pick = (ks) => RR.filterWithIndex((0, ReadonlyArray_1.elemV)(Str.Eq)(ks)); exports.pick = pick; const omit = (ks) => RR.filterWithIndex((0, Predicate_1.not)((0, ReadonlyArray_1.elemV)(Str.Eq)(ks))); exports.omit = omit;