# to-primitive-x

> Converts a JavaScript object to a primitive value.

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

## Install

```sh
npm install to-primitive-x
pnpm add to-primitive-x
yarn add to-primitive-x
bun add to-primitive-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 | 2.1.2 |
| Published | 2019-08-28 |
| First published | 2017-08-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=8.11.4 |
| Dependencies | 8 |
| Unpacked size | 214.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Graham Fairweather |
| Maintainers | xotic750 |
| Keywords | toPrimitive, module, javascript, nodejs, browser |

## Links

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

## Dependencies (8)

- [is-nil-x](https://npm.io/package/is-nil-x.md) ^2.1.1
- [is-symbol](https://npm.io/package/is-symbol.md) ^1.0.2
- [is-function-x](https://npm.io/package/is-function-x.md) ^4.1.2
- [simple-call-x](https://npm.io/package/simple-call-x.md) ^1.0.3
- [is-date-object](https://npm.io/package/is-date-object.md) ^1.0.1
- [is-primitive-x](https://npm.io/package/is-primitive-x.md) ^1.0.1
- [has-symbol-support-x](https://npm.io/package/has-symbol-support-x.md) ^2.1.2
- [require-object-coercible-x](https://npm.io/package/require-object-coercible-x.md) ^2.1.1

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

- 2.1.2 (latest) — 2019-08-28
- 2.1.1 — 2019-08-20
- 2.1.0 — 2019-08-14
- 2.0.27 — 2019-07-31
- 2.0.26 — 2019-07-27
- 2.0.25 — 2019-07-27
- 2.0.24 — 2019-07-26
- 2.0.23 — 2019-07-25
- 2.0.22 — 2019-07-24
- 2.0.21 — 2019-07-24
- 2.0.20 — 2019-07-23
- 2.0.19 — 2019-07-22
- 2.0.18 — 2019-07-21
- 2.0.17 — 2019-07-19
- 2.0.16 — 2019-07-18
- … 19 more at https://npm.io/package/to-primitive-x/versions

## README

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

<a name="module_to-primitive-x"></a>

## to-primitive-x

Converts a JavaScript object to a primitive value.

<a name="exp_module_to-primitive-x--module.exports"></a>

### `module.exports(input, [prefferedtype])` ⇒ <code>string</code> \| <code>number</code> ⏏

This method converts a JavaScript object to a primitive value.
Note: When toPrimitive is called with no hint, then it generally behaves as
if the hint were Number. However, objects may over-ride this behaviour by
defining a @@toPrimitive method. Of the objects defined in this specification
only Date objects (see 20.3.4.45) and Symbol objects (see 19.4.3.4) over-ride
the default ToPrimitive behaviour. Date objects treat no hint as if the hint
were String.

**Kind**: Exported function  
**Returns**: <code>string</code> \| <code>number</code> - The converted input as a primitive.  
**Throws**:

- <code>TypeError</code> If unable to convert input to a primitive.

| Param           | Type                     | Description                            |
| --------------- | ------------------------ | -------------------------------------- |
| input           | <code>\*</code>          | The input to convert.                  |
| [prefferedtype] | <code>constructor</code> | The preffered type (String or Number). |

**Example**

```js
import toPrimitive from 'to-primitive-x';

const date = new Date(0);
console.log(toPrimitive(date)); // Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
console.log(toPrimitive(date, String)); // Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
console.log(toPrimitive(date, Number)); // 0
```

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