0.3.0 • Published 3 years ago

recruit v0.3.0

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

Recruit

A general-purpose reducer.

Installation

To use Recruit with your app, install it as a dependency:

# If you use npm:
npm install recruit lodash-es

# Or if you use Yarn:
yarn add recruit lodash-es

Note that lodash-es is peer dependencies of this plugin that need to be installed separately.

Example

import { mapReducer } from 'recruit';

let state = null;

state = mapReducer(state, {type: 'set', payload: {id: 1, name: 'Recruit'}});
// {id: 1, name: 'Recruit'}

state = mapReducer(state, {type: 'merge', payload: {name: 'Sanonz', gender: 0}});
// {id: 1, name: 'Sanonz', gender: 0}
import { listReducer } from 'recruit';

let state = [];

state = mapReducer(state, {type: 'add', payload: 1});
// [1]

state = mapReducer(state, {type: 'addAll', payload: [5, 6]});
// [1, 5, 6]

state = mapReducer(state, {type: 'insert', payload: [index: 1, element: 2]});
// [1, 2, 5, 6]

state = mapReducer(state, {type: 'insertAll', payload: [index: 2, elements: [3, 4]]});
// [1, 2, 3, 4, 5, 6]

state = mapReducer(state, {type: 'remove', payload: 5});
// [1, 2, 3, 4, 6]

state = mapReducer(state, {type: 'removeAll', payload: [3, 4]});
// [1, 2, 6]

state = mapReducer(state, {type: 'replace', payload: {oldElement: 6, newElement: 3}});
// [1, 2, 3]

state = mapReducer(state, {type: 'pop');
// [1, 2]

state = mapReducer(state, {type: 'pop', payload: 0);
// [2]

state = mapReducer(state, {type: 'fill', payload: [3, 4, 5]});
// [3, 4, 5]

This is an interactive version of the code that you can play with online.

Todo List Example

Documentation

mapReducer

ActionDescription
{type: 'set', payload: x}Sets the x of the object.
{type: 'merge', payload: x}Deeply mix the properties of x into the object.

listReducer

ActionDescription
{type: 'add', payload: x}Appends the x to the end of this list.
{type: 'addAll', payload: [x]}Appends all of the elements in the x collection to the end of this list.
{type: 'insert', payload: {index: idx, element: x}}Inserts the x at the idx in this list.
{type: 'insertAll', payload: {index: idx, elements: [x]}}Inserts all of the [x] at the idx in this list.
{type: 'remove', payload: x}Removes the first occurrence of the x from this list.
{type: 'removeAll', payload: [x]}Removes from this list all of its elements that are contained in the [x].
{type: 'replace', payload: {oldElement, newElement}}Replaces each element of this list with the result of applying the operator to that element.
{type: 'pop', payload: idx}Removes element at the given idx. If no idx is specified, pop removes the last item in the list.

Issues

If you find a bug, please file an issue on our issue tracker on GitHub.

License

MIT

0.3.0

3 years ago

0.1.0

3 years ago

0.2.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.0

3 years ago

10.0.0

10 years ago