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