# define-properties-x

> Define multiple non-enumerable properties at once.

Latest version **4.1.2** (published 2019-08-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install define-properties-x
pnpm add define-properties-x
yarn add define-properties-x
bun add define-properties-x
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.1.2 |
| Published | 2019-08-28 |
| First published | 2016-01-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=8.11.4 |
| Dependencies | 5 |
| Unpacked size | 468.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Graham Fairweather |
| Maintainers | xotic750 |
| Keywords | define, descriptor, property descriptor, object, Object.defineProperty, Object.defineProperties, module, javascript, nodejs, browser |

## Links

- npm: https://www.npmjs.com/package/define-properties-x
- Repository: https://github.com/Xotic750/define-properties-x
- Issues: https://github.com/Xotic750/define-properties-x/issues
- npm.io page: https://npm.io/package/define-properties-x

## Dependencies (5)

- [to-boolean-x](https://npm.io/package/to-boolean-x.md) ^2.1.1
- [is-function-x](https://npm.io/package/is-function-x.md) ^4.1.2
- [array-for-each-x](https://npm.io/package/array-for-each-x.md) ^3.1.2
- [object-define-property-x](https://npm.io/package/object-define-property-x.md) ^5.1.2
- [get-own-enumerable-keys-x](https://npm.io/package/get-own-enumerable-keys-x.md) ^2.1.2

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 4.1.2 (latest) — 2019-08-28
- 4.1.1 — 2019-08-20
- 4.1.0 — 2019-08-14
- 4.0.12 — 2019-08-05
- 4.0.11 — 2019-08-05
- 4.0.10 — 2019-07-31
- 4.0.9 — 2019-07-27
- 4.0.8 — 2019-07-26
- 4.0.7 — 2019-07-25
- 4.0.6 — 2019-07-24
- 4.0.5 — 2019-07-24
- 4.0.4 — 2019-07-22
- 4.0.3 — 2019-07-21
- 4.0.2 — 2019-07-19
- 4.0.1 — 2019-07-18
- … 19 more at https://npm.io/package/define-properties-x/versions

## README

<a
  href="https://travis-ci.org/Xotic750/define-properties-x"
  title="Travis status">
<img
  src="https://travis-ci.org/Xotic750/define-properties-x.svg?branch=master"
  alt="Travis status" height="18">
</a>
<a
  href="https://david-dm.org/Xotic750/define-properties-x"
  title="Dependency status">
<img src="https://david-dm.org/Xotic750/define-properties-x/status.svg"
  alt="Dependency status" height="18"/>
</a>
<a
  href="https://david-dm.org/Xotic750/define-properties-x?type=dev"
  title="devDependency status">
<img src="https://david-dm.org/Xotic750/define-properties-x/dev-status.svg"
  alt="devDependency status" height="18"/>
</a>
<a
  href="https://badge.fury.io/js/define-properties-x"
  title="npm version">
<img src="https://badge.fury.io/js/define-properties-x.svg"
  alt="npm version" height="18">
</a>
<a
  href="https://www.jsdelivr.com/package/npm/define-properties-x"
  title="jsDelivr hits">
<img src="https://data.jsdelivr.com/v1/package/npm/define-properties-x/badge?style=rounded"
  alt="jsDelivr hits" height="18">
</a>
<a
  href="https://bettercodehub.com/results/Xotic750/define-properties-x"
  title="bettercodehub score">
<img src="https://bettercodehub.com/edge/badge/Xotic750/define-properties-x?branch=master"
  alt="bettercodehub score" height="18">
</a>
<a
  href="https://coveralls.io/github/Xotic750/define-properties-x?branch=master"
  title="Coverage Status">
<img src="https://coveralls.io/repos/github/Xotic750/define-properties-x/badge.svg?branch=master"
  alt="Coverage Status" height="18">
</a>

<a name="module_define-properties-x"></a>

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

<a name="module_define-properties-x.properties"></a>

### `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 [<code>define-properties-x</code>](#module_define-properties-x)

| Param        | Type                | Description                                 |
| ------------ | ------------------- | ------------------------------------------- |
| object       | <code>Object</code> | The object on which to define the property. |
| map          | <code>Object</code> | The object of properties.                   |
| [predicates] | <code>Object</code> | 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;
    },
  },
);
```

<a name="module_define-properties-x.property"></a>

### `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 [<code>define-properties-x</code>](#module_define-properties-x)

| Param   | Type                                       | Default            | Description                                 |
| ------- | ------------------------------------------ | ------------------ | ------------------------------------------- |
| object  | <code>Object</code>                        |                    | The object on which to define the property. |
| prop    | <code>string</code> \| <code>Symbol</code> |                    | The property name.                          |
| value   | <code>\*</code>                            |                    | The value of the property.                  |
| [force] | <code>boolean</code>                       | <code>false</code> | 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);
```

---
_Source: https://npm.io/package/define-properties-x · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
