Immutable Update Functions
Always return a new object with updated properties in some way.
npm i iuf
;const iuf = ;
Simple Usage
const iuf = ; const obj = a: b: c: 15 b1: 20 a1: 'x' ;const newObj = iuf; console;
API
Functions
filterIn
Filter collection of items using callback function
const obj = a: b: k: 1 k: -1 k: 0 c: 'x' ;const newObj = iuf;// => { a: { b: [{ k: 1 }] }, c: 'x' };
mergeIn
Merge object into another object
const obj = a: b: c: 15 b1: 20 a1: 'x' ;const newObj = iuf;// => { a: { b: { c: 10, d: 12 }, b1: 20 }, a1: 'x' }
pushIn
Push value to an array
const obj = a: b: c: 1 2 3 b1: 20 a1: 'x' ;const newObj = iuf;// => { a: { b: { c: [1, 2, 3, 4] }, b1: 20 }, a1: 'x' }
setIn
Set value of a property
const obj = a: b: c: 15 b1: 20 a1: 'x' ;const newObj = iuf;// => { a: { b: { c: 99 }, b1: 20 }, a1: 'x' }
sliceIn
Remove an item from an array by given index
const obj = a: b: c: 1 2 3 b1: 20 a1: 'x' ;const newObj = iuf;// => { a: { b: { c: [1, 3] }, b1: 20 }, a1: 'x' }
toggleIn
Toggle boolean value to opposite.
const obj = a: b: c: false b1: 20 a1: 'x' ;const newObj = iuf;// => { a: { b: { c: true }, b1: 20 }, a1: 'x' }
updateInWith
Perform update using a callback function
const obj = a: b: c: 10 b1: 20 a1: 'x' ; { return value > 0 ? value - 5 : value + 10;}const newObj = iuf;// => { a: { b: { c: 5 }, b1: 20 }, a1: 'x' }
Roadmap
- Fix array conversion into an object.
- Add linter
- What to do with non-existant properties and paths iuf.updateIn({ a: { b: 10 } }, ['c', 'd'], 10)?
- Add withoutIn
License
MIT