1.0.12 • Published 7 years ago

smart-setter v1.0.12

Weekly downloads
15
License
ISC
Repository
github
Last release
7 years ago

Install

npm install --save smart-setter

Usage

import smartSetter from 'smartSetter'

const obj1 = {
  key1: {
    key11: 'val11',
  },
  key2: {
    key21: 'val21',
  },
  key3: ['val31'],
  key4: [
    {id: 1, name: 'name1'},
    {id: 2, name: 'name2'},
  ],
  key5: [
    {id: 3, name: 'name3'},
    {id: 4, name: 'name4'},
  ],
}

const setterSpecification = {
  key1: {
    key12: 'val12',
  },
  key2: {
    _replace: {
      key22: 'val22',
    },
  },
  key3: {
    _insert: 'val32',
  },
  key4: {
    _remove: {id: 1},
    _insert: {id: 5, name: 'name5'},
  },
  key5: {
    "id=3": {
      name: "name3Updated",
      foo: "bar",
    }
  }
}

const obj2 = smart(setterSpecification)(obj1)

This results in the following new object (obj1 remains unchanged) :

{
  key1: {
    key11: 'val11',
    key12: 'val12',
  },
  key2: {
    key22: 'val22',
  },
  key3: ['val31', 'val32',],
  key4: [
    {id: 2, name: 'name2'},
    {id: 5, name: 'name5'}
  ],
  key5: [
    {id: 3, name: 'name3Updated', foo: 'bar'},
    {id: 4, name: 'name4'},
  ],
}
1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago