improx
Use immutable proxy of an object to create its variant.
Install
npm install improx
Usage
import Impr from 'improx';
const data = {
category1: {
active: true,
products: [
{ name: 'product21', active: false },
{ name: 'product22', active: true },
{ name: 'product23', active: true },
],
},
category2: {
active: true,
products: [
{ name: 'product31', active: true },
{ name: 'product32', active: true },
],
},
};
const newData = Impr.of(data)
.category1
.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 Impr from 'improx';
import * as R from 'ramda';
const newData = Impr.of(data)
.category1
.products(R.filter(R.prop('active')))
.unwrap();
console.log(newData.category1);