Skip to content

🔘 Access properties within an object, using dot-notation.

License

Notifications You must be signed in to change notification settings

eliottvincent/dotly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotly

Build Status Version Downloads

Access properties within an object, using dot-notation.

Usage

const dotly = require("dotly");

var obj = {
  a: {
    b: {
      c: "hello"
    }
  }
};
console.log(dotly.get(obj, "a.b.c"));
// 'hello'

API

Gets a value at a path within an object

get(object, path, defaultValue) returns the value at the specified path:

  • object must the object from which to get the value
  • path must be a string representing the path, using dot notation (supports wildcard with *)
  • defaultValue can be used as a default value
const { get } = require("dotly");

var obj = {
  a: {
    b: {
      c: "hello"
    },

    d: {
      c: "hello bis"
    }
  }
};

console.log(get(obj, "a"));
// {b: {c: 'hello'}}

console.log(get(obj, "a.b.c"));
// 'hello'

console.log(get(obj, "a.b.c.d"));
// undefined

console.log(get(obj, "a.b.c.d", "hallo"));
// 'hallo'

console.log(get(obj, "a.*.c"));
// [{path: 'a.b.c', value: 'hello'}, {path: 'a.d.c', value: 'hello bis'}]

Sets a value at a path within an object

set(object, path, value) sets a value at the specified path:

  • object must the object in which to set the value
  • path must be a string representing the path, using dot notation
  • value must be the value to set
const { set } = require("dotly");

var obj = {
  a: {
    b: {
      c: "hello"
    }
  }
};

set(obj, "a.b.d.e", "hallo");
console.log(obj);
// {a: {b: {c: 'hello', d: {e: 'hallo'}}}}

set(obj, "a.b", { hello: "hello" });
console.log(obj);
// {a: {b: {hello: 'hello'}}}

Removes a value at a path within an object

remove(object, path, value) removes the value at the specified path:

  • object must the object from which to remove the value
  • path must be a string representing the path, using dot notation
const { remove } = require("dotly");

var obj = {
  a: {
    b: {
      c: "hello"
    }
  }
};

console.log(obj);
// {a: {b: {c: 'hello'}}}

remove(obj, "a.b.c");
console.log(obj);
// {a: {b: {}}}

License

dotly is released under the MIT License. See the bundled LICENSE file for details.