alinea
Version:
Headless git-based CMS
37 lines (36 loc) • 940 B
TypeScript
interface Log {
args: Array<any>;
time: number;
}
export interface Report {
name: string;
duration: number;
logs: Array<Log | Report>;
}
export declare namespace Report {
function toConsole(report: Report, prefix?: string): void;
function toServerTiming(report: Report, index?: number): string;
}
export interface LoggerResult<T> {
result: T;
logger: Logger;
}
export declare class Logger {
name: string;
logs: Array<Log | Report>;
started: number;
operations: Array<Logger>;
startProgress: number | undefined;
constructor(name: string);
time(name: string, justTime?: boolean): () => void;
log(...args: Array<any>): void;
progress(message: string): void;
summary(message: string): void;
result<T>(result: Promise<T>): Promise<LoggerResult<T>>;
report(): {
name: string;
duration: number;
logs: (Log | Report)[];
};
}
export {};