UNPKG

@plugjs/plug

Version:
53 lines (52 loc) 1.99 kB
/** Define a branded type for log levels */ export type Level<N extends number> = N & { __brand_log_level: never; }; /** The `TRACE` log level */ export declare const TRACE: Level<10>; /** The `DEBUG` log level */ export declare const DEBUG: Level<20>; /** The `INFO` log level */ export declare const INFO: Level<30>; /** The `NOTICE` log level (our default) */ export declare const NOTICE: Level<40>; /** The `WARN` log level */ export declare const WARN: Level<50>; /** The `ERROR` log level */ export declare const ERROR: Level<60>; /** The `OFF` log level (no logs are emitted) */ export declare const OFF: Level<9007199254740991>; /** All our known log levels */ export declare const logLevels: Readonly<{ TRACE: Level<10>; DEBUG: Level<20>; INFO: Level<30>; NOTICE: Level<40>; WARN: Level<50>; ERROR: Level<60>; OFF: Level<9007199254740991>; }>; /** The type of all our known log levels */ export type LogLevels = typeof logLevels; /** ID of each one of our log levels (upper case) */ export type LogLevelKey = keyof LogLevels; /** Canonical name of each one of our log levels (lower case) */ export type LogLevelName = Lowercase<LogLevelKey>; /** A type identifying all our log level numbers */ export type LogLevel = LogLevels[LogLevelKey]; /** The type identifying a recognized log level as a `string`. */ export type LogLevelString = LogLevelKey | LogLevelName; /** * Convert a `string` (a {@link LogLevelString}) into a {@link LogLevel}. * * If the level specified is not a {@link LogLevelString}, the {@link NOTICE} * level (our default) will be returned. */ export declare function getLevelNumber<L extends LogLevelString>(level: L): LogLevels[Uppercase<L>]; /** * Convert a `number` (a {@link LogLevel}) into a {@link LogLevelName}. * * If the level specified is not precisely a {@link LogLevel}, the * closer {@link LogLevelName} will be returned. */ export declare function getLevelName<L extends LogLevel>(level: L): LogLevelName;