@typed/fp
Version:
Data Structures and Resources for fp-ts
404 lines • 7.72 kB
JavaScript
import * as E from 'fp-ts/Either';
import * as FEi from 'fp-ts/FromEither';
import * as FIO from 'fp-ts/FromIO';
import * as FR from 'fp-ts/FromReader';
import * as FS from 'fp-ts/FromState';
import * as FT from 'fp-ts/FromTask';
import { flow, pipe } from 'fp-ts/function';
import * as ST from 'fp-ts/StateT';
import * as FE from './FromEnv';
import * as FRe from './FromResume';
import * as RSE from './ReaderStreamEither';
/**
* @since 0.9.2
* @category Combinator
*/
export const ap = ST.ap(RSE.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
export const chain = ST.chain(RSE.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
export const evaluate = ST.evaluate(RSE.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
export const execute = ST.execute(RSE.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromEnvEither = ST.fromF(RSE.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromState = ST.fromState(RSE.Pointed);
/**
* @since 0.9.2
* @category Combinator
*/
export const map = ST.map(RSE.Functor);
/**
* @since 0.9.2
* @category Constructor
*/
export const of = ST.of(RSE.Pointed);
/**
* @since 0.9.2
* @category URI
*/
export const URI = '@typed/fp/StateReaderStreamEither';
/**
* @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 Instance
*/
export const Apply = {
...Functor,
ap,
};
/**
* @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 Instance
*/
export const Monad = {
...Chain,
...Pointed,
};
/**
* @since 0.9.2
* @category Combinator
*/
export const chainRec = (f) => (value) => flow(f(value), RSE.chain(([either, nextState]) => pipe(either, E.matchW((a) => chainRec(f)(a)(nextState), (b) => RSE.right([b, nextState])))));
/**
* @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 = (either) => fromEnvEither(RSE.fromEither(either));
/**
* @since 0.9.2
* @category Instance
*/
export const FromEither = {
fromEither,
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromIO = (io) => fromEnvEither(RSE.fromIO(io));
/**
* @since 0.9.2
* @category Instance
*/
export const FromIO = {
fromIO,
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromTask = (io) => fromEnvEither(RSE.fromTask(io));
/**
* @since 0.9.2
* @category INstance
*/
export const FromTask = {
...FromIO,
fromTask,
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromResume = (resume) => fromEnvEither(RSE.fromResume(resume));
/**
* @since 0.9.2
* @category Instance
*/
export const FromResume = {
fromResume,
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromEnv = (env) => fromEnvEither(RSE.fromEnv(env));
/**
* @since 0.9.2
* @category Instance
*/
export const FromEnv = {
fromEnv,
};
/**
* @since 0.9.2
* @category Instance
*/
export const FromState = {
fromState,
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromReader = (reader) => fromEnvEither(RSE.fromReader(reader));
/**
* @since 0.9.2
* @category Instance
*/
export const FromReader = { fromReader };
/**
* @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.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.9.2
* @category Combinator
*/
export const chainStateK = FS.chainStateK(FromState, Chain);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromStateK = FS.fromStateK(FromState);
/**
* @since 0.9.2
* @category Constructor
*/
export const get = FS.get(FromState);
/**
* @since 0.9.2
* @category Constructor
*/
export const gets = FS.gets(FromState);
/**
* @since 0.9.2
* @category Combinator
*/
export const modify = FS.modify(FromState);
/**
* @since 0.9.2
* @category Combinator
*/
export const put = FS.put(FromState);
/**
* @since 0.9.2
* @category Combinator
*/
export const useSome = (provided) => (srte) => (s) => (r) => srte(s)({ ...r, ...provided });
/**
* @since 0.9.2
* @category Combinator
*/
export const provideSome = (provided) => (srte) => (s) => (r) => srte(s)({ ...provided, ...r });
/**
* @since 0.9.2
* @category Combinator
*/
export const useAll = (provided) => (srte) => (s) => () => srte(s)(provided);
/**
* @since 0.9.2
* @category Combinator
*/
export const provideAll = (provided) => (srte) => (s) => (r) => srte(s)({ ...provided, ...r });
/**
* @since 0.9.2
* @category Instance
*/
export const UseSome = {
useSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const UseAll = {
useAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideSome = {
provideSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideAll = {
provideAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Provide = {
useSome,
useAll,
provideSome,
provideAll,
};
//# sourceMappingURL=StateReaderStreamEither.js.map