UNPKG

reactive-react

Version:

RR - Reactive React. A super tiny but purely reactive implementation of Flux architecture.

30 lines (29 loc) 1.27 kB
/// <reference types="rx-lite" /> /// <reference types="rx-core" /> /// <reference types="rx-core-binding" /> /// <reference types="rx-lite-aggregates" /> /// <reference types="rx-lite-backpressure" /> /// <reference types="rx-lite-coincidence" /> /// <reference types="rx-lite-experimental" /> /// <reference types="rx-lite-joinpatterns" /> /// <reference types="rx-lite-time" /> import * as Rx from 'rx'; declare type ExtractObservableGenericType<T> = T extends Rx.IObservable<infer P> ? P : any; declare type ObservableTransFunc<T> = (...args: Rx.Observable<any>[]) => Rx.IObservable<T>; declare type Action<T> = { [key in keyof T]: Rx.Observable<ExtractObservableGenericType<T[key]>>; }; declare type ActionConfig<T> = { [key in keyof T]: ObservableTransFunc<ExtractObservableGenericType<T[key]>>; }; interface IObservableStatic { createAction<T>(config: ActionConfig<T>): Action<T>; createAction<T>(names: string[], func: (...args: Rx.Observable<any>[]) => Action<T>): Action<T>; bind<T>(observableName: string, transform?: Function): (obj: T) => void; } declare const RR: { replicate(source: Rx.IObservable<any>, name?: string): any; getObservable<T>(name: string): Rx.ISubject<T>; Observable: IObservableStatic; }; export = RR;