@typed/fp
Version:
Data Structures and Resources for fp-ts
75 lines • 2.31 kB
TypeScript
/**
* 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