0.0.1 • Published 3 years ago

@rahazad/payload-reducer v0.0.1

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

Payload-Reducer

Something like lodash.merge() (a recursive version of Object.assign()) that specially designed for roudex. It especially supports functions to make it possible to transform properties based on them previous states/values.

Installation

npm i @rahazad/payload-reducer

or using yarn:

yarn add @rahazad/payload-reducer

Usage

import payloadReducer from '@rahazad/payload-reducer'

const srcState = {
    a: 'a',
    n: 10,
    v: {c: 'c'}
}

const payloads = [
    {
        a: 'A',
        v: {c: 'C'}
    },
    {
        n: n => n * 2
    },
]

const {newState} = payloadReducer(srcState, ...payloads)

assert.deepStrictEqual(newState, {  // import assert from 'assert' // https://nodejs.org/api/assert.html
    a: 'A',
    n: 20,
    v: {c: 'C'}
})

License

MIT © Mir-Ismaili