@adonisjs/ace
Version:
A CLI framework for Node.js
62 lines (61 loc) • 1.73 kB
TypeScript
import { type Kernel } from '../index.ts';
/**
* The base exception handler that is used by default to handle
* Ace exceptions.
*
* You can extend this class to customize the exception rendering
* behavior.
*
* @example
* ```ts
* export class MyExceptionHandler extends ExceptionHandler {
* async render(error: unknown, kernel: Kernel<any>) {
* // Custom error handling
* await super.render(error, kernel)
* }
* }
* ```
*/
export declare class ExceptionHandler {
/**
* Enable debug mode for detailed error reporting
*/
debug: boolean;
/**
* Known error codes. For these errors, only the error message is
* reported using the logger
*/
protected knownErrorCodes: string[];
/**
* Internal set of known error codes
*/
protected internalKnownErrorCode: string[];
/**
* Logs error to stderr using logger
*
* @param error - The error object with a message property
* @param kernel - The Ace kernel instance
*/
protected logError(error: {
message: any;
} & unknown, kernel: Kernel<any>): void;
/**
* Pretty prints uncaught error in debug mode using Youch
*
* @param error - The error object to pretty print
*/
protected prettyPrintError(error: object): Promise<void>;
/**
* Renders an exception for the console with appropriate formatting
*
* @param error - The error to render
* @param kernel - The Ace kernel instance
*
* @example
* ```ts
* const handler = new ExceptionHandler()
* await handler.render(new Error('Something went wrong'), kernel)
* ```
*/
render(error: unknown, kernel: Kernel<any>): Promise<any>;
}