UNPKG

ngrx-immer

Version:

Immer wrappers around NgRx methods createReducer, on, and ComponentStore

21 lines 3.08 kB
import { patchState } from '@ngrx/signals'; import { immerReducer } from 'ngrx-immer'; function toFullStateUpdater(updater) { return (state) => { const patchedState = updater(state); if (patchedState) { return ({ ...state, ...patchedState }); } return; }; } export function immerPatchState(state, ...updaters) { const immerUpdaters = updaters.map(updater => { if (typeof updater === 'function') { return immerReducer(toFullStateUpdater(updater)); } return updater; }); patchState(state, ...immerUpdaters); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lnbmFscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFVBQVUsRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUkxQyxTQUFTLGtCQUFrQixDQUF1QixPQUF3RTtJQUN6SCxPQUFPLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDdkIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPO0lBQ1IsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUNELE1BQU0sVUFBVSxlQUFlLENBQXVCLEtBQWlDLEVBQUUsR0FBRyxRQUFxSDtJQUNoTixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzVDLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbkMsT0FBTyxZQUFZLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQStDLENBQUM7UUFDaEcsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxDQUFDLEtBQUssRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWFsU3RhdGVVcGRhdGVyLCBwYXRjaFN0YXRlLCBXcml0YWJsZVN0YXRlU291cmNlLCAgUHJldHRpZnkgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGltbWVyUmVkdWNlciB9IGZyb20gJ25ncngtaW1tZXInO1xuXG5leHBvcnQgdHlwZSBJbW1lclN0YXRlVXBkYXRlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4gPSAoc3RhdGU6IFN0YXRlKSA9PiB2b2lkO1xuXG5mdW5jdGlvbiB0b0Z1bGxTdGF0ZVVwZGF0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KHVwZGF0ZXI6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8U3RhdGUgJiB7fT4gfCBJbW1lclN0YXRlVXBkYXRlcjxTdGF0ZSAmIHt9Pik6IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlIHwgdm9pZCB7XG5cdHJldHVybiAoc3RhdGU6IFN0YXRlKSA9PiB7XG5cdFx0Y29uc3QgcGF0Y2hlZFN0YXRlID0gdXBkYXRlcihzdGF0ZSk7XG5cdFx0aWYgKHBhdGNoZWRTdGF0ZSkge1xuXHRcdFx0cmV0dXJuICh7IC4uLnN0YXRlLCAuLi5wYXRjaGVkU3RhdGUgfSk7XG5cdFx0fVxuXHRcdHJldHVybjtcblx0fTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbW1lclBhdGNoU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KHN0YXRlOiBXcml0YWJsZVN0YXRlU291cmNlPFN0YXRlPiwgLi4udXBkYXRlcnM6IEFycmF5PFBhcnRpYWw8UHJldHRpZnk8U3RhdGU+PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8UHJldHRpZnk8U3RhdGU+PiB8IEltbWVyU3RhdGVVcGRhdGVyPFByZXR0aWZ5PFN0YXRlPj4+KTogdm9pZCB7XG5cdGNvbnN0IGltbWVyVXBkYXRlcnMgPSB1cGRhdGVycy5tYXAodXBkYXRlciA9PiB7XG5cdFx0aWYgKHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRyZXR1cm4gaW1tZXJSZWR1Y2VyKHRvRnVsbFN0YXRlVXBkYXRlcih1cGRhdGVyKSkgYXMgdW5rbm93biBhcyBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlICYge30+O1xuXHRcdH1cblx0XHRyZXR1cm4gdXBkYXRlcjtcblx0fSk7XG5cdHBhdGNoU3RhdGUoc3RhdGUsIC4uLmltbWVyVXBkYXRlcnMpO1xufVxuIl19