UNPKG

ngrx-handlers

Version:

NgRx Plugin for Generating Actions and Reducer Based on the Handler Map

25 lines 2.49 kB
/** * Merges the array of reducers into one. * * @param reducers An array of reducers for the same state slice. * @returns A reducer merged from the provided reducers. * * @example * // movies.reducer.ts * const moviesReducer = mergeReducers(moviesPageReducer, moviesEffectsReducer); * * // movies.module.ts * \@NgModule({ * imports: [StoreModule.forFeature('movies', moviesReducer)], * }) * export class MoviesModule {} * * @see combineHandlers */ export function mergeReducers(...reducers) { return (state, action) => { const reducer = reducers.find(r => r(state, action) !== state); return reducer ? reducer(state, action) : state; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtcmVkdWNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3J4LWhhbmRsZXJzL3NyYy9saWIvbWVyZ2UtcmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBUSxHQUFHLFFBQWdDO0lBQ3RFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDL0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQU0sQ0FBQztJQUNuRCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uUmVkdWNlciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuLyoqXG4gKiBNZXJnZXMgdGhlIGFycmF5IG9mIHJlZHVjZXJzIGludG8gb25lLlxuICpcbiAqIEBwYXJhbSByZWR1Y2VycyBBbiBhcnJheSBvZiByZWR1Y2VycyBmb3IgdGhlIHNhbWUgc3RhdGUgc2xpY2UuXG4gKiBAcmV0dXJucyBBIHJlZHVjZXIgbWVyZ2VkIGZyb20gdGhlIHByb3ZpZGVkIHJlZHVjZXJzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBtb3ZpZXMucmVkdWNlci50c1xuICogY29uc3QgbW92aWVzUmVkdWNlciA9IG1lcmdlUmVkdWNlcnMobW92aWVzUGFnZVJlZHVjZXIsIG1vdmllc0VmZmVjdHNSZWR1Y2VyKTtcbiAqXG4gKiAvLyBtb3ZpZXMubW9kdWxlLnRzXG4gKiBcXEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKCdtb3ZpZXMnLCBtb3ZpZXNSZWR1Y2VyKV0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE1vdmllc01vZHVsZSB7fVxuICpcbiAqIEBzZWUgY29tYmluZUhhbmRsZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVJlZHVjZXJzPFN0YXRlPiguLi5yZWR1Y2VyczogQWN0aW9uUmVkdWNlcjxTdGF0ZT5bXSk6IEFjdGlvblJlZHVjZXI8U3RhdGU+IHtcbiAgcmV0dXJuIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJzLmZpbmQociA9PiByKHN0YXRlLCBhY3Rpb24pICE9PSBzdGF0ZSk7XG4gICAgcmV0dXJuIHJlZHVjZXIgPyByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIDogc3RhdGUhO1xuICB9O1xufVxuIl19