UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

575 lines 10.8 kB
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 FE from './FromEnv'; import * as FRS from './FromReaderStream'; import * as FRe from './FromResume'; import * as FS from './FromStream'; import * as P from './Provide'; import * as RS from './ReaderStream'; /** * @since 0.9.2 * @category Combinator */ export const alt = OT.alt(RS.Monad); /** * @since 0.9.2 * @category Combinator */ export const ap = OT.ap(RS.Apply); /** * @since 0.11.0 * @category Combinator */ export const apW = ap; /** * @since 0.9.2 * @category Combinator */ export const chain = OT.chain(RS.Monad); /** * @since 0.13.9 * @category Combinator */ export const chainW = chain; /** * @since 0.9.2 * @category Combinator */ export const chainNullableK = OT.chainNullableK(RS.Monad); /** * @since 0.9.2 * @category Combinator */ export const chainOptionK = OT.chainOptionK(RS.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromEither = OT.fromEither(RS.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromReaderStream = OT.fromF(RS.Monad); /** * @since 0.9.2 * @category Constructor */ export const fromNullable = OT.fromNullable(RS.Pointed); /** * @since 0.9.2 * @category Constructor */ export const fromNullableK = OT.fromNullableK(RS.Pointed); /** * @since 0.9.2 * @category Constructor */ export const fromOptionK = OT.fromOptionK(RS.Pointed); /** * @since 0.9.2 * @category Constructor */ export const fromPredicate = OT.fromPredicate(RS.Pointed); /** * @since 0.9.2 * @category Deconstructor */ export const getOrElse = OT.getOrElse(RS.Functor); /** * @since 0.9.2 * @category Deconstructor */ export const getOrElseE = OT.getOrElseE(RS.Monad); /** * @since 0.9.2 * @category Combinator */ export const map = OT.map(RS.Functor); /** * @since 0.9.2 * @category Deconstructor */ export const match = OT.match(RS.Functor); /** * @since 0.9.2 * @category Deconstructor */ export const matchE = OT.matchE(RS.Chain); /** * @since 0.9.2 * @category Constructor */ export const some = OT.some(RS.Pointed); /** * @since 0.9.2 * @category Constructor */ export const zero = OT.zero(RS.Pointed); /** * @since 0.9.2 * @category Deconstructor */ export const getOrElseW = OT.getOrElse(RS.Functor); /** * @since 0.9.2 * @category Deconstructor */ export const getOrElseEW = getOrElseE; /** * @since 0.9.2 * @category URI */ export const URI = '@typed/fp/ReaderStreamOption'; /** * @since 0.9.2 * @category Instance */ export const Pointed = { of: flow(O.some, RS.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.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, RS.chainRec((a) => pipe(a, f, RS.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(RS.fromIO, RS.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(RS.fromTask, RS.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(RS.fromResume(resume), RS.map(O.some)), }; /** * @since 0.9.2 * @category Constructor */ export const fromResume = FromResume.fromResume; /** * @since 0.9.2 * @category Instance */ export const FromEnv = { fromEnv: flow(RS.fromEnv, RS.map(O.some)), }; /** * @since 0.9.2 * @category Constructor */ export const fromEnv = FromEnv.fromEnv; /** * @since 0.9.2 * @category Instance */ export const FromReader = { fromReader: flow(RS.fromReader, RS.map(O.some)), }; /** * @since 0.9.2 * @category Constructor */ export const fromReader = FromReader.fromReader; /** * @since 0.9.2 * @category Instance */ export const UseSome = { useSome: RS.useSome, }; /** * @since 0.9.2 * @category Combinator */ export const useSome = UseSome.useSome; /** * @since 0.9.2 * @category Instance */ export const UseAll = { useAll: RS.useAll, }; /** * @since 0.9.2 * @category Combinator */ export const useAll = UseAll.useAll; /** * @since 0.9.2 * @category Instance */ export const ProvideSome = { provideSome: RS.provideSome, }; /** * @since 0.9.2 * @category Combinator */ export const provideSome = ProvideSome.provideSome; /** * @since 0.9.2 * @category Instance */ export const ProvideAll = { provideAll: RS.provideAll, }; /** * @since 0.9.2 * @category Combinator */ export const provideAll = ProvideAll.provideAll; /** * @since 0.9.2 * @category Instance */ export const Provide = { ...UseAll, ...UseSome, ...ProvideSome, ...ProvideAll, }; /** * @since 0.9.2 * @category Combinator */ export const askAndProvide = P.askAndProvide({ ...ProvideAll, ...Chain, ...FromReader }); /** * @since 0.9.2 * @category Combinator */ export const askAndUse = P.askAndUse({ ...UseAll, ...Chain, ...FromReader }); /** * @since 0.9.2 * @category Combinator */ export const provideAllWith = P.provideAllWith({ ...ProvideAll, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const provideSomeWith = P.provideSomeWith({ ...ProvideSome, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const useAllWith = P.useAllWith({ ...UseAll, ...Chain }); /** * @since 0.9.2 * @category Combinator */ export const useSomeWith = P.useSomeWith({ ...UseSome, ...Chain }); /** * @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.13.9 * @category Combinator */ export const provideAllWithEnv = FE.provideAllWithEnv({ ...FromEnv, ...ProvideAll, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const provideSomeWithEnv = FE.provideSomeWithEnv({ ...FromEnv, ...ProvideSome, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const useSomeWithEnv = FE.useSomeWithEnv({ ...FromEnv, ...UseSome, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const useAllWithEnv = FE.useAllWithEnv({ ...FromEnv, ...UseAll, ...Chain, }); /** * @since 0.9.2 * @category Instance */ export const FromStream = { fromStream: flow(RS.fromStream, RS.map(O.some)), }; /** * @since 0.9.2 * @category Constructor */ export const fromStream = FromStream.fromStream; /** * @since 0.9.2 * @category Combinator */ export const chainFirstStreamK = FS.chainFirstStreamK(FromStream, Chain); /** * @since 0.9.2 * @category Combinator */ export const chainStreamK = FS.chainStreamK(FromStream, Chain); /** * @since 0.9.2 * @category Constructor */ export const fromStreamK = FS.fromStreamK(FromStream); /** * @since 0.13.9 * @category Instance */ export const FromReaderStream = { fromReaderStream, }; /** * @since 0.13.9 * @category Combinator */ export const chainFirstReaderStreamK = FRS.chainFirstReaderStreamK(FromReaderStream, Chain); /** * @since 0.13.9 * @category Combinator */ export const chainReaderStreamK = FRS.chainReaderStreamK(FromReaderStream, Chain); /** * @since 0.13.9 * @category Constructor */ export const fromReaderStreamK = FRS.fromReaderStreamK(FromReaderStream); /** * @since 0.13.9 * @category Combinator */ export const provideAllWithReaderStream = FRS.provideAllWithReaderStream({ ...FromReaderStream, ...ProvideAll, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const provideSomeWithReaderStream = FRS.provideSomeWithReaderStream({ ...FromReaderStream, ...ProvideSome, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const useSomeWithReaderStream = FRS.useSomeWithReaderStream({ ...FromReaderStream, ...UseSome, ...Chain, }); /** * @since 0.13.9 * @category Combinator */ export const useAllWithReaderStream = FRS.useAllWithReaderStream({ ...FromReaderStream, ...UseAll, ...Chain, }); //# sourceMappingURL=ReaderStreamOption.js.map