UNPKG

ngrx-immer

Version:

Immer wrappers around NgRx methods createReducer, on, and ComponentStore

1 lines 2.86 kB
{"version":3,"file":"ngrx-immer-component-store.mjs","sources":["../../src/component-store/immer-component-store.ts","../../src/component-store/provide-immer-component-store.ts","../../src/component-store/ngrx-immer-component-store.ts"],"sourcesContent":["import { Inject, Injectable, Optional } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ComponentStore, INITIAL_STATE_TOKEN } from '@ngrx/component-store';\n\nimport { immerReducer } from 'ngrx-immer/shared';\nimport { produce } from 'immer';\n\n/**\n * Immer wrapper around `ImmerComponentStore` to mutate state\n * with `updater` and `setState`\n */\n@Injectable()\nexport class ImmerComponentStore<\n\tState extends object\n> extends ComponentStore<State> {\n\tconstructor(@Optional() @Inject(INITIAL_STATE_TOKEN) defaultState?: State) {\n\t\tsuper(produce(defaultState, s => s));\n\t}\n\n\tupdater<\n\t\tProvidedType = void,\n\t\tOriginType = ProvidedType,\n\t\tValueType = OriginType,\n\t\tReturnType = OriginType extends void\n\t\t\t? () => void\n\t\t\t: (observableOrValue: ValueType | Observable<ValueType>) => Subscription\n\t>(updaterFn: (state: State, value: OriginType) => void | State): ReturnType {\n\t\treturn super.updater(immerReducer(updaterFn));\n\t}\n\n\tsetState(stateOrUpdaterFn: State | ((state: State) => void | State)): void {\n\t\tsuper.setState(stateOrUpdaterFn as State | ((state: State) => State));\n\t}\n}\n","import { ComponentStore, provideComponentStore } from '@ngrx/component-store';\nimport { Provider, Type } from '@angular/core';\nimport { ImmerComponentStore } from '.';\n\n/**\n * @description\n * Immer wrapper around `provideComponentStore()` in `@ngrx/component-store`.\n * @returns the ImmerComponentStore class registered as a provider\n */\nexport function provideImmerComponentStore<T extends object>(componentStoreClass: Type<ImmerComponentStore<T>>): Provider[] {\n return provideComponentStore(componentStoreClass as Type<ComponentStore<T>>);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAOA;;;AAGG;AAEG,MAAO,mBAEX,SAAQ,cAAqB,CAAA;AAC9B,IAAA,WAAA,CAAqD,YAAoB,EAAA;AACxE,QAAA,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC;AAEA,IAAA,OAAO,CAOL,SAA4D,EAAA;QAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9C;AAEA,IAAA,QAAQ,CAAC,gBAA0D,EAAA;AAClE,QAAA,KAAK,CAAC,QAAQ,CAAC,gBAAqD,CAAC;IACtE;AApBY,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAGC,mBAAmB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAHvC,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;0BAIa;;0BAAY,MAAM;2BAAC,mBAAmB;;;ACXpD;;;;AAIG;AACG,SAAU,0BAA0B,CAAmB,mBAAiD,EAAA;AAC1G,IAAA,OAAO,qBAAqB,CAAC,mBAA8C,CAAC;AAChF;;ACXA;;AAEG;;;;"}