1.1.1 • Published 1 year ago

resolve-dotstringkey v1.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

resolve-dotstringkey

NPM version NPM downloads Known Vulnerabilities

Description

This package resolves stringified dot object notation (e.g., "person.address.city") to its value.

It will be useful in parsing and matching nested properties of object (e.g., {"person.address.city": "New York"} as in MongoDB queries).

Note: use square bracket notation for array indexes and dot notation for object properties. e.g. addresses[1].city.

Installation

$ npm i resolve-dotstringkey

Usage

resolveDotStringKey(rootObject, dottedString)

  • rootObject | datatype: object | default: none | required
  • dottedString | datatype: string | default: none | required
  • returns | datatype: any

Examples:

  const resolveKey = require("resolve-dotstringkey");

  const persons = [{
    name: "John",
    age: 28,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }] 
  },
  {
    name: "Robin",
    age: 40,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 21426 41255"
    }] 
  }]
Case 1:
  resolveKey(persons, "[0].name") // returns "John"
Case 2:
  resolveKey(persons, "[0].contacts[1].address.city") // returns "New Jersey"
Case 3:
  resolveKey(persons, "[0].contacts") 

returns

  [
    {
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }
  ]
Case 4:
  resolveKey(persons) 

returns

  [{
    name: "John",
    age: 28,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }] 
  },
  {
    name: "Robin",
    age: 40,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 21426 41255"
    }] 
  }]