https://github.com/xotic750/define-properties-x
Define multiple non-enumerable properties at once.
https://github.com/xotic750/define-properties-x
browser defineproperties defineproperty ecmascript nodejs object
Last synced: 8 months ago
JSON representation
Define multiple non-enumerable properties at once.
- Host: GitHub
- URL: https://github.com/xotic750/define-properties-x
- Owner: Xotic750
- License: mit
- Created: 2016-01-20T18:54:36.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:54:51.000Z (almost 3 years ago)
- Last Synced: 2025-03-10T16:39:10.740Z (9 months ago)
- Topics: browser, defineproperties, defineproperty, ecmascript, nodejs, object
- Language: JavaScript
- Homepage:
- Size: 3.76 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## define-properties-x
Define multiple non-enumerable properties at once.
**See**: [define-properties](https://www.npmjs.com/package/define-properties)
- [define-properties-x](#module_define-properties-x)
- [`.properties(object, map, [predicates])`](#module_define-properties-x.properties)
- [`.property(object, prop, value, [force])`](#module_define-properties-x.property)
### `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](#module_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**
```js
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](#module_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**
```js
import * as define from 'define-properties-x';
const myString = 'something';
define.property(obj, Symbol.iterator, function() {}, true);
define.property(obj, myString, function() {}, true);
```