@typed/fp
Version:
Data Structures and Resources for fp-ts
200 lines • 3.46 kB
JavaScript
/**
* 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