iu-ts

1.0.0 • Public • Published

iu-ts

Immutably and easily update deep nested objects

Note: This is a typescript module

This immutable object updater leaves the original object in tact and produces a new object.

It targets a specific object node and creates a new object with the particular node updated to the new value

If the node doesn't already exist, it will be created. If the node is updated to undefined / null / [] / {}, this will delete the node and any parent nodes that no longer have a child.

The first param is state - AKA the object to update

The second param is an array representing which node to target.

eg. ['lvl1', 'lvl2', 'val'] represents state.lvl1.lvl2.val

Note: the second parameter can also be a string delimted by '/' eg. 'lvl1/lvl2/val'

The third param is the value to update the node to

Example

 
import { iu } from 'iu-ts';
 
obj = {
    hi: {
        im: {
            deeply: 'nested'
        }
    }
};
 
const newObj = iu(obj, 'hi/im/deeply', { immutably : 'updated' });
 

Package Sidebar

Install

npm i iu-ts

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

4.3 kB

Total Files

4

Last publish

Collaborators

  • attack-monkey