UNPKG

ngrx-immer

Version:

Immer wrappers around NgRx methods createReducer, on, and ComponentStore

48 lines (43 loc) 1.89 kB
import * as i0 from '@angular/core'; import { Optional, Inject, Injectable } from '@angular/core'; import { ComponentStore, INITIAL_STATE_TOKEN, provideComponentStore } from '@ngrx/component-store'; import { immerReducer } from 'ngrx-immer/shared'; import { produce } from 'immer'; /** * Immer wrapper around `ImmerComponentStore` to mutate state * with `updater` and `setState` */ class ImmerComponentStore extends ComponentStore { constructor(defaultState) { super(produce(defaultState, s => s)); } updater(updaterFn) { return super.updater(immerReducer(updaterFn)); } setState(stateOrUpdaterFn) { super.setState(stateOrUpdaterFn); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ImmerComponentStore, deps: [{ token: INITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ImmerComponentStore }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ImmerComponentStore, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [INITIAL_STATE_TOKEN] }] }] }); /** * @description * Immer wrapper around `provideComponentStore()` in `@ngrx/component-store`. * @returns the ImmerComponentStore class registered as a provider */ function provideImmerComponentStore(componentStoreClass) { return provideComponentStore(componentStoreClass); } /** * Generated bundle index. Do not edit. */ export { ImmerComponentStore, provideImmerComponentStore }; //# sourceMappingURL=ngrx-immer-component-store.mjs.map