/**
* @description Defines the structure for output writing operations.
* @summary The OutputWriter interface provides a standardized set of methods for handling
* various types of output in a command-line interface (CLI) application. It includes
* methods for writing data, handling errors, and managing the program's exit process.
* This interface allows for consistent output handling across different parts of the application.
*
* @interface OutputWriter
* @memberOf module:utils
*/
export interface OutputWriter {
/**
* @description Handles the output of data chunks.
* @summary Processes and writes a chunk of data to the output stream.
* This method is typically used for standard output operations.
*
* @param chunk - The data to be written. Can be of any type.
* @return void
*/
data(chunk: any): void;
/**
* @description Handles error output.
* @summary Processes and writes error information to the error output stream.
* This method is used for non-critical errors or warnings.
*
* @param chunk - The error data to be written. Can be of any type.
* @return void
*/
error(chunk: any): void;
/**
* @description Handles critical errors.
* @summary Processes and writes critical error information.
* This method is used for handling and reporting Error objects.
*
* @param err - The Error object to be processed and written.
* @return void
*/
errors(err: Error): void;
/**
* @description Manages the program exit process.
* @summary Handles the termination of the program with a specified exit code.
* This method is called when the program needs to exit, either successfully or due to an error.
*
* @param code - The exit code to be used when terminating the program.
* @param logs - Array of log messages to be processed before exiting.
* @return void
*/
exit(code: number, logs: string[]): void;
}
Source