UNPKG

@neosjs/timer-logger

Version:

A timer logger for NeosJS

144 lines 3.68 kB
//#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 };