# loud-rejection

> Make unhandled promise rejections fail loudly instead of the default silent fail

Latest version **2.2.0** (published 2019-09-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install loud-rejection
pnpm add loud-rejection
yarn add loud-rejection
bun add loud-rejection
```

## Health

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

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.2.0 |
| Published | 2019-09-28 |
| First published | 2015-10-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/loud-rejection) |
| Module format | CommonJS |
| Node | >=8 |
| Dependencies | 2 |
| Unpacked size | 6.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 280 |
| Author | Sindre Sorhus |
| Maintainers | jamestalmage, sindresorhus |
| Keywords | promise, promises, unhandled, uncaught, rejection, loud, fail, catch, throw, handler, exit, debug, debugging, verbose |

## Links

- npm: https://www.npmjs.com/package/loud-rejection
- Repository: https://github.com/sindresorhus/loud-rejection
- Homepage: https://github.com/sindresorhus/loud-rejection#readme
- Issues: https://github.com/sindresorhus/loud-rejection/issues
- npm.io page: https://npm.io/package/loud-rejection

## Dependencies (2)

- [signal-exit](https://npm.io/package/signal-exit.md) ^3.0.2
- [currently-unhandled](https://npm.io/package/currently-unhandled.md) ^0.4.1

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 2.2.0 (latest) — 2019-09-28
- 2.1.0 — 2019-03-31
- 2.0.0 — 2019-03-18
- 1.6.0 — 2016-07-03
- 1.5.0 — 2016-06-16
- 1.4.1 — 2016-06-04
- 1.4.0 — 2016-06-03
- 1.3.0 — 2016-02-18
- 1.2.1 — 2016-02-01
- 1.2.0 — 2015-11-13
- 1.1.0 — 2015-11-12
- 1.0.0 — 2015-10-03

## README

# loud-rejection [![Build Status](https://travis-ci.org/sindresorhus/loud-rejection.svg?branch=master)](https://travis-ci.org/sindresorhus/loud-rejection) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/loud-rejection/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/loud-rejection?branch=master)

> Make unhandled promise rejections fail loudly instead of the default [silent fail](https://gist.github.com/benjamingr/0237932cee84712951a2)

By default, promises fail silently if you don't attach a `.catch()` handler to them.

This tool keeps track of unhandled rejections globally. If any remain unhandled at the end of your process, it logs them to STDERR and exits with code 1.

Use this in top-level things like tests, CLI tools, apps, etc, **but not in reusable modules.**<br>
Not needed in the browser as unhandled rejections are shown in the console.


## Install

```
$ npm install loud-rejection
```


## Usage

```js
const loudRejection = require('loud-rejection');
const promiseFunction = require('promise-fn');

// Install the `unhandledRejection` listeners
loudRejection();

promiseFunction();
```

Without this module it's more verbose and you might even miss some that will fail silently:

```js
const promiseFunction = require('promise-fn');

function error(error) {
	console.error(error.stack);
	process.exit(1);
}

promiseFunction().catch(error);
```

### Register script

Alternatively to the above, you may simply require `loud-rejection/register` and the unhandledRejection listener will be automagically installed for you.

This is handy for ES2015 imports:

```js
import 'loud-rejection/register';
```


## API

### loudRejection([log])

#### log

Type: `Function`<br>
Default: `console.error`

Custom logging function to print the rejected promise. Receives the error stack.


## Related

- [hard-rejection](https://github.com/sindresorhus/hard-rejection) - Make unhandled promise rejections fail hard right away instead of the default silent fail
- [More…](https://github.com/sindresorhus/promise-fun)


---

<div align="center">
	<b>
		<a href="https://tidelift.com/subscription/pkg/npm-loud-rejection?utm_source=npm-loud-rejection&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
	</b>
	<br>
	<sub>
		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
	</sub>
</div>

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