N00b's Programming Machine

    loud-rejection
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.0 • Public • Published

    loud-rejection Build Status Coverage Status

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

    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.

    Install

    $ npm install loud-rejection
    

    Usage

    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:

    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:

    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 - Make unhandled promise rejections fail hard right away instead of the default silent fail
    • More…

    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.

    Install

    npm i loud-rejection

    DownloadsWeekly Downloads

    5,972,873

    Version

    2.2.0

    License

    MIT

    Unpacked Size

    6.31 kB

    Total Files

    7

    Last publish

    Collaborators

    • jamestalmage
    • sindresorhus