unwrap-value
v1.0.0
Published
Safely and quickly access deep properties
Downloads
1
Readme
unwrap-value
Safely and quickly access deep properties
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 |