nested-prop-resolver

1.0.4 • Public • Published

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

Package Sidebar

Install

npm i nested-prop-resolver

Weekly Downloads

10

Version

1.0.4

License

MIT

Unpacked Size

7.32 kB

Total Files

12

Last publish

Collaborators

  • hiranpeiris