redux-clerk icon indicating copy to clipboard operation
redux-clerk copied to clipboard

Redux Clerk handles the async CRUD in your Redux App

Redux Clerk

CircleCI npm package

Redux Clerk handles the async CRUD in your Redux App.

  • Provides a set of action creators for both asynchronous and synchronous actions.
  • Provides an extendable reducer.
  • Handles derived datasets and provides selectors for computing derived data.
  • Stores minimum possible state.
  • Optionally handles optimistic updates to the store.
  • State is managed and stored as an Immutable.js data structure.
// The tidy, minimal state managed by Redux Clerk.
{

  // Full data objects are only stored once and never duplicated.
  raw: {
    '123': { uid: 123, name: 'Apple' },
    '234': { uid: 234, name: 'Banana' },
    '345': { uid: 345, name: 'Peach' }
  },

  // Redux Clerk stores derived datasets as Lists of UIDs.
  instances: {
    myTypeaheadDataset: ['234', '123'],
    myTableDataset: ['345', '234'],
    myListDataset: ['123', '234', '345']
  }
}

Installation

npm install redux-clerk --save

Configuration & Docs

  • Action Creators
  • Reducer
  • Selectors

Example

An example TodoMVC using Redux Clerk is available in the example directory. To run the example:

git clone [email protected]:GetAmbassador/redux-clerk.git
cd redux-clerk
npm install
npm run build
cd example
npm install react-scripts -g
npm install
npm start

FAQ

  • How can I extend the reducer provided by Redux Clerk?
  • How does redux-clerk know how to normalize my data?
  • How do I maintain the sort order of the fetch response?
  • How do I recompute the derived companyTypeahead dataset?

License

MIT