JSPM

nested-prop-resolver

1.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8
  • Score
    100M100P100Q50132F
  • License MIT

"This library helps you to find and get a nested property from a complex json object. It protects your code from null or undefined errors"

Package Exports

  • nested-prop-resolver

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nested-prop-resolver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Nested Prop Resolver

This library helps you to find and get a nested property from a complex json object without any runtime error. You can use this to resolve json properties from an api response.

eg:

const responseObj = {
  user: {
    name: 'Hiran'
  }
};


const officeAddress = responseObj.office.address; // This will give you a runtime error since there is no 'office' property in api response object.

So, use the 'nested-prop-resolver' to prevent runtime errors.

// With the default value
const officeAddress = resolve(responseObj, 'office.address', 'N/A'); // Output is 'N/A'. No runtime error.

// Without the default value
const officeAddress = resolve(responseObj, 'office.address'); // Output is 'undefined'. No runtime error.

// Note: Default value is optional

const userName = resolve(responseObj, 'user.name'); // Output is 'Hiran'.

Install

yarn nested-prop-resolver

or

npm install nested-prop-resolver --save

Example

import { resolve } from 'nested-prop-resolver';

// For nested props
const responseObj = {
  user: {
    name: 'Hiran'
  }
};

const name = resolve(responseObj, 'user.name'); // Output is 'Hiran'.


// For nested arrays
const responseObj = {
  users: [
    {
      name: 'Hiran'
    }
  ]
};

const name = resolve(responseObj, 'users[0].name'); // Output is 'Hiran'.


// For complex nested arrays
const responseObj = [
  {
    users: [
      {
        name: 'Hiran'
      }
    ]
  }
];

const name = resolve(responseObj, '[0].users[0].name'); // Output is 'Hiran'.


// For unpresent nested props.
const responseObj = {
  user: {
    name: 'Hiran'
  }
};

// With default value
const age = resolve(responseObj, 'user.age', 'Not Given'); // Output is 'Not Given'.

// Without default value.
const age = resolve(responseObj, 'user.age'); // Output is 'undefined'.

License

MIT © H.R. Hiran Peiris