UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

200 lines 3.46 kB
/** * StreamEither is a EitherT of Stream * @since 0.9.2 */ import { now } from '@most/core'; import * as E from 'fp-ts/Either'; import * as ET from 'fp-ts/EitherT'; import { flow, pipe } from './function'; import { swapEithers } from './internal'; import * as S from './Stream'; /** * @since 0.9.2 * @category Combinator */ export const alt = ET.alt(S.Monad); /** * @since 0.9.2 * @category Typecalss Constructor */ export const altValidation = (semigroup) => ET.altValidation(S.Monad, semigroup); /** * @since 0.9.2 * @category Combinator */ export const ap = ET.ap(S.Apply); /** * @since 0.9.2 * @category Combinator */ export const bimap = ET.bimap(S.Functor); /** * @since 0.9.2 * @category Combinator */ export const bracket = ET.bracket(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const chain = ET.chain(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const getOrElse = ET.getOrElse(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const getOrElseE = ET.getOrElseE(S.Monad); /** * @since 0.9.2 * @category Constructor */ export const left = ET.left(S.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromStreamL = ET.leftF(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const map = ET.map(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const mapLeft = ET.mapLeft(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const match = ET.match(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const matchE = ET.matchE(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const orElse = ET.orElse(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const orElseFirst = ET.orElseFirst(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const orLeft = ET.orLeft(S.Monad); /** * @since 0.9.2 * @category Constructor */ export const right = ET.right(S.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromStream = ET.rightF(S.Monad); /** * @since 0.9.2 * @category Combinator */ export const swap = ET.swap(S.Functor); /** * @since 0.9.2 * @category Combinator */ export const toUnion = ET.toUnion(S.Functor); /** * @since 0.9.2 * @category URI */ export const URI = '@typed/fp/StreamEither'; /** * @since 0.9.2 * @category Constructor */ export const of = flow(E.right, now); /** * @since 0.9.2 * @category Instance */ export const Pointed = { of, }; /** * @since 0.9.2 * @category Instance */ export const Functor = { map, }; /** * @since 0.9.2 * @category Instance */ export const Bifunctor = { bimap, mapLeft, }; /** * @since 0.9.2 * @category Instance */ export const Apply = { ...Functor, ap, }; /** * @since 0.9.2 * @category Instance */ export const Applicative = { ...Apply, ...Pointed, }; /** * @since 0.9.2 * @category Instance */ export const Chain = { ...Functor, chain, }; /** * @since 0.9.2 * @category Instance */ export const Monad = { ...Chain, ...Pointed, }; /** * @since 0.9.2 * @category Combinator */ export const chainRec = (f) => (a) => pipe(a, S.chainRec((x) => pipe(x, f, S.map(swapEithers)))); /** * @since 0.9.2 * @category Instance */ export const ChainRec = { chainRec, }; /** * @since 0.9.2 * @category Instance */ export const MonadRec = { ...Monad, chainRec, }; //# sourceMappingURL=StreamEither.js.map