| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- /* @flow */
 - 
 - import { combineReducers } from 'redux';
 - import type { Reducer } from 'redux';
 - 
 - /**
 -  * The type of the dictionary/map which associates a reducer (function) with the
 -  * name of he Redux state property managed by the reducer.
 -  */
 - declare type NameReducerMap<S, A> = { [name: string]: Reducer<S, A> };
 - 
 - /**
 -  * A registry for Redux reducers, allowing features to register themselves
 -  * without needing to create additional inter-feature dependencies.
 -  */
 - class ReducerRegistry {
 -     _elements: NameReducerMap<*, *>;
 - 
 -     /**
 -      * Creates a ReducerRegistry instance.
 -      */
 -     constructor() {
 -         /**
 -          * The set of registered reducers, keyed based on the field each reducer
 -          * will manage.
 -          *
 -          * @private
 -          * @type {NameReducerMap}
 -          */
 -         this._elements = {};
 -     }
 - 
 -     /**
 -      * Combines all registered reducers into a single reducing function.
 -      *
 -      * @param {Object} [additional={}] - Any additional reducers that need to be
 -      * included (such as reducers from third-party modules).
 -      * @returns {Function}
 -      */
 -     combineReducers(additional: NameReducerMap<*, *> = {}) {
 -         return combineReducers({
 -             ...this._elements,
 -             ...additional
 -         });
 -     }
 - 
 -     /**
 -      * Adds a reducer to the registry.
 -      *
 -      * The method is to be invoked only before {@link #combineReducers()}.
 -      *
 -      * @param {string} name - The field in the state object that will be managed
 -      * by the provided reducer.
 -      * @param {Reducer} reducer - A Redux reducer.
 -      * @returns {void}
 -      */
 -     register(name: string, reducer: Reducer<*, *>) {
 -         this._elements[name] = reducer;
 -     }
 - }
 - 
 - /**
 -  * The public singleton instance of the ReducerRegistry class.
 -  */
 - export default new ReducerRegistry();
 
 
  |