UNPKG

@akala/core

Version:
119 lines (118 loc) 4.53 kB
import { Middleware, MiddlewareAsync, MiddlewareResult } from '../middlewares/shared.js'; /** * Enum representing logging levels mapped to numeric priorities * @enum {number} * @property {number} error - Highest priority error level (0) * @property {number} warn - Warning level (1) * @property {number} help - Help information (2) * @property {number} data - Data tracing (3) * @property {number} info - General information (4) * @property {number} debug - Debug-level messages (5) * @property {number} prompt - Prompt messages (6) * @property {number} verbose - Verbose output (7) * @property {number} input - Input tracing (8) * @property {number} silly - Lowest priority tracing (9) */ export declare enum LogLevels { error = 0, warn = 1, help = 2, data = 3, info = 4, debug = 5, prompt = 6, verbose = 7, input = 8, silly = 9 } export interface LogContext { level: LogLevels; namespaces: string[]; message: string; values: unknown[]; } export interface ILogMiddleware extends Middleware<[LogLevels, string[], ...unknown[]]> { shouldHandle(logLevel: LogLevels, namespaces: string[]): boolean; } export interface ILogMiddlewareAsync extends MiddlewareAsync<[LogLevels, string[], ...unknown[]]> { shouldHandle(logLevel: LogLevels, namespaces: string[]): boolean; } export type ILogger<TLogger = ILogMiddleware> = { [key in Exclude<keyof typeof LogLevels, number>]: TLogger; }; export type ILoggerAsync = ILogger<ILogMiddlewareAsync>; export declare class LoggerAdapterMiddleware<TLogger extends ILogger | ILoggerAsync> { private readonly logger; constructor(logger: TLogger); handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): TLogger extends ILoggerAsync ? Promise<MiddlewareResult> : MiddlewareResult; } export declare const logConfig: { defaultLevel: LogLevels; namespaceConfig: LogConfig; }; export declare function configureLogging(config: { defaultLevel?: LogLevels; namespaceConfig?: EasyLogConfig; }): void; type LogConfig = { [key: string]: { level?: LogLevels; } & LogConfig; }; export type EasyLogConfig = { [key: string]: LogLevels | EasyLogConfig; }; export declare class LoggerMiddleware<TLogger extends ILogMiddleware | ILogMiddlewareAsync> { private readonly logger; readonly logLevel: LogLevels; readonly namespace: string; constructor(logger: TLogger['handle'] | ((...args: Parameters<TLogger['handle']>) => void), logLevel: LogLevels, namespace: string); handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): Promise<MiddlewareResult>; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): MiddlewareResult; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): TLogger extends ILogMiddlewareAsync ? Promise<MiddlewareResult> : MiddlewareResult; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): Promise<MiddlewareResult> | MiddlewareResult; shouldHandle(logLevel: LogLevels, namespaces: string[]): boolean; } export declare class LogMiddlewareWrapper<TLogger extends ILogMiddleware | ILogMiddlewareAsync> { private readonly logger; readonly logLevel: LogLevels; readonly namespace: string; constructor(logger: TLogger, logLevel: LogLevels, namespace: string); handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): Promise<MiddlewareResult>; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): MiddlewareResult; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): TLogger extends ILogMiddlewareAsync ? Promise<MiddlewareResult> : MiddlewareResult; handle(logLevel: LogLevels, namespaces: string[], ...context: unknown[]): Promise<MiddlewareResult> | MiddlewareResult; shouldHandle(logLevel: LogLevels, namespaces: string[]): boolean; } export declare const emojiMap: { smile: string; thumbsup: string; heart: string; fire: string; star: string; cry: string; laugh: string; wink: string; clap: string; angry: string; shocked: string; cool: string; poop: string; party: string; thinking: string; pray: string; hug: string; ok: string; eyes: string; grin: string; sleepy: string; kiss: string; celebration: string; check: string; cross: string; question: string; wave: string; rocket: string; 100: string; }; export {};