UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

75 lines 2.31 kB
/** * Adapter is based on [@most/adapter](https://github.com/mostjs/adapter), and adds * some fp-ts instances. * @since 0.9.2 */ import * as MA from '@most/adapter'; import { Stream } from '@most/types'; import { Functor2 } from 'fp-ts/Functor'; import { Predicate } from 'fp-ts/Predicate'; import { Profunctor2 } from 'fp-ts/Profunctor'; import { Refinement } from 'fp-ts/Refinement'; /** * @since 0.9.2 * @category URI */ export declare const URI = "@most/adapter"; /** * @since 0.9.2 * @category URI */ export declare type URI = typeof URI; declare module 'fp-ts/HKT' { interface URItoKind2<E, A> { [URI]: Adapter<E, A>; } } /** * @since 0.9.2 * @category Model */ export declare type Adapter<A, B = A> = readonly [...MA.Adapter<A, B>]; /** * Apply a stream transformation to an Adapter * @since 0.9.2 * @category Combinator */ export declare const adapt: <A, B>(f: (stream: Stream<A>) => Stream<B>) => <C>([send, stream]: readonly [(event: C) => void, Stream<A>]) => readonly [(event: C) => void, Stream<B>]; /** * @since 0.9.2 * @category Constructor */ export declare function create<A>(): Adapter<A>; export declare function create<A, B>(f: (stream: Stream<A>) => Stream<B>): Adapter<A, B>; /** * @since 0.9.2 * @category Combinator */ export declare function local<A, B>(f: (value: A) => B): <C>([send, stream]: readonly [(event: B) => void, Stream<C>]) => readonly [(event: A) => void, Stream<C>]; /** * @since 0.9.2 * @category Combinator */ export declare function map<A, B>(f: (value: A) => B): <C>(adapter: Adapter<C, A>) => Adapter<C, B>; /** * @since 0.9.2 * @category Combinator */ export declare const promap: <B, A, C, D>(f: (value: B) => A, g: (value: C) => D) => (adapter: readonly [(event: A) => void, Stream<C>]) => readonly [(event: B) => void, Stream<D>]; /** * @since 0.9.2 * @category Combinator */ export declare function filter<A, B extends A>(f: Refinement<A, B>): <C>(adapter: Adapter<C, A>) => Adapter<C, B>; export declare function filter<A>(f: Predicate<A>): <C>(adapter: Adapter<C, A>) => Adapter<C, A>; /** * @since 0.9.2 * @category Instance */ export declare const Functor: Functor2<URI>; /** * @since 0.9.2 * @category Instance */ export declare const Profunctor: Profunctor2<URI>; //# sourceMappingURL=Adapter.d.ts.map