UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

238 lines 4.4 kB
import * as EE from './EnvEither'; 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(EE.Pointed); /** * @category Combinator * @since 0.13.0 */ export const ap = FxT.ap({ ...EE.MonadRec, ...EE.Apply }); /** * @category Combinator * @since 0.13.0 */ export const chain = FxT.chain(); /** * @category Combinator * @since 0.13.0 */ export const chainRec = FxT.chainRec(EE.MonadRec); /** * @category Do * @since 0.13.0 */ export const doEnvEither = FxT.getDo(); /** * @category Constructor * @since 0.13.0 */ export const liftEnvEither = FxT.liftFx(); /** * @category Combinator * @since 0.13.0 */ export const map = FxT.map(); /** * @category Interpreter * @since 0.13.0 */ export const toEnvEither = FxT.toMonad(EE.MonadRec); /** * @category Constructor * @since 0.13.0 */ export const ask = FxT.ask(EE.FromReader); /** * @category Constructor * @since 0.13.0 */ export const asks = FxT.fromNaturalTransformation(EE.fromReader); /** * @category Constructor * @since 0.13.1 */ export const fromEither = FxT.fromNaturalTransformation(EE.fromEither); /** * @category Constructor * @since 0.13.1 */ export const fromEnv = FxT.fromNaturalTransformation(EE.fromEnv); /** * @category Constructor * @since 0.13.1 */ export const fromIO = FxT.fromNaturalTransformation(EE.fromIO); /** * @category Combinator * @since 0.13.0 */ export const useSome = FxT.useSome({ ...EE.UseSome, ...EE.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const useAll = FxT.useAll({ ...EE.UseAll, ...EE.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const provideSome = FxT.provideSome({ ...EE.ProvideSome, ...EE.MonadRec }); /** * @category Combinator * @since 0.13.0 */ export const provideAll = FxT.provideAll({ ...EE.ProvideAll, ...EE.MonadRec }); /** * @category Interpreter * @since 0.13.0 */ export const Do = flow(doEnvEither, toEnvEither); /** * @category URI * @since 0.13.0 */ export const URI = '@typed/fp/Fx/EnvEither'; /** * @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 Instance * @since 0.13.0 */ export const Applicative = { ...Apply, ...Pointed, }; /** * @category Instance * @since 0.13.0 */ export const Chain = { ...Functor, 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.1 * @category Constructor */ export const fromOption = (lazy) => flow(EE.fromOption(lazy), liftEnvEither); /** * @since 0.13.0 * @category Constructor */ export const fromReader = flow(EE.fromReader, liftEnvEither); /** * @since 0.13.0 * @category Instance */ 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=FxEnvEither.js.map