Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
handle-cli-error
Advanced tools
Error handler for CLI applications.
#!/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()
handleCliError(error, {
classes: {
InputError: { exitCode: 1, stack: false },
DatabaseError: { exitCode: 2, stack: false },
default: { exitCode: 3 },
},
})
npm install handle-cli-error
This package is an ES module and must be loaded using
an import
or import()
statement,
not require()
.
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.
Type: integer
Default: 1
Process exit code.
Note: when passing invalid options
, the exit code is always 125
.
Type: boolean
Default: true
Whether to log the error's stack trace.
Type: boolean
Default: true
Whether to log the error's additional properties.
Type: boolean
Default: false
Exits the process without logging anything on the console.
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 `...`
).
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.
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.
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 tasksNumber.POSITIVE_INFINITY
: Waits for ongoing tasks forever, without timing
outType: object
Default: {}
Specify different options per error class. The object:
error.name
,
or "default"
(used if no error.name
matches)modern-errors
: Handle errors
like it's 2022 🔮modern-errors-cli
: Handle
errors in CLI moduleserror-custom-class
: Create
one error classerror-class-utils
: Utilities
to properly create error classeserror-serializer
: Convert
errors to/from plain objectsnormalize-exception
:
Normalize exceptions/errorsis-error-instance
: Check if
a value is an Error
instancemerge-error-cause
: Merge an
error with its cause
set-error-class
: Properly
update an error's classset-error-message
: Properly
update an error's messageset-error-props
: Properly
update an error's propertieserror-cause-polyfill
:
Polyfill error.cause
log-process-errors
: Show
some ❤ to Node.js process errorsThe logo background was created by dgim-studio.
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.
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!
3.0.1
FAQs
💣 Error handler for CLI applications 💥
The npm package handle-cli-error receives a total of 3,480 weekly downloads. As such, handle-cli-error popularity was classified as popular.
We found that handle-cli-error demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.