@neosjs/timer-logger
Version:
A timer logger for NeosJS
144 lines • 3.68 kB
TypeScript
//#region src/types.d.ts
/**
* 高精度时间类型,格式为 [秒, 纳秒]
*/
type HrTime = readonly [number, number];
/**
* 计时器配置选项
*/
interface TimerLoggerOptions {
/** 是否启用计时器 */
enabled?: boolean;
}
interface TimerLoggerLog {
/** 标签 */
label: string;
/** 持续时间 */
duration: number;
/** 结束时间 */
endTime: number | string;
}
//#endregion
//#region src/BaseTimer.d.ts
/**
* 基础计时器类,用于单个计时任务
*/
declare class BaseTimerLogger {
private readonly startTime;
private endTime;
private isEnded;
constructor();
/**
* 格式化时间显示
* @param {HrTime} hr 高精度时间
* @returns 格式化后的时间字符串
*/
private static formatTime;
/**
* 计算与开始时间的差值
* @returns 时间差值
*/
private getElapsedTime;
/**
* 结束计时并输出日志
* @param {string} label 可选的标签
*/
end(label?: string): void;
/**
* 获取当前经过的时间
* @returns 格式化后的时间字符串
*/
get(): string;
/**
* 获取原始毫秒数
* @returns 毫秒数
*/
getMs(): number;
/**
* 检查计时器是否已结束
* @returns 是否已结束
*/
isTimerEnded(): boolean;
}
//#endregion
//#region src/index.d.ts
/**
* 计时器日志记录器类
* 提供多个计时器的管理功能
*/
declare class TimerLoggerClass {
private static enabled;
private static readonly timers;
private static readonly logs;
constructor(options?: TimerLoggerOptions);
/**
* 设置是否启用计时
* @param {boolean} enabled 是否启用
*/
setEnabled: (enabled: boolean) => void;
/**
* 检查是否启用
* @returns 是否启用
*/
isEnabled: () => boolean;
static fromatTimestamp(date?: any): string;
/**
* 开始计时
* @param {string} label 计时标签,如果提供则会被存储以便后续操作
* @returns 计时器实例,如果未启用则返回undefined
*/
start: (label?: string) => BaseTimerLogger | undefined;
/**
* 结束计时
* @param {string} label 计时标签
* @param {string} overrideLabel 覆盖日志标签
*/
end: (label: string, overrideLabel?: string) => number | undefined;
/**
* 获取计时结果
* @param {string} label 计时标签
* @returns 格式化后的时间字符串,如果未找到则返回undefined
*/
static get: (label: string) => string | undefined;
/**
* 获取原始毫秒数
* @param {string} label 计时标签
* @returns 毫秒数,如果未找到则返回undefined
*/
getLabelTime: (label: string) => number | undefined;
/**
* 获取所有活跃计时器的总时间
* @returns 总毫秒数
*/
getTotalTime: () => number;
/**
* 获取所有计时器日志
* @returns 计时器日志数组
*/
getLogs: () => TimerLoggerLog[];
/**
* 检查是否存在指定标签的计时器
* @param {string} label 计时标签
* @returns 是否存在
*/
static has: (label: string) => boolean;
/**
* 获取所有活跃的计时器标签
* @returns 标签数组
*/
static getActiveLabels: () => string[];
/**
* 清除指定标签的计时器
* @param {string} label 计时标签
* @returns 是否成功清除
*/
clear: (label: string) => boolean;
/**
* 清除所有计时器
*/
reset: () => void;
}
declare const timerLogger: TimerLoggerClass;
declare const createTimerLogger: (options?: TimerLoggerOptions) => TimerLoggerClass;
//#endregion
export { BaseTimerLogger, type HrTime, TimerLoggerClass, type TimerLoggerOptions, createTimerLogger, timerLogger as default };