You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Pau aff9d08cee client 1 year ago
index.d.ts client 1 year ago
index.js client 1 year ago
license client 1 year ago
package.json client 1 year ago client 1 year ago

dot-prop Build Status

Get, set, or delete a property from a nested object using a dot path


$ npm install dot-prop


const dotProp = require('dot-prop');

// Getter
dotProp.get({foo: {bar: 'unicorn'}}, '');
//=> 'unicorn'

dotProp.get({foo: {bar: 'a'}}, 'foo.notDefined.deep');
//=> undefined

dotProp.get({foo: {bar: 'a'}}, 'foo.notDefined.deep', 'default value');
//=> 'default value'

dotProp.get({foo: {'': 'unicorn'}}, '\\.dot');
//=> 'unicorn'

// Setter
const object = {foo: {bar: 'a'}};
dotProp.set(object, '', 'b');
//=> {foo: {bar: 'b'}}

const foo = dotProp.set({}, '', 'c');
//=> {foo: {bar: 'c'}}

dotProp.set(object, 'foo.baz', 'x');
//=> {foo: {bar: 'b', baz: 'x'}}

// Has
dotProp.has({foo: {bar: 'unicorn'}}, '');
//=> true

// Deleter
const object = {foo: {bar: 'a'}};
dotProp.delete(object, '');
//=> {foo: {}} = {x: 'y', y: 'x'};
dotProp.delete(object, '');
//=> {foo: {bar: {y: 'x'}}}


get(object, path, defaultValue?)

set(object, path, value)

Returns the object.

has(object, path)

delete(object, path)

Returns a boolean of whether the property existed before being deleted.


Type: object

Object to get, set, or delete the path value.

You are allowed to pass in undefined as the object to the get and has functions.


Type: string

Path of the property in the object, using . to separate each nested key.

Use \\. if you have a . in the key.

The following path components are invalid and results in undefined being returned: __proto__, prototype, constructor.


Type: unknown

Value to set at path.


Type: unknown

Default value.

Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.