1 | # data-lens
|
2 | ## Simple JavaScript implementation of data-lens
|
3 |
|
4 | ### Usage
|
5 |
|
6 | ```javascript
|
7 | Lens = require('data-lens');
|
8 |
|
9 | // Basic use
|
10 | lens = new Lens(getter, setter);
|
11 |
|
12 | lens.get(data); // === getter(data)
|
13 | lens.set(val, data); // === setter(val, data)
|
14 |
|
15 | // Chaining
|
16 | lens1.then(lens2).get(data);
|
17 | lens1.then(lens2).set(val, data);
|
18 | lens1.key(key1).key(key2).index(index1).index(index2)...;
|
19 |
|
20 | // Convenience methods
|
21 | Lens.index(0).get([1,2,3]); // 1
|
22 | Lens.index(0).set(3, [1,2,3]); // [3, 2, 3]
|
23 |
|
24 | Lens.key('a').get({a: 1}); // 1
|
25 | Lens.key('a').set(3, {a: 1}); // {a: 3}
|
26 |
|
27 | Lens.path('a.b').get({a: {b: 1}}); // 1
|
28 | Lens.path('a.b').set(3, {a: {b: 1}}); // {a: {b: 3}}
|
29 |
|
30 | Lens.compose(lens1, lens2); // Equivalent to lens1.then(lens2)
|
31 | ``` |
\ | No newline at end of file |