UNPKG

@sigi/core

Version:
24 lines (23 loc) 825 B
import { IStore, Epic, Action } from '@sigi/types'; import { ReplaySubject, Subject } from 'rxjs'; export type Reducer<S, T> = (prevState: S, Action: T) => S; export declare class Store<S> implements IStore<S> { readonly state$: ReplaySubject<S>; readonly action$: Subject<Action<unknown>>; readonly name: string; private isReady; private internalState; private readonly reducer; private readonly epic$; private actionSub; private readonly initAction; get state(): S; get ready(): boolean; constructor(name: string, reducer?: Reducer<S, Action>, epic?: Epic); setup(defaultState: S): void; addEpic(combineEpic: (prevEpic: Epic) => Epic): () => void; dispatch(action: Action): void; log(action: Action): void; dispose(): void; private subscribeAction; }