-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexample.js
38 lines (29 loc) · 937 Bytes
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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);