UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

71 lines 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Profunctor = exports.Functor = exports.filter = exports.promap = exports.map = exports.local = exports.create = exports.adapt = exports.URI = void 0; const tslib_1 = require("tslib"); /** * Adapter is based on [@most/adapter](https://github.com/mostjs/adapter), and adds * some fp-ts instances. * @since 0.9.2 */ const MA = (0, tslib_1.__importStar)(require("@most/adapter")); const M = (0, tslib_1.__importStar)(require("@most/core")); const function_1 = require("fp-ts/function"); /** * @since 0.9.2 * @category URI */ exports.URI = '@most/adapter'; /** * Apply a stream transformation to an Adapter * @since 0.9.2 * @category Combinator */ const adapt = (f) => ([send, stream]) => [send, M.multicast(f(stream))]; exports.adapt = adapt; function create(f) { const [send, stream] = MA.createAdapter(); return [send, f ? f(stream) : stream]; } exports.create = create; /** * @since 0.9.2 * @category Combinator */ function local(f) { return ([send, stream]) => [(0, function_1.flow)(f, send), stream]; } exports.local = local; /** * @since 0.9.2 * @category Combinator */ function map(f) { return (0, exports.adapt)(M.map(f)); } exports.map = map; /** * @since 0.9.2 * @category Combinator */ const promap = (f, g) => (adapter) => (0, function_1.pipe)(adapter, local(f), map(g)); exports.promap = promap; function filter(f) { return (0, exports.adapt)(M.filter(f)); } exports.filter = filter; /** * @since 0.9.2 * @category Instance */ exports.Functor = { map, }; /** * @since 0.9.2 * @category Instance */ exports.Profunctor = { ...exports.Functor, promap: exports.promap, }; //# sourceMappingURL=Adapter.js.map