Skip to content

store2be/redux-belt

Repository files navigation

redux-belt

Build Status codecov Code Climate Inline docs npm version npm version PRs Welcome license

This library provides several highly opinionated helpers which ought to be useful while developing big apps with React, Redux and Sagas. These helpers ensure the keeping of best practices and their main goal is to reduce the amount of boilerplate introduced by Redux code, while avoiding conflict with Redux design decisions.

redux-belt uses semantic versioning. So until 1.0.0 is reached expect many breaking changes.

Here are the design-defining constraints that redux-belt introduces:

  • Redux action creators should contain no logic. This would not work with redux-thunk, but we're using redux-saga here. Your application's logic should be handled by the structure of the actions themselves, or by the final consumers of an action's payload.
  • When using an action creator, the generated action's payload should stay untouched from the moment it is created, until it reaches its destination within the app (for example when it's used in an API call, or when it's used in a reducer).
  • Action types, namespacing and action creators should all be given consistent names, and this name should only be defined in one place.

You can find a comparison with similar existing projects in our wiki. Visit the redux-belt homepage.

Our documentation is tested by InchCI

Installation

With yarn

$ yarn add redux-belt

With npm

$ npm install --save redux-belt

Wiki

  • actionsIncludingCrud: removes reducer boilerplate for common CRUD functionality.
  • actions: generates action creators and action types.
  • configureCrudReducer: make your own crudReducer that plays nice with your back-end API.
  • crudReducer: a sane default reducer to help you build CRUD applications.
  • simpleAsync: side-effects with redux-saga.
  • utils: utilities like strict to catch undefined action types in development.