UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

290 lines 5.25 kB
import * as Ap from 'fp-ts/Apply'; import * as Ch from 'fp-ts/Chain'; import * as E from './Env'; import { flow } from './function'; import * as FxT from './FxT'; import * as P from './Provide'; /** * @category Constructor * @since 0.13.0 */ export const of = FxT.of(E.Pointed); /** * @category Combinator * @since 0.13.0 */ export const ap = FxT.ap({ ...E.MonadRec, ...E.Apply }); /** * @category Combinator * @since 0.13.0 */ export const chain = FxT.chain(); /** * @category Combinator * @since 0.13.0 */ export const chainRec = FxT.chainRec(E.MonadRec); /** * @category Combinator * @since 0.13.0 */ export const doEnv = FxT.getDo(); /** * @category Combinator * @since 0.13.0 */ export const liftEnv = FxT.liftFx(); /** * @category Combinator * @since 0.13.0 */ export const map = FxT.map(); /** * @category Interpreter * @since 0.13.0 */ export const toEnv = FxT.toMonad(E.MonadRec); /** * @category Interpreter * @since 0.13.0 */ export const Do = flow(doEnv, toEnv); /** * @category Combinator * @since 0.13.0 */ export const useSome = FxT.useSome({ ...E.UseSome, ...E.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const useAll = FxT.useAll({ ...E.UseAll, ...E.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const provideSome = FxT.provideSome({ ...E.ProvideSome, ...E.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const provideAll = FxT.provideAll({ ...E.ProvideAll, ...E.MonadRec }); /** * @category Constructor * @since 0.13.0 */ export const fromIO = FxT.fromNaturalTransformation(E.fromIO); /** * @category Constructor * @since 0.13.0 */ export const fromResume = FxT.fromNaturalTransformation(E.fromResume); /** * @category Constructor * @since 0.13.0 */ export const fromTask = FxT.fromNaturalTransformation(E.fromTask); /** * @category ConstructorfromReader * @since 0.13.0 */ export const asks = FxT.fromNaturalTransformation(E.fromReader); /** * @category Constructor * @since 0.13.0 */ export const ask = FxT.ask(E.FromReader); /** * @category URI * @since 0.13.0 */ export const URI = '@typed/fp/Fx/Env'; /** * @category Instance * @since 0.13.0 */ export const Pointed = { of, }; /** * @category Instance * @since 0.13.0 */ export const Functor = { map, }; /** * @category Instance * @since 0.13.0 */ export const Apply = { ...Functor, ap, }; /** * @category Combinator * @since 0.13.0 */ export const apFirst = Ap.apFirst(Apply); /** * @category Combinator * @since 0.13.0 */ export const apFirstW = apFirst; /** * @category Combinator * @since 0.13.0 */ export const apS = Ap.apS(Apply); /** * @category Combinator * @since 0.13.0 */ export const apSW = apS; /** * @category Combinator * @since 0.13.0 */ export const apSecond = Ap.apSecond(Apply); /** * @category Combinator * @since 0.13.0 */ export const apSecondW = apSecond; /** * @category Combinator * @since 0.13.0 */ export const apT = Ap.apT(Apply); /** * @category Combinator * @since 0.13.0 */ export const apTW = apT; /** * @category Combinator * @since 0.13.0 */ export const getApplySemigroup = Ap.getApplySemigroup(Apply); /** * @category Instance * @since 0.13.0 */ export const Applicative = { ...Apply, ...Pointed, }; /** * @category Instance * @since 0.13.0 */ export const Chain = { ...Functor, chain, }; /** * @category Combinator * @since 0.13.0 */ export const bind = Ch.bind(Chain); /** * @category Combinator * @since 0.13.0 */ export const chainFirst = Ch.chainFirst(Chain); /** * @category Instance * @since 0.13.0 */ export const Monad = { ...Chain, ...Pointed, }; /** * @category Instance * @since 0.13.0 */ export const ChainRec = { chainRec, }; /** * @category Instance * @since 0.13.0 */ export const UseSome = { useSome, }; /** * @category Instance * @since 0.13.0 */ export const UseAll = { useAll, }; /** * @category Instance * @since 0.13.0 */ export const ProvideSome = { provideSome, }; /** * @category Instance * @since 0.13.0 */ export const ProvideAll = { provideAll, }; /** * @category Instance * @since 0.13.0 */ export const Provide = { useSome, useAll, provideSome, provideAll, }; /** * @since 0.13.0 * @category Constructor */ export const fromReader = flow(E.fromReader, liftEnv); /** * @category Instance * @since 0.13.0 */ export const FromReader = { fromReader, }; /** * @since 0.13.0 * @category Combinator */ export const provideAllWith = P.provideAllWith({ ...ProvideAll, ...Chain }); /** * @since 0.13.0 * @category Combinator */ export const useAllWith = P.useAllWith({ ...UseAll, ...Chain }); /** * @since 0.13.0 * @category Combinator */ export const provideSomeWith = P.provideSomeWith({ ...ProvideSome, ...Chain }); /** * @since 0.13.0 * @category Combinator */ export const useSomeWith = P.useSomeWith({ ...UseSome, ...Chain }); /** * @since 0.13.0 * @category Combinator */ export const askAndUse = P.askAndUse({ ...UseAll, ...Chain, ...FromReader }); /** * @since 0.13.0 * @category Combinator */ export const askAndProvide = P.askAndProvide({ ...ProvideAll, ...Chain, ...FromReader }); //# sourceMappingURL=FxEnv.js.map