@mini-rx/signal-store
Version:
Signal Store for Angular
30 lines (29 loc) • 2.01 kB
TypeScript
import { Action, ComponentStoreConfig, StateOrCallback } from '@mini-rx/common';
import { ComponentStoreLike } from './models';
export declare const globalCsConfig: {
set: (config: ComponentStoreConfig) => void;
get: () => ComponentStoreConfig | undefined;
};
export declare class ComponentStore<StateType extends object> implements ComponentStoreLike<StateType> {
private initialState;
private config?;
private readonly extensions;
private readonly hasUndoExtension;
private actionsOnQueue;
private _state;
get state(): StateType;
private updateState;
constructor(initialState: StateType, config?: ComponentStoreConfig | undefined);
undo(action: Action): void;
setState: (stateOrCallback: StateOrCallback<StateType>, name?: string | undefined) => Action;
connect: <K extends keyof StateType, ValueType = StateType[K]>(dict: Record<K, import("rxjs").Observable<ValueType> | import("@angular/core").Signal<ValueType>>) => void;
rxEffect: <ProvidedType = void, OriginType extends unknown = import("rxjs").Observable<ProvidedType>, ObservableType = OriginType extends import("rxjs").Observable<infer A> ? A : never, ReturnType = ProvidedType | ObservableType extends void ? () => void : (observableOrValue: ObservableType | import("rxjs").Observable<ObservableType> | import("@angular/core").Signal<ObservableType>) => void>(effectFn: (origin$: OriginType) => import("rxjs").Observable<unknown>) => ReturnType;
select: {
(): import("@angular/core").Signal<StateType>;
<R>(mapFn: import("./signal-selector").SignalSelector<StateType, R>): import("@angular/core").Signal<R>;
<R_1>(mapFn: (state: StateType) => R_1): import("@angular/core").Signal<R_1>;
<KeyType extends keyof StateType>(key: KeyType): import("@angular/core").Signal<StateType[KeyType]>;
};
private destroy;
}
export declare function createComponentStore<T extends object>(initialState: T, config?: ComponentStoreConfig): ComponentStore<T>;