@akala/core
Version:
119 lines (118 loc) • 4.53 kB
TypeScript
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 {};