ngrx-immer
Version:
Immer wrappers around NgRx methods createReducer, on, and ComponentStore
26 lines (22 loc) • 1.31 kB
TypeScript
import { Observable, Subscription } from 'rxjs';
import { ComponentStore } from '@ngrx/component-store';
import * as i0 from '@angular/core';
import { Type, Provider } from '@angular/core';
/**
* Immer wrapper around `ImmerComponentStore` to mutate state
* with `updater` and `setState`
*/
declare class ImmerComponentStore<State extends object> extends ComponentStore<State> {
constructor(defaultState?: State);
updater<ProvidedType = void, OriginType = ProvidedType, ValueType = OriginType, ReturnType = OriginType extends void ? () => void : (observableOrValue: ValueType | Observable<ValueType>) => Subscription>(updaterFn: (state: State, value: OriginType) => void | State): ReturnType;
setState(stateOrUpdaterFn: State | ((state: State) => void | State)): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ImmerComponentStore<any>, [{ optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<ImmerComponentStore<any>>;
}
/**
* @description
* Immer wrapper around `provideComponentStore()` in `@ngrx/component-store`.
* @returns the ImmerComponentStore class registered as a provider
*/
declare function provideImmerComponentStore<T extends object>(componentStoreClass: Type<ImmerComponentStore<T>>): Provider[];
export { ImmerComponentStore, provideImmerComponentStore };