UNPKG

ngrx-immer

Version:

Immer wrappers around NgRx methods createReducer, on, and ComponentStore

31 lines 4.11 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { ComponentStore, INITIAL_STATE_TOKEN } from '@ngrx/component-store'; import { immerReducer } from 'ngrx-immer/shared'; import { produce } from 'immer'; import * as i0 from "@angular/core"; /** * Immer wrapper around `ImmerComponentStore` to mutate state * with `updater` and `setState` */ export 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: "18.1.2", ngImport: i0, type: ImmerComponentStore, deps: [{ token: INITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ImmerComponentStore }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ImmerComponentStore, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [INITIAL_STATE_TOKEN] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tZXItY29tcG9uZW50LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudC1zdG9yZS9pbW1lci1jb21wb25lbnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLG1CQUVYLFNBQVEsY0FBcUI7SUFDOUIsWUFBcUQsWUFBb0I7UUFDeEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPLENBT0wsU0FBNEQ7UUFDN0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsZ0JBQTBEO1FBQ2xFLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQXFELENBQUMsQ0FBQztJQUN2RSxDQUFDO3VHQXBCVyxtQkFBbUIsa0JBR0MsbUJBQW1COzJHQUh2QyxtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUlHLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSwgSU5JVElBTF9TVEFURV9UT0tFTiB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5cbmltcG9ydCB7IGltbWVyUmVkdWNlciB9IGZyb20gJ25ncngtaW1tZXIvc2hhcmVkJztcbmltcG9ydCB7IHByb2R1Y2UgfSBmcm9tICdpbW1lcic7XG5cbi8qKlxuICogSW1tZXIgd3JhcHBlciBhcm91bmQgYEltbWVyQ29tcG9uZW50U3RvcmVgIHRvIG11dGF0ZSBzdGF0ZVxuICogd2l0aCBgdXBkYXRlcmAgYW5kIGBzZXRTdGF0ZWBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEltbWVyQ29tcG9uZW50U3RvcmU8XG5cdFN0YXRlIGV4dGVuZHMgb2JqZWN0XG4+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8U3RhdGU+IHtcblx0Y29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKSBkZWZhdWx0U3RhdGU/OiBTdGF0ZSkge1xuXHRcdHN1cGVyKHByb2R1Y2UoZGVmYXVsdFN0YXRlLCBzID0+IHMpKTtcblx0fVxuXG5cdHVwZGF0ZXI8XG5cdFx0UHJvdmlkZWRUeXBlID0gdm9pZCxcblx0XHRPcmlnaW5UeXBlID0gUHJvdmlkZWRUeXBlLFxuXHRcdFZhbHVlVHlwZSA9IE9yaWdpblR5cGUsXG5cdFx0UmV0dXJuVHlwZSA9IE9yaWdpblR5cGUgZXh0ZW5kcyB2b2lkXG5cdFx0XHQ/ICgpID0+IHZvaWRcblx0XHRcdDogKG9ic2VydmFibGVPclZhbHVlOiBWYWx1ZVR5cGUgfCBPYnNlcnZhYmxlPFZhbHVlVHlwZT4pID0+IFN1YnNjcmlwdGlvblxuXHQ+KHVwZGF0ZXJGbjogKHN0YXRlOiBTdGF0ZSwgdmFsdWU6IE9yaWdpblR5cGUpID0+IHZvaWQgfCBTdGF0ZSk6IFJldHVyblR5cGUge1xuXHRcdHJldHVybiBzdXBlci51cGRhdGVyKGltbWVyUmVkdWNlcih1cGRhdGVyRm4pKTtcblx0fVxuXG5cdHNldFN0YXRlKHN0YXRlT3JVcGRhdGVyRm46IFN0YXRlIHwgKChzdGF0ZTogU3RhdGUpID0+IHZvaWQgfCBTdGF0ZSkpOiB2b2lkIHtcblx0XHRzdXBlci5zZXRTdGF0ZShzdGF0ZU9yVXBkYXRlckZuIGFzIFN0YXRlIHwgKChzdGF0ZTogU3RhdGUpID0+IFN0YXRlKSk7XG5cdH1cbn1cbiJdfQ==