proxi-map
A lightweight JavaScript library to create variants of an object by using its immutable proxy.
Install
npm install proxi-map
Usage
import Imap from 'proxi-map';
const data = {
category1: {
activeProducts: 2,
products: [
{ name: 'product11', active: false },
{ name: 'product12', active: true },
{ name: 'product13', active: true },
],
},
category2: {
activeProducts: 2,
products: [
{ name: 'product21', active: true },
{ name: 'product22', active: true },
],
},
};
const newData = Imap(data)
.category1
.activeProducts(3)
.backtrack(-1)
.products[0].active(true)
.unwrap();
console.log(newData.category1);
console.log(
data == newData,
data.category1 == newData.category1,
data.category2 == newData.category2
);
Usage with Ramda
npm install ramda
import Imap from 'proxi-map';
import * as R from 'ramda';
const newData = Imap(data)
.category1
.products(R.filter(R.prop('active')))
.unwrap();
console.log(newData.category1);