UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

588 lines 11.5 kB
import * as Apply_ from 'fp-ts/Apply'; import * as Chain_ from 'fp-ts/Chain'; import * as E from 'fp-ts/Either'; import * as ET from 'fp-ts/EitherT'; import * as FEi from 'fp-ts/FromEither'; import * as FIO from 'fp-ts/FromIO'; import * as FR from 'fp-ts/FromReader'; import * as FT from 'fp-ts/FromTask'; import { flow, pipe } from 'fp-ts/function'; import * as Functor_ from 'fp-ts/Functor'; import { tryCatch } from 'fp-ts/TaskEither'; import * as Env from './Env'; import * as FE from './FromEnv'; import * as FRe from './FromResume'; import { swapEithers } from './internal'; import * as P from './Provide'; import { sync } from './Resume'; /** * @since 0.9.2 * @category Combinator */ export const alt = ET.alt(Env.Monad); /** * @since 0.9.2 * @category Typeclass Constructor */ export const altValidation = (semigroup) => ET.altValidation(Env.Monad, semigroup); /** * @since 0.9.2 * @category Combinator */ export const ap = ET.ap(Env.Apply); /** * @since 0.9.2 * @category Combinator */ export const bimap = ET.bimap(Env.Functor); /** * @since 0.9.2 * @category Combinator */ export const bracket = ET.bracket(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const chain = ET.chain(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const chainW = chain; /** * @since 0.9.2 * @category Combinator */ export const getOrElse = ET.getOrElse(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const getOrElseE = ET.getOrElseE(Env.Monad); /** * @since 0.9.2 * @category Constructor */ export const left = ET.left(Env.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromEnvL = ET.leftF(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const map = ET.map(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const mapLeft = ET.mapLeft(Env.Monad); /** * @since 0.9.2 * @category Deconstructor */ export const match = ET.match(Env.Monad); /** * @since 0.9.2 * @category Deconstructor */ export const matchE = ET.matchE(Env.Monad); /** * @since 0.9.2 * @category Deconstructor */ export const orElse = ET.orElse(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const orElseFirst = ET.orElseFirst(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const orLeft = ET.orLeft(Env.Monad); /** * @since 0.9.2 * @category Constructor */ export const right = ET.right(Env.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromEnv = ET.rightF(Env.Monad); /** * @since 0.9.2 * @category Combinator */ export const swap = ET.swap(Env.Functor); /** * @since 0.9.2 * @category Deconstructor */ export const toUnion = ET.toUnion(Env.Functor); /** * @since 0.9.2 * @category URI */ export const URI = '@typed/fp/EnvEither'; /** * @since 0.9.2 * @category Constructor */ export const of = flow(E.right, Env.of); /** * @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 Combinator */ export const bindTo = Functor_.bindTo(Functor); /** * @since 0.9.2 * @category Combinator */ export const flap = Functor_.flap(Functor); /** * @since 0.9.2 * @category Combinator */ export const tupled = Functor_.tupled(Functor); /** * @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 Combinator */ export const apFirst = Apply_.apFirst(Apply); /** * @since 0.9.10 * @category Combinator */ export const apFirstW = Apply_.apFirst(Apply); /** * @since 0.9.2 * @category Combinator */ export const apS = Apply_.apS(Apply); /** * @since 0.9.10 * @category Combinator */ export const apSW = apS; /** * @since 0.9.2 * @category Combinator */ export const apSecond = Apply_.apSecond(Apply); /** * @since 0.9.10 * @category Combinator */ export const apSecondW = apSecond; /** * @since 0.9.2 * @category Combinator */ export const apT = Apply_.apT(Apply); /** * @since 0.9.10 * @category Combinator */ export const apTW = apT; /** * @since 0.9.2 * @category Typeclass Constructor */ export const getSemigroup = Apply_.getApplySemigroup(Apply); /** * @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 Combinator */ export const bind = Chain_.bind(Chain); /** * @since 0.11.1 * @category Combinator */ export const bindW = bind; /** * @since 0.9.2 * @category Combinator */ export const chainFirst = Chain_.chainFirst(Chain); /** * @since 0.9.11 * @category Combinator */ export const chainFirstW = Chain_.chainFirst(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, Env.chainRec((x) => pipe(x, f, Env.map(swapEithers)))); /** * @since 0.9.2 * @category Instance */ export const ChainRec = { chainRec, }; /** * @since 0.9.2 * @category Instance */ export const MonadRec = { ...Monad, chainRec, }; /** * @since 0.9.2 * @category Constructor */ export const fromEither = (e) => () => sync(() => e); /** * @since 0.9.2 * @category Instance */ export const FromEither = { fromEither, }; /** * @since 0.9.2 * @category Instance */ export const FromIO = { fromIO: flow(Env.fromIO, Env.map(E.right)), }; /** * @since 0.9.2 * @category Constructor */ export const fromIO = FromIO.fromIO; /** * @since 0.9.2 * @category Instance */ export const FromTask = { ...FromIO, fromTask: flow(Env.fromTask, Env.map(E.right)), }; /** * @since 0.9.2 * @category Constructor */ export const fromTask = FromTask.fromTask; /** * @since 0.9.2 * @category Instance */ export const FromResume = { fromResume: (resume) => pipe(Env.fromResume(resume), Env.map(E.right)), }; /** * @since 0.9.2 * @category Constructor */ export const fromResume = FromResume.fromResume; /** * @since 0.9.2 * @category Instance */ export const FromReader = { fromReader: flow(Env.fromReader, Env.map(E.right)), }; /** * @since 0.9.2 * @category Constructor */ export const fromReader = FromReader.fromReader; /** * @since 0.9.2 * @category Instance */ export const FromEnv = { fromEnv, }; /** * @since 0.9.2 * @category Instance */ export const Alt = { ...Functor, alt, }; /** * @since 0.9.2 * @category Instance */ export const UseSome = { useSome: Env.useSome, }; /** * @since 0.9.2 * @category Instance */ export const UseAll = { useAll: Env.useAll, }; /** * @since 0.9.2 * @category Instance */ export const ProvideSome = { provideSome: Env.provideSome, }; /** * @since 0.9.2 * @category Instance */ export const ProvideAll = { provideAll: Env.provideAll, }; /** * @since 0.9.2 * @category Instance */ export const Provide = { ...UseAll, ...UseSome, ...ProvideSome, ...ProvideAll, }; /** * @since 0.9.2 * @category Combinator */ export const askAndProvide = P.askAndProvide({ ...ProvideAll, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const askAndUse = P.askAndUse({ ...UseAll, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const provideAllWith = P.provideAllWith({ ...ProvideAll, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const provideSomeWith = P.provideSomeWith({ ...ProvideSome, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const useAllWith = P.useAllWith({ ...UseAll, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const useSomeWith = P.useSomeWith({ ...UseSome, ...FromReader, ...Chain }); /** * @since 0.9.2 * @category Constructor */ export const ask = FR.ask(FromReader); /** * @since 0.9.2 * @category Constructor */ export const asks = FR.asks(FromReader); /** * @since 0.9.2 * @category Combinator */ export const chainReaderK = FR.chainReaderK(FromReader, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromReaderK = FR.fromReaderK(FromReader); /** * @since 0.9.2 * @category Combinator */ export const chainFirstResumeK = FRe.chainFirstResumeK(FromResume, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainResumeK = FRe.chainResumeK(FromResume, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromResumeK = FRe.fromResumeK(FromResume); /** * @since 0.9.2 * @category Combinator */ export const chainEnvK = FE.chainEnvK(FromEnv, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainFirstEnvK = FE.chainFirstEnvK(FromEnv, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromEnvK = FE.fromEnvK(FromEnv); /** * @since 0.9.15 * @category Combinator */ export const provideAllWithEnv = FE.provideAllWithEnv({ ...FromEnv, ...ProvideAll, ...Chain }); /** * @since 0.9.15 * @category Combinator */ export const provideSomeWithEnv = FE.provideSomeWithEnv({ ...FromEnv, ...ProvideSome, ...Chain }); /** * @since 0.9.15 * @category Combinator */ export const useAllWithEnv = FE.useAllWithEnv({ ...FromEnv, ...UseAll, ...Chain }); /** * @since 0.9.15 * @category Combinator */ export const useSomeWithEnv = FE.useSomeWithEnv({ ...FromEnv, ...UseSome, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const chainFirstTaskK = FT.chainFirstTaskK(FromTask, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainTaskK = FT.chainTaskK(FromTask, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromTaskK = FT.fromTaskK(FromTask); /** * @since 0.9.2 * @category Combinator */ export const chainFirstIOK = FIO.chainFirstIOK(FromTask, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainIOK = FIO.chainIOK(FromTask, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromIOK = FIO.fromIOK(FromTask); /** * @since 0.9.2 * @category Combinator */ export const chainEitherK = FEi.chainEitherK(FromEither, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainOptionK = FEi.chainOptionK(FromEither, Chain); /** * @since 0.9.2 * @category Combinator */ export const filterOrElse = FEi.filterOrElse(FromEither, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromEitherK = FEi.fromEitherK(FromEither); /** * @since 0.9.2 * @category Constructor */ export const fromOption = FEi.fromOption(FromEither); /** * @since 0.9.2 * @category Constructor */ export const fromOptionK = FEi.fromOptionK(FromEither); /** * @since 0.9.2 * @category Constructor */ export const fromPredicate = FEi.fromPredicate(FromEither); /** * @since 0.11.1 * @category Constructor */ export const Do = fromIO(() => Object.create(null)); /** * Construct an EnvEither from a Promise returning function. * @since 0.12.2 * @category Constructor */ export const fromPromise = flow(tryCatch, Env.fromTask); /** * Construct an EnvEither from a Promise returning function. * @since 0.12.2 * @category Constructor */ export const fromPromiseK = (f) => (...args) => fromPromise(() => f(...args)); //# sourceMappingURL=EnvEither.js.map