Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 4 days 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 (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:54:51.000Z (about 2 years ago)
- Last Synced: 2025-01-15T19:11:26.455Z (7 days ago)
- Topics: browser, defineproperties, defineproperty, ecmascript, nodejs, object
- Language: JavaScript
- Homepage:
- Size: 3.76 MB
- Stars: 1
- Watchers: 2
- 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);
```