Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/loud-rejection
Make unhandled promise rejections fail loudly instead of the default silent fail
https://github.com/sindresorhus/loud-rejection
Last synced: 6 days ago
JSON representation
Make unhandled promise rejections fail loudly instead of the default silent fail
- Host: GitHub
- URL: https://github.com/sindresorhus/loud-rejection
- Owner: sindresorhus
- License: mit
- Created: 2015-10-03T15:54:03.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2021-01-24T17:31:53.000Z (almost 4 years ago)
- Last Synced: 2024-12-04T21:34:29.692Z (8 days ago)
- Language: JavaScript
- Size: 41 KB
- Stars: 281
- Watchers: 11
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
- awesome-nodejs-cn - loud-rejection - 强制对未加处理的 promise rejections 错误给出提示 (包 / 命令行工具)
- awesome-nodejs - loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail - ★ 220 (Command-line utilities)
- awesome-node - loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail. (Packages / Command-line utilities)
- awesome-nodejs-cn - loud-rejection - 显示处理没有控制的promise rejections 失败,替代默认的静默失败方式. (目录 / 命令行工具)
README
# loud-rejection
> 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.**
Not needed in the browser as unhandled rejections are shown in the console.**With [Node.js 15](https://medium.com/@nodejs/node-js-v15-0-0-is-here-deb00750f278), this package is moot as the default behavior then is to throw on unhandled rejections.**
## 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`
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)---
Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.