UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

206 lines 4.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonadRec = exports.ChainRec = exports.chainRec = exports.Monad = exports.Chain = exports.Applicative = exports.Apply = exports.Bifunctor = exports.Functor = exports.Pointed = exports.of = exports.URI = exports.toUnion = exports.swap = exports.fromStream = exports.right = exports.orLeft = exports.orElseFirst = exports.orElse = exports.matchE = exports.match = exports.mapLeft = exports.map = exports.fromStreamL = exports.left = exports.getOrElseE = exports.getOrElse = exports.chain = exports.bracket = exports.bimap = exports.ap = exports.altValidation = exports.alt = void 0; const tslib_1 = require("tslib"); /** * StreamEither is a EitherT of Stream * @since 0.9.2 */ const core_1 = require("@most/core"); const E = (0, tslib_1.__importStar)(require("fp-ts/Either")); const ET = (0, tslib_1.__importStar)(require("fp-ts/EitherT")); const function_1 = require("./function"); const internal_1 = require("./internal"); const S = (0, tslib_1.__importStar)(require("./Stream")); /** * @since 0.9.2 * @category Combinator */ exports.alt = ET.alt(S.Monad); /** * @since 0.9.2 * @category Typecalss Constructor */ const altValidation = (semigroup) => ET.altValidation(S.Monad, semigroup); exports.altValidation = altValidation; /** * @since 0.9.2 * @category Combinator */ exports.ap = ET.ap(S.Apply); /** * @since 0.9.2 * @category Combinator */ exports.bimap = ET.bimap(S.Functor); /** * @since 0.9.2 * @category Combinator */ exports.bracket = ET.bracket(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.chain = ET.chain(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.getOrElse = ET.getOrElse(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.getOrElseE = ET.getOrElseE(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.left = ET.left(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromStreamL = ET.leftF(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.map = ET.map(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.mapLeft = ET.mapLeft(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.match = ET.match(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.matchE = ET.matchE(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.orElse = ET.orElse(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.orElseFirst = ET.orElseFirst(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.orLeft = ET.orLeft(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.right = ET.right(S.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromStream = ET.rightF(S.Monad); /** * @since 0.9.2 * @category Combinator */ exports.swap = ET.swap(S.Functor); /** * @since 0.9.2 * @category Combinator */ exports.toUnion = ET.toUnion(S.Functor); /** * @since 0.9.2 * @category URI */ exports.URI = '@typed/fp/StreamEither'; /** * @since 0.9.2 * @category Constructor */ exports.of = (0, function_1.flow)(E.right, core_1.now); /** * @since 0.9.2 * @category Instance */ exports.Pointed = { of: exports.of, }; /** * @since 0.9.2 * @category Instance */ exports.Functor = { map: exports.map, }; /** * @since 0.9.2 * @category Instance */ exports.Bifunctor = { bimap: exports.bimap, mapLeft: exports.mapLeft, }; /** * @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 Instance */ exports.Monad = { ...exports.Chain, ...exports.Pointed, }; /** * @since 0.9.2 * @category Combinator */ const chainRec = (f) => (a) => (0, function_1.pipe)(a, S.chainRec((x) => (0, function_1.pipe)(x, f, S.map(internal_1.swapEithers)))); exports.chainRec = chainRec; /** * @since 0.9.2 * @category Instance */ exports.ChainRec = { chainRec: exports.chainRec, }; /** * @since 0.9.2 * @category Instance */ exports.MonadRec = { ...exports.Monad, chainRec: exports.chainRec, }; //# sourceMappingURL=StreamEither.js.map