UNPKG

@arthurgubaidullin/nx-embed-dependencies

Version:

This plugin for [Nx](https://nx.dev) helps injecting local dependencies into a package.

61 lines (60 loc) 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFilterableComposition = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = void 0; /** * `Filterable` represents data structures which can be _partitioned_/_filtered_. * * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs * * @since 2.0.0 */ var Compactable_1 = require("./Compactable"); var function_1 = require("./function"); var Functor_1 = require("./Functor"); var Option_1 = require("./Option"); var Predicate_1 = require("./Predicate"); var Separated_1 = require("./Separated"); function filter(F, G) { return function (predicate) { return function (fga) { return F.map(fga, function (ga) { return G.filter(ga, predicate); }); }; }; } exports.filter = filter; function filterMap(F, G) { return function (f) { return function (fga) { return F.map(fga, function (ga) { return G.filterMap(ga, f); }); }; }; } exports.filterMap = filterMap; function partition(F, G) { var _filter = filter(F, G); return function (predicate) { var left = _filter((0, Predicate_1.not)(predicate)); var right = _filter(predicate); return function (fgb) { return (0, Separated_1.separated)(left(fgb), right(fgb)); }; }; } exports.partition = partition; function partitionMap(F, G) { var _filterMap = filterMap(F, G); return function (f) { return function (fga) { return (0, Separated_1.separated)((0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getLeft)(f(a)); })), (0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getRight)(f(a)); }))); }; }; } exports.partitionMap = partitionMap; /** @deprecated */ function getFilterableComposition(F, G) { var map = (0, Functor_1.getFunctorComposition)(F, G).map; var _compact = (0, Compactable_1.compact)(F, G); var _separate = (0, Compactable_1.separate)(F, G, G); var _filter = filter(F, G); var _filterMap = filterMap(F, G); var _partition = partition(F, G); var _partitionMap = partitionMap(F, G); return { map: map, compact: _compact, separate: _separate, filter: function (fga, f) { return (0, function_1.pipe)(fga, _filter(f)); }, filterMap: function (fga, f) { return (0, function_1.pipe)(fga, _filterMap(f)); }, partition: function (fga, p) { return (0, function_1.pipe)(fga, _partition(p)); }, partitionMap: function (fga, f) { return (0, function_1.pipe)(fga, _partitionMap(f)); } }; } exports.getFilterableComposition = getFilterableComposition;