1.0.0 • Published 6 years ago

unwrap-value v1.0.0

Weekly downloads
3
License
MIT
Repository
-
Last release
6 years ago

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

methodtime in ms
manual1.046ms
unwrap-value2.867ms
object-path9.322ms
1.0.0

6 years ago