Update normal plain javascript object, immutable style. Simlar to how immutable.js, seamless-immutable etc does it but a lot smaller and simpler.
Download node at nodejs.org and install it, if you haven't already.
npm install immutable-object-methods --save
import {getIn, setIn, mergeDeep, assign, set, without, chain} from 'immutable-object-methods';
const input = {a: {b: 'c'}};
const updated = setIn(input, ['a', 'd'], 'e');
console.log(input);
console.log(updated);
const merged = mergeDeep(
{foo: 'bar'},
{beep: {boop: 4711}, foo: 'bas'}
);
console.log(merged);
// immutable assign
const assigned = assign({foo: 'bar'}, {foz: 'baz'});
console.log(assigned);
const value = getIn({a: {b: 'c'}}, ['a', 'b']);
// will print out 'c'
console.log(value);
const noneExists = getIn({}, ['a', 'b']);
// don't throw if value doesn't exists, just return undefined
console.log(noneExists === undefined);
const data = set({beep: 'boop'}, 'foo', 'bar');
console.log(data);
const beep = without({foo: 'bar'}, 'foo');
console.log(beep);
// all of these can also be used chained, like
const chained = chain({foo: 'bar'})
.set('beep', 'boop')
.without('foo')
.value;
console.log(chained);
npm install
npm test
- object-assign: ES2015
Object.assign()
ponyfill
- ava: Futuristic test runner 🚀
- babel-cli: Babel command line.
- babel-core: Babel compiler core.
- babel-preset-es2015: Babel preset for all es2015 plugins.
- package-json-to-readme: Generate a README.md from package.json contents
- semistandard: All the goodness of
feross/standard
with semicolons sprinkled on top. - snazzy: Format JavaScript Standard Style as Stylish (i.e. snazzy) output
MIT
Generated by package-json-to-readme