alistair
Version:
92 lines (90 loc) • 2.14 kB
TypeScript
type LogLevel = 'info' | 'warn' | 'error' | 'debug';
interface LoggerOptions {
backend?: Record<LogLevel, (text: string) => void>;
indentString?: string;
}
/**
* Create a new logger
* @param options Logger options
* @returns a logger instance
*/
declare function logger({ backend, indentString, }?: LoggerOptions): {
indent: (fn: () => void) => void;
/**
* Print an info message
*/
info: (...args: unknown[]) => void;
/**
* Print a success message
*/
success: (...args: unknown[]) => void;
/**
* Print a listening message
*/
listening: (...args: unknown[]) => void;
/**
* Print a debug message
*/
debug: (...args: unknown[]) => void;
/**
* Print a fatal message
*/
fatal: (...args: unknown[]) => void;
/**
* Print an error message
*/
error: (...args: unknown[]) => void;
/**
* Print a warning message
*/
warn: (...args: unknown[]) => void;
};
/**
* The default logger
*
* @example
* ```ts
* log.info('Started server')
* log.listening('on 3000')
* log.fatal(new Error('Failed to start server'))
* log.indent(() => {
* log.info('Listening for requests')
* log.success('Request received')
* log.error('Request failed', new Error('Failed to process request'))
* })
* log.warn('Server is not responding')
* log.debug('Server is responding')
* ```
*/
declare const log: {
indent: (fn: () => void) => void;
/**
* Print an info message
*/
info: (...args: unknown[]) => void;
/**
* Print a success message
*/
success: (...args: unknown[]) => void;
/**
* Print a listening message
*/
listening: (...args: unknown[]) => void;
/**
* Print a debug message
*/
debug: (...args: unknown[]) => void;
/**
* Print a fatal message
*/
fatal: (...args: unknown[]) => void;
/**
* Print an error message
*/
error: (...args: unknown[]) => void;
/**
* Print a warning message
*/
warn: (...args: unknown[]) => void;
};
export { type LogLevel, type LoggerOptions, log, logger };