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