fp-ts-fluture
Version:
fp-ts bindings for Fluture
218 lines (217 loc) • 5.91 kB
TypeScript
/**
* @since 0.6.5
*/
import { IO } from 'fp-ts/lib/IO'
import { Monad3 } from 'fp-ts/lib/Monad'
import { MonadThrow3 } from 'fp-ts/lib/MonadThrow'
import { State } from 'fp-ts/lib/State'
import { Task } from 'fp-ts/lib/Task'
import * as E from 'fp-ts/lib/Either'
import { Bifunctor3 } from 'fp-ts/lib/Bifunctor'
import { Alt3 } from 'fp-ts/lib/Alt'
import { MonadTask3 } from 'fp-ts/lib/MonadTask'
import * as F from './Future'
declare module 'fp-ts/lib/HKT' {
interface URItoKind3<R, E, A> {
StateFuture: StateFuture<R, E, A>
}
}
/**
* @since 0.6.5
*/
export declare const URI = 'StateFuture'
/**
* @since 0.6.5
*/
export declare type URI = typeof URI
/**
* @since 0.6.5
*/
export interface StateFuture<S, E, A> {
(s: S): F.Future<E, [A, S]>
}
/**
* @since 0.6.5
*/
export declare const evalState: <S, E, A>(ma: StateFuture<S, E, A>, s: S) => F.Future<E, A>
/**
* @since 0.6.5
*/
export declare const execState: <S, E, A>(ma: StateFuture<S, E, A>, s: S) => F.Future<E, S>
/**
* @since 0.6.5
*/
export declare function left<S, E, A = never>(e: E): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare const right: <S, E = never, A = never>(a: A) => StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function rightTask<S, E = never, A = never>(ma: Task<A>): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function leftTask<S, E, A = never>(me: Task<E>): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare const fromFuture: <S, E, A>(ma: F.Future<E, A>) => StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function rightIO<S, E = never, A = never>(ma: IO<A>): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function leftIO<S, E, A = never>(me: IO<E>): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare const rightState: <S, E = never, A = never>(ma: State<S, A>) => StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function leftState<S, E, A = never>(me: State<S, E>): StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function orElse<S, E, M, A>(
f: (e: E) => StateFuture<S, M, A>
): (ma: StateFuture<S, E, A>) => StateFuture<S, M, A>
/**
* @since 0.6.5
*/
export declare const get: <S, E = never>() => StateFuture<S, E, S>
/**
* @since 0.6.5
*/
export declare const put: <S, E = never>(s: S) => StateFuture<S, E, void>
/**
* @since 0.6.5
*/
export declare const modify: <S, E = never>(f: (s: S) => S) => StateFuture<S, E, void>
/**
* @since 0.6.5
*/
export declare const gets: <S, E = never, A = never>(f: (s: S) => A) => StateFuture<S, E, A>
/**
* @since 0.6.5
*/
export declare function fromEitherK<E, A extends Array<unknown>, B>(
f: (...a: A) => E.Either<E, B>
): <S>(...a: A) => StateFuture<S, E, B>
/**
* @since 0.6.5
*/
export declare function chainEitherK<E, A, B>(
f: (a: A) => E.Either<E, B>
): <S>(ma: StateFuture<S, E, A>) => StateFuture<S, E, B>
/**
* @since 0.6.5
*/
export declare function fromFutureK<E, A extends Array<unknown>, B>(
f: (...a: A) => F.Future<E, B>
): <S>(...a: A) => StateFuture<S, E, B>
/**
* @since 0.6.5
*/
export declare function chainFutureK<E, A, B>(
f: (a: A) => F.Future<E, B>
): <S>(ma: StateFuture<S, E, A>) => StateFuture<S, E, B>
/**
* @since 0.6.5
*/
export declare const stateFuture: Monad3<URI> &
MonadThrow3<URI> &
Bifunctor3<URI> &
Alt3<URI> &
MonadThrow3<URI> &
MonadTask3<URI>
declare const alt: <R, E, A>(that: () => StateFuture<R, E, A>) => (fa: StateFuture<R, E, A>) => StateFuture<R, E, A>,
ap: <R, E, A>(fa: StateFuture<R, E, A>) => <B>(fab: StateFuture<R, E, (a: A) => B>) => StateFuture<R, E, B>,
apFirst: <R, E, B>(fb: StateFuture<R, E, B>) => <A>(fa: StateFuture<R, E, A>) => StateFuture<R, E, A>,
apSecond: <R, E, B>(fb: StateFuture<R, E, B>) => <A>(fa: StateFuture<R, E, A>) => StateFuture<R, E, B>,
bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fa: StateFuture<R, E, A>) => StateFuture<R, G, B>,
chain: <R, E, A, B>(f: (a: A) => StateFuture<R, E, B>) => (ma: StateFuture<R, E, A>) => StateFuture<R, E, B>,
chainFirst: <R, E, A, B>(f: (a: A) => StateFuture<R, E, B>) => (ma: StateFuture<R, E, A>) => StateFuture<R, E, A>,
flatten: <R, E, A>(mma: StateFuture<R, E, StateFuture<R, E, A>>) => StateFuture<R, E, A>,
map: <A, B>(f: (a: A) => B) => <R, E>(fa: StateFuture<R, E, A>) => StateFuture<R, E, B>,
mapLeft: <E, G>(f: (e: E) => G) => <R, A>(fa: StateFuture<R, E, A>) => StateFuture<R, G, A>,
filterOrElse: {
<E, A, B extends A>(refinement: import('fp-ts/lib/function').Refinement<A, B>, onFalse: (a: A) => E): <R>(
ma: StateFuture<R, E, A>
) => StateFuture<R, E, B>
<E_1, A_1>(predicate: import('fp-ts/lib/function').Predicate<A_1>, onFalse: (a: A_1) => E_1): <R_1>(
ma: StateFuture<R_1, E_1, A_1>
) => StateFuture<R_1, E_1, A_1>
},
fromEither: <R, E, A>(ma: E.Either<E, A>) => StateFuture<R, E, A>,
fromOption: <E>(onNone: () => E) => <R, A>(ma: import('fp-ts/lib/Option').Option<A>) => StateFuture<R, E, A>,
fromPredicate: {
<E, A, B extends A>(refinement: import('fp-ts/lib/function').Refinement<A, B>, onFalse: (a: A) => E): <U>(
a: A
) => StateFuture<U, E, B>
<E_1, A_1>(predicate: import('fp-ts/lib/function').Predicate<A_1>, onFalse: (a: A_1) => E_1): <R>(
a: A_1
) => StateFuture<R, E_1, A_1>
}
export {
/**
* @since 0.6.5
*/
alt,
/**
* @since 0.6.5
*/
ap,
/**
* @since 0.6.5
*/
apFirst,
/**
* @since 0.6.5
*/
apSecond,
/**
* @since 0.6.5
*/
bimap,
/**
* @since 0.6.5
*/
chain,
/**
* @since 0.6.5
*/
chainFirst,
/**
* @since 0.6.5
*/
flatten,
/**
* @since 0.6.5
*/
map,
/**
* @since 0.6.5
*/
mapLeft,
/**
* @since 0.6.5
*/
filterOrElse,
/**
* @since 0.6.5
*/
fromEither,
/**
* @since 0.6.5
*/
fromOption,
/**
* @since 0.6.5
*/
fromPredicate
}