UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

579 lines 19.3 kB
/** * EnvEither is an EitherT of [Env](./Env.ts.md) * @since 0.9.2 */ import * as Alt_ from 'fp-ts/Alt'; import * as Applicative_ from 'fp-ts/Applicative'; import * as Apply_ from 'fp-ts/Apply'; import * as Bifunctor_ from 'fp-ts/Bifunctor'; import * as Chain_ from 'fp-ts/Chain'; import * as ChainRec_ from 'fp-ts/ChainRec'; 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 FT from 'fp-ts/FromTask'; import * as Functor_ from 'fp-ts/Functor'; import * as IO from 'fp-ts/IO'; import * as Monad_ from 'fp-ts/Monad'; import * as Pointed_ from 'fp-ts/Pointed'; import { Reader } from 'fp-ts/Reader'; import * as Semigroup_ from 'fp-ts/Semigroup'; import * as T from 'fp-ts/Task'; import * as Env from './Env'; import * as FE from './FromEnv'; import * as FRe from './FromResume'; import { MonadRec3 } from './MonadRec'; import * as P from './Provide'; import { Resume } from './Resume'; /** * @since 0.9.2 * @category Model */ export interface EnvEither<R, E, A> extends Env.Env<R, E.Either<E, A>> { } /** * @since 0.10.0 * @category Model */ export interface Of<E, A> extends EnvEither<unknown, E, A> { } /** * @since 0.9.2 * @category Combinator */ export declare const alt: <ME, E, A>(second: import("fp-ts/function").Lazy<Env.Env<ME, E.Either<E, A>>>) => (first: Env.Env<ME, E.Either<E, A>>) => Env.Env<ME, E.Either<E, A>>; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const altValidation: <A>(semigroup: Semigroup_.Semigroup<A>) => <ME, A_1>(second: import("fp-ts/function").Lazy<Env.Env<ME, E.Either<A, A_1>>>) => (first: Env.Env<ME, E.Either<A, A_1>>) => Env.Env<ME, E.Either<A, A_1>>; /** * @since 0.9.2 * @category Combinator */ export declare const ap: <FE, E, A>(fa: Env.Env<FE, E.Either<E, A>>) => <B>(fab: Env.Env<FE, E.Either<E, (a: A) => B>>) => Env.Env<FE, E.Either<E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <FE>(fea: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, E.Either<G, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const bracket: <ME, E, A, B>(acquire: Env.Env<ME, E.Either<E, A>>, use: (a: A) => Env.Env<ME, E.Either<E, B>>, release: (a: A, e: E.Either<E, B>) => Env.Env<ME, E.Either<E, void>>) => Env.Env<ME, E.Either<E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const chain: <A, ME, E, B>(f: (a: A) => Env.Env<ME, E.Either<E, B>>) => (ma: Env.Env<ME, E.Either<E, A>>) => Env.Env<ME, E.Either<E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const chainW: <A, ME1, E, B>(f: (a: A) => Env.Env<ME1, E.Either<E, B>>) => <ME2>(ma: Env.Env<ME2, E.Either<E, A>>) => Env.Env<ME1 & ME2, E.Either<E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const getOrElse: <E, A>(onLeft: (e: E) => A) => <FE>(ma: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, A>; /** * @since 0.9.2 * @category Combinator */ export declare const getOrElseE: <E, ME, A>(onLeft: (e: E) => Env.Env<ME, A>) => (ma: Env.Env<ME, E.Either<E, A>>) => Env.Env<ME, A>; /** * @since 0.9.2 * @category Constructor */ export declare const left: <E, FE, A = never>(e: E) => Env.Env<FE, E.Either<E, A>>; /** * @since 0.9.2 * @category Constructor */ export declare const fromEnvL: <FE, E, A = never>(fe: Env.Env<FE, E>) => Env.Env<FE, E.Either<E, A>>; /** * @since 0.9.2 * @category Combinator */ export declare const map: <A, B>(f: (a: A) => B) => <FE, E>(fa: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, E.Either<E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const mapLeft: <E, G>(f: (e: E) => G) => <FE, A>(fea: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, E.Either<G, A>>; /** * @since 0.9.2 * @category Deconstructor */ export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => <FE>(ma: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, B>; /** * @since 0.9.2 * @category Deconstructor */ export declare const matchE: <E, ME, B, A>(onLeft: (e: E) => Env.Env<ME, B>, onRight: (a: A) => Env.Env<ME, B>) => (ma: Env.Env<ME, E.Either<E, A>>) => Env.Env<ME, B>; /** * @since 0.9.2 * @category Deconstructor */ export declare const orElse: <E1, ME, E2, A>(onLeft: (e: E1) => Env.Env<ME, E.Either<E2, A>>) => (ma: Env.Env<ME, E.Either<E1, A>>) => Env.Env<ME, E.Either<E2, A>>; /** * @since 0.9.2 * @category Combinator */ export declare const orElseFirst: <E, ME, B>(onLeft: (e: E) => Env.Env<ME, E.Either<E, B>>) => <A>(ma: Env.Env<ME, E.Either<E, A>>) => Env.Env<ME, E.Either<E, A>>; /** * @since 0.9.2 * @category Combinator */ export declare const orLeft: <E1, ME, E2>(onLeft: (e: E1) => Env.Env<ME, E2>) => <A>(fa: Env.Env<ME, E.Either<E1, A>>) => Env.Env<ME, E.Either<E2, A>>; /** * @since 0.9.2 * @category Constructor */ export declare const right: <A, FE, E = never>(a: A) => Env.Env<FE, E.Either<E, A>>; /** * @since 0.9.2 * @category Constructor */ export declare const fromEnv: <FE, A, E = never>(fa: Env.Env<FE, A>) => Env.Env<FE, E.Either<E, A>>; /** * @since 0.9.2 * @category Combinator */ export declare const swap: <FE, E, A>(ma: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, E.Either<A, E>>; /** * @since 0.9.2 * @category Deconstructor */ export declare const toUnion: <FE, E, A>(fa: Env.Env<FE, E.Either<E, A>>) => Env.Env<FE, E | A>; /** * @since 0.9.2 * @category URI */ export declare const URI = "@typed/fp/EnvEither"; /** * @since 0.9.2 * @category URI */ export declare type URI = typeof URI; declare module 'fp-ts/HKT' { interface URItoKind3<R, E, A> { [URI]: EnvEither<R, E, A>; } } declare module './HKT' { interface URItoVariance { [URI]: V<R, Contravariant> & V<E, Covariant>; } } /** * @since 0.9.2 * @category Constructor */ export declare const of: <A, E = never>(a: A) => Env.Of<E.Either<E, A>>; /** * @since 0.9.2 * @category Instance */ export declare const Pointed: Pointed_.Pointed3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Functor: Functor_.Functor3<URI>; /** * @since 0.9.2 * @category Combinator */ export declare const bindTo: <N extends string>(name: N) => <R, E, A>(fa: EnvEither<R, E, A>) => EnvEither<R, E, { readonly [K in N]: A; }>; /** * @since 0.9.2 * @category Combinator */ export declare const flap: <A>(a: A) => <R, E, B>(fab: EnvEither<R, E, (a: A) => B>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const tupled: <R, E, A>(fa: EnvEither<R, E, A>) => EnvEither<R, E, readonly [A]>; /** * @since 0.9.2 * @category Instance */ export declare const Bifunctor: Bifunctor_.Bifunctor3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Apply: Apply_.Apply3<URI>; /** * @since 0.9.2 * @category Combinator */ export declare const apFirst: <R, E, B>(second: EnvEither<R, E, B>) => <A>(first: EnvEither<R, E, A>) => EnvEither<R, E, A>; /** * @since 0.9.10 * @category Combinator */ export declare const apFirstW: <R1, E, B>(second: EnvEither<R1, E, B>) => <R2, A>(first: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, A>; /** * @since 0.9.2 * @category Combinator */ export declare const apS: <N extends string, A, R, E, B>(name: Exclude<N, keyof A>, fb: EnvEither<R, E, B>) => (fa: EnvEither<R, E, A>) => EnvEither<R, E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.9.10 * @category Combinator */ export declare const apSW: <N extends string, A, R1, E, B>(name: Exclude<N, keyof A>, fb: EnvEither<R1, E, B>) => <R2>(fa: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.9.2 * @category Combinator */ export declare const apSecond: <R, E, B>(second: EnvEither<R, E, B>) => <A>(first: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.10 * @category Combinator */ export declare const apSecondW: <R1, E, B>(second: EnvEither<R1, E, B>) => <R2, A>(first: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const apT: <R, E, B>(fb: EnvEither<R, E, B>) => <A extends readonly unknown[]>(fas: EnvEither<R, E, A>) => EnvEither<R, E, readonly [...A, B]>; /** * @since 0.9.10 * @category Combinator */ export declare const apTW: <R1, E, B>(fb: EnvEither<R1, E, B>) => <R2, A extends readonly unknown[]>(fas: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, readonly [...A, B]>; /** * @since 0.9.2 * @category Typeclass Constructor */ export declare const getSemigroup: <A, R, E>(S: Semigroup_.Semigroup<A>) => Semigroup_.Semigroup<EnvEither<R, E, A>>; /** * @since 0.9.2 * @category Instance */ export declare const Applicative: Applicative_.Applicative3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Chain: Chain_.Chain3<URI>; /** * @since 0.9.2 * @category Combinator */ export declare const bind: <N extends string, A, R, E, B>(name: Exclude<N, keyof A>, f: (a: A) => EnvEither<R, E, B>) => (ma: EnvEither<R, E, A>) => EnvEither<R, E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.11.1 * @category Combinator */ export declare const bindW: <N extends string, A, R1, E, B>(name: Exclude<N, keyof A>, f: (a: A) => EnvEither<R1, E, B>) => <R2>(ma: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirst: <A, R, E, B>(f: (a: A) => EnvEither<R, E, B>) => (first: EnvEither<R, E, A>) => EnvEither<R, E, A>; /** * @since 0.9.11 * @category Combinator */ export declare const chainFirstW: <A, R1, E1, B>(f: (a: A) => EnvEither<R1, E1, B>) => <R2, E2>(first: EnvEither<R2, E2, A>) => EnvEither<R1 & R2, E1 | E2, A>; /** * @since 0.9.2 * @category Instance */ export declare const Monad: Monad_.Monad3<URI>; /** * @since 0.9.2 * @category Combinator */ export declare const chainRec: <A, R, E, B>(f: (value: A) => EnvEither<R, E, E.Either<A, B>>) => (a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Instance */ export declare const ChainRec: ChainRec_.ChainRec3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const MonadRec: MonadRec3<URI>; /** * @since 0.9.2 * @category Constructor */ export declare const fromEither: <E, A, R = unknown>(e: E.Either<E, A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Instance */ export declare const FromEither: FEi.FromEither3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const FromIO: FIO.FromIO3<URI>; /** * @since 0.9.2 * @category Constructor */ export declare const fromIO: <A, R = unknown, E = never>(fa: IO.IO<A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Instance */ export declare const FromTask: FT.FromTask3<URI>; /** * @since 0.9.2 * @category Constructor */ export declare const fromTask: <A, R = unknown, E = never>(fa: T.Task<A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Instance */ export declare const FromResume: FRe.FromResume3<URI>; /** * @since 0.9.2 * @category Constructor */ export declare const fromResume: import("fp-ts/NaturalTransformation").NaturalTransformation13<"@typed/fp/Resume", "@typed/fp/EnvEither">; /** * @since 0.9.2 * @category Instance */ export declare const FromReader: FR.FromReader3<URI>; /** * @since 0.9.2 * @category Constructor */ export declare const fromReader: <R, A, E = never>(fa: Reader<R, A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Instance */ export declare const FromEnv: FE.FromEnv3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Alt: Alt_.Alt3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const UseSome: P.UseSome3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const UseAll: P.UseAll3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const ProvideSome: P.ProvideSome3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const ProvideAll: P.ProvideAll3<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Provide: P.Provide3<URI>; /** * @since 0.9.2 * @category Combinator */ export declare const askAndProvide: <R, E, B>(hkt: EnvEither<R, E, B>) => EnvEither<R, E, EnvEither<unknown, E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const askAndUse: <R, E, B>(hkt: EnvEither<R, E, B>) => EnvEither<R, E, EnvEither<unknown, E, B>>; /** * @since 0.9.2 * @category Combinator */ export declare const provideAllWith: <R, E1, A>(provider: EnvEither<R, E1, A>) => <E2, B>(hkt: EnvEither<A, E2, B>) => EnvEither<R, E1 | E2, B>; /** * @since 0.9.2 * @category Combinator */ export declare const provideSomeWith: <R1, E1, A>(provider: EnvEither<R1, E1, A>) => P.Provider3<"@typed/fp/EnvEither", A, R1, E1>; /** * @since 0.9.2 * @category Combinator */ export declare const useAllWith: <R, E1, A>(provider: EnvEither<R, E1, A>) => <E2, B>(hkt: EnvEither<A, E2, B>) => EnvEither<R, E1 | E2, B>; /** * @since 0.9.2 * @category Combinator */ export declare const useSomeWith: <R1, E1, A>(provider: EnvEither<R1, E1, A>) => P.Provider3<"@typed/fp/EnvEither", A, R1, E1>; /** * @since 0.9.2 * @category Constructor */ export declare const ask: <R, E>() => EnvEither<R, E, R>; /** * @since 0.9.2 * @category Constructor */ export declare const asks: <R, A, E>(f: (r: R) => A) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Combinator */ export declare const chainReaderK: <A, R, B>(f: (a: A) => Reader<R, B>) => <E>(ma: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromReaderK: <A extends readonly unknown[], R, B>(f: (...a: A) => Reader<R, B>) => <E>(...a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstResumeK: <A, B>(f: (value: A) => Resume<B>) => <R, E>(hkt: EnvEither<R, E, A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Combinator */ export declare const chainResumeK: <A, B>(f: (value: A) => Resume<B>) => <R, E>(hkt: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromResumeK: <A extends readonly any[], B>(f: (...args: A) => Resume<B>) => <R, E>(...args: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainEnvK: <A, R1, B>(f: (value: A) => Env.Env<R1, B>) => <R2, E>(hkt: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstEnvK: <A, R1, B>(f: (value: A) => Env.Env<R1, B>) => <R2, E>(hkt: EnvEither<R2, E, A>) => EnvEither<R1 & R2, E, A>; /** * @since 0.9.2 * @category Constructor */ export declare const fromEnvK: <A extends readonly any[], R, B>(f: (...args: A) => Env.Env<R, B>) => <E>(...args: A) => EnvEither<R, E, B>; /** * @since 0.9.15 * @category Combinator */ export declare const provideAllWithEnv: <R, A>(env: Env.Env<R, A>) => <E, B>(hkt: EnvEither<A, E, B>) => EnvEither<R, E, B>; /** * @since 0.9.15 * @category Combinator */ export declare const provideSomeWithEnv: <E, A>(env: Env.Env<E, A>) => P.Provider3<"@typed/fp/EnvEither", A, E, never>; /** * @since 0.9.15 * @category Combinator */ export declare const useAllWithEnv: <R, A>(env: Env.Env<R, A>) => <E, B>(hkt: EnvEither<A, E, B>) => EnvEither<R, E, B>; /** * @since 0.9.15 * @category Combinator */ export declare const useSomeWithEnv: <E, A>(env: Env.Env<E, A>) => P.Provider3<"@typed/fp/EnvEither", A, E, never>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R, E>(first: EnvEither<R, E, A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Combinator */ export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R, E>(first: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromTaskK: <A extends readonly unknown[], B>(f: (...a: A) => T.Task<B>) => <R, E>(...a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainFirstIOK: <A, B>(f: (a: A) => IO.IO<B>) => <R, E>(first: EnvEither<R, E, A>) => EnvEither<R, E, A>; /** * @since 0.9.2 * @category Combinator */ export declare const chainIOK: <A, B>(f: (a: A) => IO.IO<B>) => <R, E>(first: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromIOK: <A extends readonly unknown[], B>(f: (...a: A) => IO.IO<B>) => <R, E>(...a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainEitherK: <A, E, B>(f: (a: A) => E.Either<E, B>) => <R>(ma: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const chainOptionK: <E>(onNone: import("fp-ts/function").Lazy<E>) => <A, B>(f: (a: A) => import("fp-ts/Option").Option<B>) => <R>(ma: EnvEither<R, E, A>) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Combinator */ export declare const filterOrElse: { <A, B extends A, E>(refinement: import("fp-ts/Refinement").Refinement<A, B>, onFalse: (a: A) => E): <R>(ma: EnvEither<R, E, A>) => EnvEither<R, E, B>; <A_1, E_1>(predicate: import("fp-ts/Predicate").Predicate<A_1>, onFalse: (a: A_1) => E_1): <R_1, B_1 extends A_1>(mb: EnvEither<R_1, E_1, B_1>) => EnvEither<R_1, E_1, B_1>; }; /** * @since 0.9.2 * @category Constructor */ export declare const fromEitherK: <A extends readonly unknown[], E, B>(f: (...a: A) => E.Either<E, B>) => <R>(...a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromOption: <E>(onNone: import("fp-ts/function").Lazy<E>) => import("fp-ts/NaturalTransformation").NaturalTransformation13C<"Option", "@typed/fp/EnvEither", E>; /** * @since 0.9.2 * @category Constructor */ export declare const fromOptionK: <E>(onNone: import("fp-ts/function").Lazy<E>) => <A extends readonly unknown[], B>(f: (...a: A) => import("fp-ts/Option").Option<B>) => <R>(...a: A) => EnvEither<R, E, B>; /** * @since 0.9.2 * @category Constructor */ export declare const fromPredicate: { <A, B extends A>(refinement: import("fp-ts/Refinement").Refinement<A, B>): <R>(a: A) => EnvEither<R, A, B>; <A_1>(predicate: import("fp-ts/Predicate").Predicate<A_1>): <R_1, B_1 extends A_1>(b: B_1) => EnvEither<R_1, B_1, B_1>; }; /** * @since 0.11.1 * @category Constructor */ export declare const Do: EnvEither<unknown, never, {}>; /** * Construct an EnvEither from a Promise returning function. * @since 0.12.2 * @category Constructor */ export declare const fromPromise: <A>(f: import("fp-ts/function").Lazy<Promise<A>>) => Env.Env<unknown, E.Either<unknown, A>>; /** * Construct an EnvEither from a Promise returning function. * @since 0.12.2 * @category Constructor */ export declare const fromPromiseK: <A extends readonly any[], B>(f: (...args: A) => Promise<B>) => (...args: A) => Env.Env<unknown, E.Either<unknown, B>>; //# sourceMappingURL=EnvEither.d.ts.map