ngrx-immer
Version:
Immer wrappers around NgRx methods createReducer, on, and ComponentStore
1 lines • 1.83 kB
Source Map (JSON)
{"version":3,"file":"ngrx-immer-signals.mjs","sources":["../../src/signals/index.ts","../../src/signals/ngrx-immer-signals.ts"],"sourcesContent":["import { PartialStateUpdater, patchState, WritableStateSource } from '@ngrx/signals';\nimport { immerReducer } from 'ngrx-immer';\n\nexport type ImmerStateUpdater<State extends object> = (state: NoInfer<State>) => void;\n\nfunction toFullStateUpdater<State extends object>(updater: PartialStateUpdater<State & {}> | ImmerStateUpdater<State & {}>): (state: State) => State | void {\n\treturn (state: State) => {\n\t\tconst patchedState = updater(state);\n\t\tif (patchedState) {\n\t\t\treturn ({ ...state, ...patchedState });\n\t\t}\n\t\treturn;\n\t};\n}\nexport function immerPatchState<State extends object>(\n\tstateSource: WritableStateSource<State>, \n\t...updaters: Array<\n\t\tPartial<NoInfer<State>> | PartialStateUpdater<NoInfer<State>> | ImmerStateUpdater<State>\n\t>): void {\n\tconst immerUpdaters = updaters.map(updater => {\n\t\tif (typeof updater === 'function') {\n\t\t\treturn immerReducer(toFullStateUpdater(updater)) as unknown as PartialStateUpdater<State & {}>;\n\t\t}\n\t\treturn updater;\n\t});\n\tpatchState(stateSource, ...immerUpdaters);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAKA,SAAS,kBAAkB,CAAuB,OAAwE,EAAA;IACzH,OAAO,CAAC,KAAY,KAAI;AACvB,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,YAAY,EAAE;YACjB,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE;QACtC;QACA;AACD,IAAA,CAAC;AACF;SACgB,eAAe,CAC9B,WAAuC,EACvC,GAAG,QAEF,EAAA;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAG;AAC5C,QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AAClC,YAAA,OAAO,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAA+C;QAC/F;AACA,QAAA,OAAO,OAAO;AACf,IAAA,CAAC,CAAC;AACF,IAAA,UAAU,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC;AAC1C;;AC1BA;;AAEG;;;;"}