Skip to content

syeo/data-lens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

data-lens

Simple JavaScript implementation of data-lens

Usage

Lens = require('data-lens');

// Basic use
lens = new Lens(getter, setter);

lens.get(data); // === getter(data)
lens.set(val, data); // === setter(val, data)

// Chaining
lens1.then(lens2).get(data);
lens1.then(lens2).set(val, data);
lens1.key(key1).key(key2).index(index1).index(index2)...;

// Convenience methods
Lens.index(0).get([1,2,3]); // 1
Lens.index(0).set(3, [1,2,3]); // [3, 2, 3]

Lens.key('a').get({a: 1}); // 1
Lens.key('a').set(3, {a: 1}); // {a: 3}

Lens.path('a.b').get({a: {b: 1}}); // 1
Lens.path('a.b').set(3, {a: {b: 1}}); // {a: {b: 3}}

Lens.compose(lens1, lens2); // Equivalent to lens1.then(lens2)

About

javascript implementation of data-lens

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published