class-logger
Version:
Boilerplate-free decorator-based class logging
48 lines (47 loc) • 2.1 kB
TypeScript
export interface IClassLoggerLogData {
args: any[];
className: string;
propertyName: string | symbol;
classInstance?: any;
}
export interface IClassLoggerLogResData {
result: any;
error: boolean;
}
export declare type IClassLoggerFormatterStartData = IClassLoggerLogData & {
include: IClassLoggerIncludeConfig;
};
export declare type IClassLoggerFormatterEndData = IClassLoggerFormatterStartData & IClassLoggerLogResData;
export interface IClassLoggerFormatter {
start: (data: IClassLoggerFormatterStartData) => string;
end: (data: IClassLoggerFormatterEndData) => string;
}
export interface IClassLoggerMessageConfigIncludeComplex {
start: boolean;
end: boolean;
}
export interface IClassLoggerIncludeConfig {
args: boolean | IClassLoggerMessageConfigIncludeComplex;
construct: boolean;
result: boolean;
classInstance: boolean | IClassLoggerMessageConfigIncludeComplex;
}
export declare class ClassLoggerFormatterService implements IClassLoggerFormatter {
protected readonly placeholderNotAvailable = "N/A";
protected readonly placeholderUndefined = "undefined";
start(data: IClassLoggerFormatterStartData): string;
end(data: IClassLoggerFormatterEndData): string;
protected base({ className, propertyName }: IClassLoggerFormatterStartData): string;
protected operation({ error }: IClassLoggerFormatterEndData): " -> error" | " -> done";
protected args({ args }: IClassLoggerFormatterStartData): string;
protected classInstance({ classInstance }: IClassLoggerFormatterStartData): string;
protected result({ result }: IClassLoggerFormatterEndData): string;
protected final(): string;
protected complexObjectToString(obj: any): string;
protected valueToString(val: any): string;
protected includeComplex(includeComplex: boolean | IClassLoggerMessageConfigIncludeComplex, type: keyof IClassLoggerMessageConfigIncludeComplex): boolean;
protected isPlainObjectOrArray(obj: object | null): boolean;
protected errorToString(error: Error & {
code?: string;
}): string;
}