define-properties-x

Define multiple non-enumerable properties at once.

Usage no npm install needed!

<script type="module">
  import definePropertiesX from 'https://cdn.skypack.dev/define-properties-x';
</script>

README

Travis status Dependency status devDependency status npm version jsDelivr hits bettercodehub score Coverage Status

define-properties-x

Define multiple non-enumerable properties at once.

See: define-properties

define-properties-x.properties(object, map, [predicates])

Define multiple non-enumerable properties at once. Uses Object.defineProperty when available; falls back to standard assignment in older engines. Existing properties are not overridden. Accepts a map of property names to a predicate that, when true, force-overrides.

Kind: static method of define-properties-x

Param Type Description
object Object The object on which to define the property.
map Object The object of properties.
[predicates] Object The object of property predicates.

Example

import * as define from 'define-properties-x';

define.properties(
  {
    a: 1,
    b: 2,
  },
  {
    a: function() {
      return false;
    },
    b: function() {
      return true;
    },
  },
);

define-properties-x.property(object, prop, value, [force])

Just like properties but for defining a single non-enumerable property. Useful in environments that do not support Computed property names. This can be done with properties, but this method can read a little cleaner.

Kind: static method of define-properties-x

Param Type Default Description
object Object The object on which to define the property.
prop string | Symbol The property name.
value * The value of the property.
[force] boolean false If true then set property regardless.

Example

import * as define from 'define-properties-x';

const myString = 'something';
define.property(obj, Symbol.iterator, function() {}, true);
define.property(obj, myString, function() {}, true);