@hacknlove/deepobject

1.1.6 • Public • Published

deepObject

test coverage 100% dependencies 0 minified size 1k

Because sometimes you would like to access/update an object using 'deeply.dotted.keys'

Install

npm:

npm i hacknlove/deepobject

CDN

<script src="https://cdn.jsdelivr.net/npm/@hacknlove/deepobject@1.1.6/dist/deepObject.umd.min.js"></script>

download

API

getValue(object, key) => any

Returns the value.

import { getValue } from '@hacknlove/deepobject'

const state = {
  foo: {
    bar: {
      buz: 42
    }
  }
}

getValue(state, 'foo.bar.buz') // 42

setValue(oldState, key, value) => object

returns a newState object whose value at key is value

It does not modify oldState

import { setValue } from '@hacknlove/deepobject'

const oldState = {
  foo: {
    bar: {
      buz: 42
    }
  }
}

const newState = setValue(oldState, 'foo.bar.some.new', 'new value')
/*
{
  foo: {
    bar: {
      buz: 42m
      some: {
        new: 'new value'
      }
    }
  }
}
*/

setValueUpdate(state, key, value) => undefined

Updates a state to make the value at key be value

import { setValueUpdate } from '@hacknlove/deepobject'

const state = {
  foo: {
    bar: {
      buz: 42
    }
  }
}

setValue(state, 'foo.bar.some.new', 'new value') // undefined
/* state
{
  foo: {
    bar: {
      buz: 42m
      some: {
        new: 'new value'
      }
    }
  }
}
*/

deleteValue(oldState, key) => object

returns a newState object with the key deleted

It does not modify oldState

import { deleteValue } from '@hacknlove/deepobject'

const oldState = {
  foo: {
    bar: {
      buz: 42
    }
  }
}

const newState = deleteValue(oldState, 'foo.bar')
/*
{
  "foo": {
  }
}
*/

deleteValueUpdate(state, key) => undefined

deletes key in state

import { deleteValueUpdate } from '@hacknlove/deepobject'

const state = {
  foo: {
    bar: {
      buz: 42
    }
  }
}

deleteValue(oldState, 'foo.bar') // undefined
/* state
{
  "foo": {
  }
}
*/

Readme

Keywords

Package Sidebar

Install

npm i @hacknlove/deepobject

Weekly Downloads

1

Version

1.1.6

License

ISC

Unpacked Size

14.6 kB

Total Files

8

Last publish

Collaborators

  • hacknlove