|
|
5 rokov pred | |
|---|---|---|
| .. | ||
| node_modules | 5 rokov pred | |
| LICENSE | 5 rokov pred | |
| README.md | 5 rokov pred | |
| index.js | 5 rokov pred | |
| package.json | 5 rokov pred | |
Returns true if a value has the characteristics of a valid JavaScript data descriptor.
Install with npm:
$ npm i is-data-descriptor --save
var isDataDesc = require('is-data-descriptor');
true when the descriptor has valid properties with valid values.
// `value` can be anything
isDataDesc({value: 'foo'})
isDataDesc({value: function() {}})
isDataDesc({value: true})
//=> true
false when not an object
isDataDesc('a')
//=> false
isDataDesc(null)
//=> false
isDataDesc([])
//=> false
false when the object has invalid properties
isDataDesc({value: 'foo', bar: 'baz'})
//=> false
isDataDesc({value: 'foo', bar: 'baz'})
//=> false
isDataDesc({value: 'foo', get: function(){}})
//=> false
isDataDesc({get: function(){}, value: 'foo'})
//=> false
false when a value is not the correct type
isDataDesc({value: 'foo', enumerable: 'foo'})
//=> false
isDataDesc({value: 'foo', configurable: 'foo'})
//=> false
isDataDesc({value: 'foo', writable: 'foo'})
//=> false
The only valid data descriptor properties are the following:
configurable (required)enumerable (required)value (optional)writable (optional)To be a valid data descriptor, either value or writable must be defined.
Invalid properties
A descriptor may have additional invalid properties (an error will not be thrown).
var foo = {};
Object.defineProperty(foo, 'bar', {
enumerable: true,
whatever: 'blah', // invalid, but doesn't cause an error
get: function() {
return 'baz';
}
});
console.log(foo.bar);
//=> 'baz'
Install dev dependencies:
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Jon Schlinkert
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb on December 28, 2015.