BE-SPAN/node_modules/dottie
githubna-ilham 722cd440e8 first commit
2024-10-20 22:04:16 +07:00
..
benchmark first commit 2024-10-20 22:04:16 +07:00
test first commit 2024-10-20 22:04:16 +07:00
.npmignore first commit 2024-10-20 22:04:16 +07:00
.travis.yml first commit 2024-10-20 22:04:16 +07:00
dottie.js first commit 2024-10-20 22:04:16 +07:00
LICENSE first commit 2024-10-20 22:04:16 +07:00
package.json first commit 2024-10-20 22:04:16 +07:00
README.md first commit 2024-10-20 22:04:16 +07:00

Build Status

Install

npm install dottie

Usage

For detailed usage, check source or tests.

Get value

Gets nested value, or undefined if unreachable, or a default value if passed.

var values = {
  some: {
    nested: {
        key: 'foobar';
    }
  },
  'some.dot.included': {
    key: 'barfoo'
  }
}

dottie.get(values, 'some.nested.key'); // returns 'foobar'
dottie.get(values, 'some.undefined.key'); // returns undefined
dottie.get(values, 'some.undefined.key', 'defaultval'); // returns 'defaultval'
dottie.get(values, ['some.dot.included', 'key']); // returns 'barfoo'

Set value

Sets nested value, creates nested structure if needed

dottie.set(values, 'some.nested.value', someValue);
dottie.set(values, ['some.dot.included', 'value'], someValue);

Transform object

Transform object from keys with dottie notation to nested objects

var values = {
  'user.name': 'Gummy Bear',
  'user.email': 'gummybear@candymountain.com',
  'user.professional.title': 'King',
  'user.professional.employer': 'Candy Mountain'
};
var transformed = dottie.transform(values);

/*
{
  user: {
    name: 'Gummy Bear',
    email: 'gummybear@candymountain.com',
    professional: {
      title: 'King',
      employer: 'Candy Mountain'
    }
  }
}
*/

With a custom delimiter

var values = {
  'user_name': 'Mick Hansen',
  'user_email': 'maker@mhansen.io'
};
var transformed = dottie.transform(values, { delimiter: '_' });

/*
{
  user: {
    name: 'Mick Hansen',
    email: 'maker@mhansen.io'
  }
}
*/

Performance

0.3.1 and up ships with dottie.memoizePath: true by default, if this causes any bugs, please try setting it to false

License

MIT