{"version":3,"file":"ngrx-immer-signals.mjs","sources":["../../src/signals/index.ts","../../src/signals/ngrx-immer-signals.ts"],"sourcesContent":["import { PartialStateUpdater, patchState, WritableStateSource,  Prettify } from '@ngrx/signals';\nimport { immerReducer } from 'ngrx-immer';\n\nexport type ImmerStateUpdater<State extends object> = (state: 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>(state: WritableStateSource<State>, ...updaters: Array<Partial<Prettify<State>> | PartialStateUpdater<Prettify<State>> | ImmerStateUpdater<Prettify<State>>>): 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(state, ...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,CAAC;QACpC,IAAI,YAAY,EAAE;YACjB,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE,EAAE;SACvC;QACD,OAAO;AACR,KAAC,CAAC;AACH,CAAC;SACe,eAAe,CAAuB,KAAiC,EAAE,GAAG,QAAqH,EAAA;IAChN,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,CAAC;SAC/F;AACD,QAAA,OAAO,OAAO,CAAC;AAChB,KAAC,CAAC,CAAC;AACH,IAAA,UAAU,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC;AACrC;;ACtBA;;AAEG;;;;"}