JSPM

define-data-property

1.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 47008486
  • Score
    100M100P100Q235106F
  • License MIT

Define a data property on an object. Will fall back to assignment in an engine without descriptors.

Package Exports

  • define-data-property
  • define-data-property/package.json

Readme

define-data-property Version Badge

github actions coverage License Downloads

npm badge

Define a data property on an object. Will fall back to assignment in an engine without descriptors.

The three non* argument can also be passed null, which will use the existing state if available.

The loose argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment.

Usage

var defineDataProperty = require('define-data-property');
var assert = require('assert');

var obj = {};
defineDataProperty(obj, 'key', 'value');
defineDataProperty(
    obj,
    'key2',
    'value',
    true, // nonEnumerable, optional
    false, // nonWritable, optional
    true, // nonConfigurable, optional
    false // loose, optional
);

assert.deepEqual(
    Object.getOwnPropertyDescriptors(obj),
    {
        key: {
            configurable: true,
            enumerable: true,
            value: 'value',
            writable: true,
        },
        key2: {
            configurable: false,
            enumerable: false,
            value: 'value',
            writable: true,
        },
    }
);