Skip to content

Repository files navigation

is-data-descriptor Version Badge

github actionscoverageLicenseDownloads

npm badge

Returns true if a value has the characteristics of a valid JavaScript data descriptor.

Examples

true when the descriptor has valid properties with valid values. false when not an object or when the object has invalid properties.

varisDataDesc=require('is-data-descriptor');varassert=require('assert');assert.equal(true,isDataDesc({value: 'foo'}));assert.equal(true,isDataDesc({value: function(){}}));assert.equal(true,isDataDesc({value: true}));assert.equal(false,isDataDesc('a'));assert.equal(false,isDataDesc(null));assert.equal(false,isDataDesc([]));assert.equal(false,isDataDesc({value: 'foo',bar: 'baz'}));assert.equal(false,isDataDesc({value: 'foo',bar: 'baz'}));assert.equal(false,isDataDesc({value: 'foo',get: function(){}}));assert.equal(false,isDataDesc({get: function(){},value: 'foo'}));assert.equal(false,isDataDesc({value: 'foo',enumerable: 'foo'}));assert.equal(false,isDataDesc({value: 'foo',configurable: 'foo'}));assert.equal(false,isDataDesc({value: 'foo',writable: 'foo'}));

Valid properties

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).

varfoo={};Object.defineProperty(foo,'bar',{enumerable: true,whatever: 'blah',// invalid, but doesn't cause an errorget(){return'baz';}});assert.equal(foo.bar,'baz');

Related projects

  • is-accessor-descriptor: Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
  • is-descriptor: Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… more

Tests

Simply clone the repo, npm install, and run npm test

About

Returns true if a value has the characteristics of a valid JavaScript data descriptor.

Resources

Code of conduct

Contributing

Security policy

Stars

21 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages