@typed/fp
Version:
Data Structures and Resources for fp-ts
396 lines • 6.99 kB
JavaScript
import * as Ap from 'fp-ts/Apply';
import * as Ei from 'fp-ts/Either';
import * as FR from 'fp-ts/FromReader';
import { flow, pipe } from 'fp-ts/function';
import * as O from 'fp-ts/Option';
import * as OT from 'fp-ts/OptionT';
import * as E from './Env';
import * as FE from './FromEnv';
import * as FRe from './FromResume';
/**
* @since 0.9.2
* @category Combinator
*/
export const alt = OT.alt(E.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
export const ap = OT.ap(E.Apply);
/**
* @since 0.11.0
* @category Combinator
*/
export const apW = ap;
/**
* @since 0.9.2
* @category Combinator
*/
export const chain = OT.chain(E.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
export const chainNullableK = OT.chainNullableK(E.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
export const chainOptionK = OT.chainOptionK(E.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromEither = OT.fromEither(E.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromEnv = OT.fromF(E.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromNullable = OT.fromNullable(E.Pointed);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromNullableK = OT.fromNullableK(E.Pointed);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromOptionK = OT.fromOptionK(E.Pointed);
/**
* @since 0.9.2
* @category Constructor
*/
export const fromPredicate = OT.fromPredicate(E.Pointed);
/**
* @since 0.9.2
* @category Deconstuctor
*/
export const getOrElse = OT.getOrElse(E.Functor);
/**
* @since 0.9.2
* @category Deconstructor
*/
export const getOrElseE = OT.getOrElseE(E.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
export const map = OT.map(E.Functor);
/**
* @since 0.9.2
* @category Deconstructor
*/
export const match = OT.match(E.Functor);
/**
* @since 0.12.1
* @category Deconstructor
*/
export const matchW = match;
/**
* @since 0.9.2
* @category Deconstructor
*/
export const matchE = OT.matchE(E.Chain);
/**
* @since 0.12.1
* @category Deconstructor
*/
export const matchEW = matchE;
/**
* @since 0.9.2
* @category Constructor
*/
export const some = OT.some(E.Pointed);
/**
* @since 0.9.2
* @category Constructor
*/
export const zero = OT.zero(E.Pointed);
/**
* @since 0.9.2
* @category Combinator
*/
export const getOrElseEW = getOrElseE;
/**
* @since 0.9.2
* @category URI
*/
export const URI = '@typed/fp/EnvOption';
/**
* @since 0.9.2
* @category Instance
*/
export const Pointed = {
of: flow(O.some, E.of),
};
/**
* @since 0.9.2
* @category Instance
*/
export const Functor = {
map,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Apply = {
...Functor,
ap,
};
/**
* @since 0.11.0
* @category Combinator
*/
export const apFirst = Ap.apFirst(Apply);
/**
* @since 0.11.0
* @category Combinator
*/
export const apFirstW = apFirst;
/**
* @since 0.11.0
* @category Combinator
*/
export const apS = Ap.apS(Apply);
/**
* @since 0.11.0
* @category Combinator
*/
export const apSW = apS;
/**
* @since 0.11.0
* @category Combinator
*/
export const apSecond = Ap.apSecond(Apply);
/**
* @since 0.11.0
* @category Combinator
*/
export const apSecondW = apSecond;
/**
* @since 0.11.0
* @category Combinator
*/
export const apT = Ap.apT(Apply);
/**
* @since 0.11.0
* @category Combinator
*/
export const apTW = apT;
/**
* @since 0.11.0
* @category Combinator
*/
export const getApplySemigroup = Ap.getApplySemigroup(Apply);
/**
* @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 Combinator
*/
export const chainRec = (f) => (value) => pipe(value, E.chainRec((a) => pipe(a, f, E.map((oe) => {
if (O.isNone(oe)) {
return Ei.right(oe);
}
return pipe(oe.value, Ei.map(O.some));
}))));
/**
* @since 0.9.2
* @category Instance
*/
export const ChainRec = {
chainRec,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Monad = {
...Chain,
...Pointed,
};
/**
* @since 0.9.2
* @category Instance
*/
export const MonadRec = {
...Monad,
chainRec,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Alt = {
...Functor,
alt,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Alternative = {
...Alt,
zero,
};
/**
* @since 0.9.2
* @category Instance
*/
export const FromIO = {
fromIO: flow(E.fromIO, E.map(O.some)),
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromIO = FromIO.fromIO;
/**
* @since 0.9.2
* @category Instance
*/
export const FromTask = {
...FromIO,
fromTask: flow(E.fromTask, E.map(O.some)),
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromTask = FromTask.fromTask;
/**
* @since 0.9.2
* @category Instance
*/
export const FromResume = {
fromResume: (resume) => pipe(E.fromResume(resume), E.map(O.some)),
};
/**
* @since 0.9.2
* @category Constructor
*/
export const fromResume = FromResume.fromResume;
/**
* @since 0.9.2
* @category Instance
*/
export const FromEnv = {
fromEnv,
};
/**
* @since 0.9.2
* @category Instance
*/
export const FromReader = {
fromReader: flow(E.fromReader, E.map(O.some)),
};
/**
* @since 0.9.2
* @category Instance
*/
export const UseSome = {
useSome: E.useSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const UseAll = {
useAll: E.useAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideSome = {
provideSome: E.provideSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideAll = {
provideAll: E.provideAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Provide = {
...UseAll,
...UseSome,
...ProvideSome,
...ProvideAll,
};
/**
* @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);
//# sourceMappingURL=EnvOption.js.map