ngrx-immer
Version:
Immer wrappers around NgRx methods createReducer, on, and ComponentStore
19 lines • 3.18 kB
JavaScript
import { createReducer, on, } from '@ngrx/store';
import { immerReducer } from 'ngrx-immer/shared';
/**
* Immer wrapper around `on` to mutate state
*/
export function immerOn(...args) {
const reducer = args.pop();
return on(...args, immerReducer(reducer));
}
/**
* Immer wrapper around `createReducer` to mutate state
*/
export function createImmerReducer(initialState, ...ons) {
const reducer = createReducer(initialState, ...ons);
return function reduce(state = initialState, action) {
return immerReducer(reducer)(state, action);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlOLGFBQWEsRUFHYixFQUFFLEdBQ0YsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBU2pEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FDdEIsR0FBRyxJQUFtRztJQUV0RyxNQUFNLE9BQU8sR0FBSSxJQUFJLENBQUMsR0FBRyxFQUF1QyxDQUFDO0lBQ2pFLE9BQVEsRUFBVSxDQUFDLEdBQUksSUFBd0IsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2pDLFlBQW1CLEVBQ25CLEdBQUcsR0FBK0I7SUFFbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sU0FBUyxNQUFNLENBQUMsUUFBZSxZQUFZLEVBQUUsTUFBUztRQUM1RCxPQUFPLFlBQVksQ0FBVyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFjdGlvbixcblx0UmVkdWNlclR5cGVzLFxuXHRBY3Rpb25SZWR1Y2VyLFxuXHRjcmVhdGVSZWR1Y2VyLFxuXHRBY3Rpb25DcmVhdG9yLFxuXHRBY3Rpb25UeXBlLFxuXHRvbixcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRHJhZnQgfSBmcm9tICdpbW1lcic7XG5cbmltcG9ydCB7IGltbWVyUmVkdWNlciB9IGZyb20gJ25ncngtaW1tZXIvc2hhcmVkJztcblxuLyoqXG4gKiBBbiBpbW1lciByZWR1Y2VyIHRoYXQgYWxsb3dzIGEgdm9pZCByZXR1cm5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbW1lck9uUmVkdWNlcjxTdGF0ZSwgQUMgZXh0ZW5kcyBBY3Rpb25DcmVhdG9yW10+IHtcblx0KHN0YXRlOiBEcmFmdDxTdGF0ZT4sIGFjdGlvbjogQWN0aW9uVHlwZTxBQ1tudW1iZXJdPik6IHZvaWQ7XG59XG5cbi8qKlxuICogSW1tZXIgd3JhcHBlciBhcm91bmQgYG9uYCB0byBtdXRhdGUgc3RhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltbWVyT248U3RhdGUsIENyZWF0b3JzIGV4dGVuZHMgQWN0aW9uQ3JlYXRvcltdPihcblx0Li4uYXJnczogWy4uLmNyZWF0b3JzOiBDcmVhdG9ycywgcmVkdWNlcjogSW1tZXJPblJlZHVjZXI8U3RhdGUgZXh0ZW5kcyBpbmZlciBTID8gUyA6IG5ldmVyLCBDcmVhdG9ycz5dXG4pOiBSZWR1Y2VyVHlwZXM8U3RhdGUsIENyZWF0b3JzPiB7XG5cdGNvbnN0IHJlZHVjZXIgPSAoYXJncy5wb3AoKSBhcyBGdW5jdGlvbikgYXMgQWN0aW9uUmVkdWNlcjxTdGF0ZT47XG5cdHJldHVybiAob24gYXMgYW55KSguLi4oYXJncyBhcyBBY3Rpb25DcmVhdG9yW10pLCBpbW1lclJlZHVjZXIocmVkdWNlcikpO1xufVxuXG4vKipcbiAqIEltbWVyIHdyYXBwZXIgYXJvdW5kIGBjcmVhdGVSZWR1Y2VyYCB0byBtdXRhdGUgc3RhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUltbWVyUmVkdWNlcjxTdGF0ZSwgQSBleHRlbmRzIEFjdGlvbiA9IEFjdGlvbj4oXG5cdGluaXRpYWxTdGF0ZTogU3RhdGUsXG5cdC4uLm9uczogUmVkdWNlclR5cGVzPFN0YXRlLCBhbnk+W11cbik6IEFjdGlvblJlZHVjZXI8U3RhdGUsIEE+IHtcblx0Y29uc3QgcmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoaW5pdGlhbFN0YXRlLCAuLi5vbnMpO1xuXHRyZXR1cm4gZnVuY3Rpb24gcmVkdWNlKHN0YXRlOiBTdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBBKSB7XG5cdFx0cmV0dXJuIGltbWVyUmVkdWNlcjxTdGF0ZSwgQT4ocmVkdWNlcikoc3RhdGUsIGFjdGlvbik7XG5cdH07XG59XG4iXX0=