Nerds Pledge Magnanimously

    @onaio/redux-reducer-registry
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.9 • Public • Published

    Redux Reducer Registry

    The reducer registry enables Redux reducers to be added to the store’s reducer after the store has been created. This allows Redux modules to be loaded on-demand, without requiring all Redux modules to be bundled in the main chunk for the store to correctly initialize.

    This package was inspired by this blog post: Redux modules and code splitting.

    Installation

    yarn add @onaio/redux-reducer-registry

    How it works

    By maintaining a registry of reducers, we are able to load any reducer dynamically as and when we need it.

    The Store

    A sample registry-aware redux store with no initial state is included in this package.

    import store from '@onaio/redux-reducer-registry';

    Alternatively, you can create your own store by doing something like:

    import { getStore, combine } from '@onaio/redux-reducer-registry';
    import reducerRegistry from '@onaio/redux-reducer-registry';
    
    const initialState = {
      things: ['users', 'messages'],
      x: 1
    };
    const newStore = getStore(reducerRegistry.getReducers(), initialState);
    
    // don't forget to do this so that you add a reducer to store when it is registered
    reducerRegistry.setChangeListener(reducers => {
      newStore.replaceReducer(combine(reducers));
    });

    Registering Reducers

    This is simply:

    import reducerRegistry from 'redux-reducer-registry';
    import reducer from 'some-module/reducers/users';
    
    reducerRegistry.register('users', reducer);

    After this the users reducer should now be fully loaded and ready to go.

    Redux modules

    We highly recommend and encourage that you use redux modules.

    Keywords

    Install

    npm i @onaio/redux-reducer-registry

    DownloadsWeekly Downloads

    22

    Version

    0.0.9

    License

    Apache-2.0

    Unpacked Size

    23.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • onaio