micnews / immutable-object-methods

Update plan javascript object, immutable style.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

immutable-object-methods Build Status

Update normal plain javascript object, immutable style. Simlar to how immutable.js, seamless-immutable etc does it but a lot smaller and simpler.

Installation

Download node at nodejs.org and install it, if you haven't already.

npm install immutable-object-methods --save

Usage

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);

Tests

npm install
npm test

Dependencies

Dev Dependencies

License

MIT

Generated by package-json-to-readme

About

Update plan javascript object, immutable style.


Languages

Language:JavaScript 100.0%