UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

177 lines 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonadRec = exports.Monad = exports.ChainRec = exports.chainRec = exports.Chain = exports.Applicative = exports.Apply = exports.Functor = exports.Pointed = exports.URI = exports.zero = exports.some = exports.matchE = exports.match = exports.map = exports.getOrElseE = exports.getOrElse = exports.fromPredicate = exports.fromOptionK = exports.fromNullableK = exports.fromNullable = exports.fromStream = exports.fromEither = exports.chainOptionK = exports.chainNullableK = exports.chain = exports.ap = exports.alt = void 0; const tslib_1 = require("tslib"); const Ei = (0, tslib_1.__importStar)(require("fp-ts/Either")); const function_1 = require("fp-ts/function"); const O = (0, tslib_1.__importStar)(require("fp-ts/Option")); const OT = (0, tslib_1.__importStar)(require("fp-ts/OptionT")); const S = (0, tslib_1.__importStar)(require("./Stream")); /** * @since 0.9.2 * @category Combinator */ exports.alt = OT.alt(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.ap = OT.ap(S.Apply); /** * @since 0.9.2 * @category Combinator */ exports.chain = OT.chain(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.chainNullableK = OT.chainNullableK(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.chainOptionK = OT.chainOptionK(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromEither = OT.fromEither(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromStream = OT.fromF(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromNullable = OT.fromNullable(S.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromNullableK = OT.fromNullableK(S.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromOptionK = OT.fromOptionK(S.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromPredicate = OT.fromPredicate(S.Pointed); /** * @since 0.9.2 * @category Combinator */ exports.getOrElse = OT.getOrElse(S.Functor); /** * @since 0.9.2 * @category Combinator */ exports.getOrElseE = OT.getOrElseE(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.map = OT.map(S.Functor); /** * @since 0.9.2 * @category Combinator */ exports.match = OT.match(S.Functor); /** * @since 0.9.2 * @category Combinator */ exports.matchE = OT.matchE(S.Chain); /** * @since 0.9.2 * @category Constructor */ exports.some = OT.some(S.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.zero = OT.zero(S.Pointed); /** * @since 0.9.2 * @category URI */ exports.URI = '@typed/fp/StreamOption'; /** * @since 0.9.2 * @category Instance */ exports.Pointed = { of: (0, function_1.flow)(O.some, S.of), }; /** * @since 0.9.2 * @category Instance */ exports.Functor = { map: exports.map, }; /** * @since 0.9.2 * @category Instance */ exports.Apply = { ...exports.Functor, ap: exports.ap, }; /** * @since 0.9.2 * @category Instance */ exports.Applicative = { ...exports.Apply, ...exports.Pointed, }; /** * @since 0.9.2 * @category Instance */ exports.Chain = { ...exports.Functor, chain: exports.chain, }; /** * @since 0.9.2 * @category Combinator */ const chainRec = (f) => (value) => (0, function_1.pipe)(value, S.chainRec((a) => (0, function_1.pipe)(a, f, S.map((oe) => { if (O.isNone(oe)) { return Ei.right(oe); } return (0, function_1.pipe)(oe.value, Ei.map(O.some)); })))); exports.chainRec = chainRec; /** * @since 0.9.2 * @category Instance */ exports.ChainRec = { chainRec: exports.chainRec, }; /** * @since 0.9.2 * @category Instance */ exports.Monad = { ...exports.Chain, ...exports.Pointed, }; /** * @since 0.9.2 * @category Instance */ exports.MonadRec = { ...exports.Monad, chainRec: exports.chainRec, }; //# sourceMappingURL=StreamOption.js.map