@reyalp/debug-utils
Version:
ts transformers for debug
68 lines (67 loc) • 2.6 kB
TypeScript
export declare enum LogLevel {
ERROR = 0,
WARN = 1,
INFO = 2,
VERBOSE = 3,
DEBUG = 4,
SILLY = 5
}
export interface LogCallChain1 {
error(...messages: unknown[]): LogCallChain2;
warn(...messages: unknown[]): LogCallChain2;
info(...messages: unknown[]): LogCallChain2;
verbose(...messages: unknown[]): LogCallChain2;
debug(...messages: unknown[]): LogCallChain2;
silly(...messages: unknown[]): LogCallChain2;
}
export interface LogCallChain2 {
trace(enabled: boolean): void;
msg(...messages: unknown[]): LogCallChain2;
dump(...exprs: unknown[]): LogCallChain2;
}
export declare class Logger implements LogCallChain1 {
readonly tags: string[];
readonly rt: LogRuntime;
private constructor();
tag(...tags: string[]): LogCallChain1;
dump(...exprs: unknown[]): LogCallChain2;
error(...messages: unknown[]): LogCallChain2;
warn(...messages: unknown[]): LogCallChain2;
info(...messages: unknown[]): LogCallChain2;
verbose(...messages: unknown[]): LogCallChain2;
debug(...messages: unknown[]): LogCallChain2;
silly(...messages: unknown[]): LogCallChain2;
extend(...args: [...tags: string[], impls: Partial<LogImpls>] | string[]): Logger;
static create(...args: [...tags: string[], impls: Partial<LogImpls>] | string[]): Logger;
}
type Location = [file: string, line: number, name: string];
type LogArgs = [ll: LogLevel, tags: string[], runtime: LogRuntime, ...Location];
export type LogFilter = (ll: LogLevel, tags: string[], runtime: LogRuntime) => boolean;
export type LogPrinter = (obj: unknown, hint: string | undefined, runtime: LogRuntime) => string;
export type LogWriter = (lines: string[], ...args: LogArgs) => void;
export type LogFormatter = (messages: string[], ...args: LogArgs) => string[];
export declare const DefaultLogFormatter: LogFormatter;
export declare const DefaultLogWriter: LogWriter;
export declare const DefaultLogFilterConfigs: {
level: LogLevel;
masks: Record<string, boolean>;
};
export declare function parseLogLevel(l: number | string): LogLevel | undefined;
export declare const DefaultLogFilter: LogFilter;
export declare const DefaultLogPrinter: LogPrinter;
export type LogImpls = typeof LoggerDefaults;
export declare const LoggerDefaults: {
filter: LogFilter;
format: LogFormatter;
inspect: LogPrinter;
write: LogWriter;
};
export type LogRuntime = typeof runtime;
declare const runtime: {
filter: LogFilter;
format: LogFormatter;
inspect: LogPrinter;
write: LogWriter;
LogLevel: typeof LogLevel;
};
export {};