UNPKG

@maddimathon/build-utilities

Version:

Opinionated utilities for easy build systems in npm projects.

179 lines 7.88 kB
/** * @since 0.1.0-alpha * * @packageDocumentation */ /*! * @maddimathon/build-utilities@0.2.0-alpha.4 * @license MIT */ import type { Objects } from '@maddimathon/utility-typescript/types'; import type { MessageMaker, node, VariableInspector } from '@maddimathon/utility-typescript/classes'; import type * as CLI from './CLI.js'; import type { Config } from './Config.js'; /** * Shape of a logging utility class to be available within the library. * * These objects probably output to the console, but could also record errors to * log files or output in any other way. * * @category Types * * @since 0.1.0-alpha */ export interface Logger { /** * Current project config. */ readonly config: Partial<Config | Config.Internal>; /** * Instance to use within/out the class. */ readonly nc: node.NodeConsole; /** * Current CLI params. */ readonly params: Partial<CLI.Params>; /** * Adds {@link VariableInspector} capabilities to the logger. */ readonly vi: Logger.VarInspect; /** * Method for printing a log message to the console. Only if * {@link CLI.Params.debug} is truthy. * * @param msg The message(s) to print to the console. * @param level Depth level for output to the console. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ debug(msg: Parameters<Logger['log']>[0], level: Parameters<Logger['log']>[1], msgArgs?: Parameters<Logger['log']>[2], timeArgs?: Parameters<Logger['log']>[3]): void; /** * Outputs the given error message to the console. * * @param msg Error message(s). * @param level Depth level for output to the console. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ error(msg: string | string[] | MessageMaker.BulkMsgs, level: number, msgArgs?: Partial<MessageMaker.BulkMsgArgs>, timeArgs?: Partial<MessageMaker.BulkMsgArgs>): void; /** * Prints a timestamped log message to the console. * * @param msg The message(s) to print to the console. * @param level Depth level for output to the console. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ log(msg: string | string[] | MessageMaker.BulkMsgs, level: number, msgArgs?: Partial<MessageMaker.BulkMsgArgs>, timeArgs?: Partial<MessageMaker.BulkMsgArgs>): void; /** * Prints a timestamped log message to the console. Only if * {@link CLI.Params.progress} is truthy. * * @param msg The message(s) to print to the console. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ progress(msg: Parameters<Logger['log']>[0], level: Parameters<Logger['log']>[1], msgArgs?: Parameters<Logger['log']>[2], timeArgs?: Parameters<Logger['log']>[3]): void; /** * Outputs the given warning message to the console. * * @param msg Warning message(s). * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ warn(msg: string | string[] | MessageMaker.BulkMsgs, level: number, msgArgs?: Partial<MessageMaker.BulkMsgArgs>, timeArgs?: Partial<MessageMaker.BulkMsgArgs>): void; /** * Method for printing a log message to the console. Only if * {@link CLI.Params.verbose} is truthy. * * @param msg The message(s) to print to the console. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ verbose(msg: Parameters<Logger['log']>[0], level: Parameters<Logger['log']>[1], msgArgs?: Parameters<Logger['log']>[2], timeArgs?: Parameters<Logger['log']>[3]): void; } /** * Type utilities for {@link Logger} classes. * * @category Types * * @since 0.1.0-alpha */ export declare namespace Logger { /** * Optional configuration for {@link Logger} classes. * * @since 0.1.0-alpha */ interface Args { /** * Colour used for colour-coding the stage. */ clr: MessageMaker.Colour; /** * Arguments passed to the {@link node.NodeConsole} constructor. */ nc: Objects.RecursivePartial<node.NodeConsole.Args>; } /** * Shape of the variable inspection utility class to be available in each * {@link Logger}. * * @see {@link VariableInspector} Used to inspect variables. * * @since 0.1.0-alpha */ interface VarInspect { /** * Prints a timestamped log message to the console. Only if * {@link CLI.Params.debug} is truthy. * * @param variable Variable to inspect. See {@link VariableInspector}. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ debug(variable: Parameters<VarInspect['log']>[0], level: Parameters<VarInspect['log']>[1], msgArgs?: Parameters<VarInspect['log']>[2], timeArgs?: Parameters<VarInspect['log']>[3]): void; /** * Prints a timestamped log message to the console. * * @param variable Variable to inspect. See {@link VariableInspector}. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ log(variable: ConstructorParameters<typeof VariableInspector>[0], level: number, msgArgs?: Partial<MessageMaker.BulkMsgArgs>, timeArgs?: Partial<MessageMaker.BulkMsgArgs>): void; /** * Prints a timestamped log message to the console. Only if * {@link CLI.Params.progress} is truthy. * * @param variable Variable to inspect. See {@link VariableInspector}. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ progress(variable: Parameters<VarInspect['log']>[0], level: Parameters<VarInspect['log']>[1], msgArgs?: Parameters<VarInspect['log']>[2], timeArgs?: Parameters<VarInspect['log']>[3]): void; /** * Outputs a default-level message of the variable. * * @param variable Variable to inspect. See {@link VariableInspector}. * @param args Override arguments for converting the variable. */ stringify(variable: ConstructorParameters<typeof VariableInspector>[0], args?: ConstructorParameters<typeof VariableInspector>[1]): string; /** * Method for printing a log message to the console. Only if * {@link CLI.Params.verbose} is truthy. * * @param variable Variable to inspect. See {@link VariableInspector}. * @param level Depth level for this message. * @param msgArgs Argument overrides for the message. * @param timeArgs Argument overrides for the message's timestamp. */ verbose(variable: Parameters<VarInspect['log']>[0], level: Parameters<VarInspect['log']>[1], msgArgs?: Parameters<VarInspect['log']>[2], timeArgs?: Parameters<VarInspect['log']>[3]): void; } } //# sourceMappingURL=Logger.d.ts.map