โคNo Punches Made

    handle-cli-error
    TypeScript icon, indicating that this package has built-in type declarations

    3.1.0ย โ€ขย Publicย โ€ขย Published
    handle-cli-error logo

    Node TypeScript Codecov Twitter Medium

    Error handler for CLI applications.

    Features

    Screenshot

    handle-cli-error screenshot

    Example

    General

    #!/usr/bin/env node
    import handleCliError from 'handle-cli-error'
    
    const cliMain = function () {
      try {
        // ...
      } catch (error) {
        handleCliError(error) // Logs `error` then exit the process
      }
    }
    
    cliMain()

    Error class-specific

    handleCliError(error, {
      classes: {
        InputError: { exitCode: 1, stack: false },
        DatabaseError: { exitCode: 2, stack: false },
        default: { exitCode: 3 },
      },
    })

    Install

    npm install handle-cli-error

    This package works in Node.js >=14.18.0. It is an ES module and must be loaded using an import or import() statement, not require().

    API

    handleCliError(error, options?)

    error any
    options Options?
    Return value: undefined

    Logs error on the console (stderr) then exits the process.

    This never throws. Invalid errors are silently normalized.

    Options

    ๐Ÿšจ exitCode

    Type: integer
    Default: 1

    Process exit code.

    Note: when passing invalid options, the exit code is always 125.

    ๐Ÿ“• stack

    Type: boolean
    Default: true

    Whether to log the error's stack trace.

    ๐Ÿ“ข props

    Type: boolean
    Default: true

    Whether to log the error's additional properties.

    ๐Ÿ”• silent

    Type: boolean
    Default: false

    Exits the process without logging anything on the console.

    ๐Ÿ–๏ธ colors

    Type: boolean
    Default: true in terminals, false otherwise

    Whether to colorize the error's message, stack trace and additional properties.

    Quoted strings in the error's message are printed in bold (for "..." and '...') and in italic (for `...`).

    โŒ icon

    Type: string
    Default: 'cross'

    Icon prepended to the error's name. The available values are listed here. Can be disabled by passing an empty string.

    ๐Ÿ’„ header

    Type: string
    Default: 'red bold'

    Color/style of the error's icon and name. The available values are listed here. Several styles can be specified by using spaces. Can be disabled by passing an empty string.

    ๐Ÿš’ timeout

    Type: integer (in milliseconds)
    Default: 5000 (5 seconds)

    The process exits gracefully: it waits for any ongoing tasks (callbacks, promises, etc.) to complete, up to a specific timeout.

    Special values:

    • 0: Exits right away, without waiting for ongoing tasks
    • Number.POSITIVE_INFINITY: Waits for ongoing tasks forever, without timing out

    ๐Ÿ’ฃ classes

    Type: object
    Default: {}

    Specify different options per error class. The object:

    • Keys are either the error.name, or "default" (used if no error.name matches)
    • Values are options objects

    Related projects

    Credits

    The logo background was created by dgim-studio.

    Support

    For any question, don't hesitate to submit an issue on GitHub.

    Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.

    Contributing

    This project was made with โค๏ธ. The simplest way to give back is by starring and sharing it online.

    If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

    If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!

    Install

    npm i handle-cli-error

    DownloadsWeekly Downloads

    8,375

    Version

    3.1.0

    License

    MIT

    Unpacked Size

    26.7 kB

    Total Files

    19

    Last publish

    Collaborators

    • ehmicky