unwrap-value

1.0.0 • Public • Published

unwrap-value

Safely and quickly access deep properties

NPM version

Usage

const unwrap = require('unwrap-value');

const cat = {
	name: 'Captain Nikko',
	owner: {
		name: 'Sean',
	},
};

// Get deep properties on objects
unwrap(() => cat.name) // returns 'Captain Nikko'
unwrap(() => cat.owner.name) // returns 'sean'
unwrap(() => cat.owner.phone) // returns undefined

// With arrays
const dogs = [
	{ name: 'Leela' },
	{ name: 'Raven' }
]

unwrap(() => dogs[1].name) // returns 'Raven'
unwrap(() => dogs[3].name) // returns undefined

// without arrow functions (ugly)
unwrap(function() { return cat.owner.name }) // returns 'sean'

What it tries to solve

// We've all been here before
if (cat && cat.owner && cat.owner.address) {
	var zip = cat.owner.address.zip;
}

// with unwrap
var zip = unwrap(() => cat.owner.address.zip);

Performance

This table shows how it performs compared to the manual approach or by using the popular object-path module.

10,000 iterations

method time in ms
manual 1.046ms
unwrap-value 2.867ms
object-path 9.322ms

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i unwrap-value

      Weekly Downloads

      1

      Version

      1.0.0

      License

      MIT

      Unpacked Size

      2.63 kB

      Total Files

      4

      Last publish

      Collaborators

      • sean256