0.0.8 • Published 5 years ago

@oussama-elgoumri/redux-flow v0.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

WORK IN PROGRESS

This is a dev test, do not use in production. Use this on local environments.

What is redux flow?

Redux flow introduces a pattern to handle http requests, and a Collections module that exports a set of functions to manipulate array of objects data with immutability in mind.

When to use it?

It is recommanded to use redux-flow when building large applications, that request and manipulate different sets of data.

redux-flow is built with one goal in mind which is to reduce the amount of code required to do the same tasks as much as possible without sacrificing readability or producing a learning curve.

redux-flow can show it's value, when you have multiple reducers, that perform the same tasks again and again.

redux-flow provide a handful set of utilities, to reduce the amount of code required to perform common tasks, like dispatching actions for http requests.

How does HTTP Pattern work?

This is a high overview of how redux-flow handles http requests. for more informations, please refer to the documents below.

When requesting data from an endpoint, four actions needs to be dispatched:

  1. {ACTION_TYPE}_START dispatched before sending request.
  2. {ACTION_TYPE}_FINISH dispatched after request is finished.
  3. {ACTION_TYPE}_SUCCESS dispatched when request succeeded.
  4. {ACTION_TYPE}_FAILED dispatched when request failed.

redux-flow attached 3 fields to your reducer, that get's manipulated at every stage of the request, for example, when a request is succeeded, you will have 3 fields in your state that will be set as follow:

{
	requesting: false,
	requesting_success: true,
	requesting_failed: false,
	data: [],
}

requesting can be set when you initialize your reducer to be any name you like to use, please check the documentation for more information.

redux-flow also provide a handful set of hooks that you can use to alter the default behavior of how these requests are handled.

Installation

npm i @oussama-elgoumri/redux-flow

Table of contents

  1. Handling http request
  2. Using redux-flow collections