ayanami
Version:
A better way to react with state
33 lines (32 loc) • 1.35 kB
TypeScript
import { Subject, Subscription } from 'rxjs';
import { EffectAction, OriginalEffectActions, OriginalReducerActions, OriginalImmerReducerActions, OriginalDefineActions, TriggerActions, EffectActionFactories } from './types';
import { Ayanami } from './ayanami';
interface Config<State> {
nameForLog: string;
defaultState: State;
effects: OriginalEffectActions<State>;
reducers: OriginalReducerActions<State>;
immerReducers: OriginalImmerReducerActions<State>;
defineActions: OriginalDefineActions;
effectActionFactories: EffectActionFactories;
}
export declare function combineWithIkari<S>(ayanami: Ayanami<S>): Ikari<S>;
export declare function destroyIkariFrom<S>(ayanami: Ayanami<S>): void;
export declare class Ikari<State> {
readonly ayanami: Ayanami<State>;
private readonly config;
static createAndBindAt<S>(target: Ayanami<S>, config: Config<S>): Ikari<S>;
static getFrom<S>(target: {
defaultState: S;
}): Ikari<S> | undefined;
state: import("./utils").State<State>;
effectActionFactories: EffectActionFactories;
triggerActions: TriggerActions;
subscription: Subscription;
terminate$: Subject<EffectAction | null>;
constructor(ayanami: Ayanami<State>, config: Readonly<Config<State>>);
destroy(): void;
private log;
private handleAction;
}
export {};