graph-reducer
v0.2.0-beta.2
Published
Something like lodash.merge() (a recursive version of Object.assign()) that specially designed for graph-stater
Downloads
16
Maintainers
Readme
Graph-Reducer
Something like lodash.merge() (a recursive version of Object.assign()
) that specially designed for graph-stater.
It additionally supports functions (in payload(s)
argument(s)) to make it possible to transform properties based on their previous states/values.
It also deeply compares the source state (source object) with the primary result (newState
), during its original process and returns an additional value (noTransform
) that shows the result of this comparison.
Installation
npm i graph-reducer
or using yarn
:
yarn add graph-reducer
Usage
import graphReducer from 'graph-reducer'
const srcState = {
a: 'a',
n: 10,
v: {c: 'c'}
}
const payload = {
a: 'A',
v: {c: 'C'},
n: n => n * 2,
}
const {newState} = graphReducer(srcState, payload)
assert.deepStrictEqual(newState, { // import assert from 'assert' // https://nodejs.org/api/assert.html
a: 'A',
n: 20,
v: {c: 'C'}
})
License
MIT © Mir-Ismaili