UNPKG

3.32 kBTypeScriptView Raw
1interface PrefixTemplateOptions {
2 level: string;
3 logger: LogLevel;
4}
5type PrefixTemplateFn = (options: PrefixTemplateOptions) => string;
6interface PrefixFactoryOptions {
7 [key: string]: PrefixTemplateFn | string | undefined;
8 level?: PrefixTemplateFn;
9 name?: PrefixTemplateFn;
10 template?: string;
11 time?: PrefixTemplateFn;
12}
13declare class PrefixFactory extends MethodFactory {
14 private options;
15 constructor(logger?: LogLevel, options?: PrefixFactoryOptions);
16 interpolate(level: string): string;
17 make(methodName: string): (...args: any[]) => void;
18}
19
20type SomeLevel = number | string;
21interface LogLevelIndex {
22 [key: string]: any;
23}
24interface LogLevelOptions {
25 factory?: Factory;
26 id?: string;
27 level?: number | string;
28 name?: string;
29 prefix?: PrefixFactoryOptions;
30}
31declare class LogLevel<TLevels extends FactoryLevels = typeof defaultLevels> implements LogLevelIndex {
32 [key: string]: any;
33 name: string;
34 type: string;
35 private currentLevel;
36 private methodFactory;
37 private options;
38 constructor(options: LogLevelOptions);
39 get level(): TLevels[keyof TLevels];
40 get levels(): TLevels;
41 get factory(): Factory<TLevels>;
42 set factory(factory: Factory<TLevels>);
43 set level(logLevel: SomeLevel);
44 disable(): void;
45 enable(): void;
46}
47
48interface BindTarget {
49 [key: string]: Function;
50}
51type FactoryLevels = Record<Uppercase<string>, number> & {
52 DEBUG: number;
53 ERROR: number;
54 INFO: number;
55 SILENT: number;
56 TRACE: number;
57 WARN: number;
58};
59declare const defaultLevels: FactoryLevels;
60declare const levels: unique symbol;
61declare const instance: unique symbol;
62interface Factory<TLevels extends FactoryLevels = typeof defaultLevels> {
63 [key: string]: any;
64 bindMethod: (obj: BindTarget, methodName: string) => any;
65 distillLevel: (level: number | string) => any;
66 [instance]: LogLevel | undefined;
67 levelValid: (level: number) => boolean;
68 [levels]: TLevels;
69 levels: TLevels;
70 logger: LogLevel;
71 make: (methodName: string) => Function;
72 methods?: string[];
73 replaceMethods: (logLevel: number | string) => void;
74}
75type MethodFactoryLevels = Lowercase<keyof FactoryLevels>;
76declare class MethodFactory<TLevels extends FactoryLevels = typeof defaultLevels> implements Factory<TLevels> {
77 [instance]: LogLevel | undefined;
78 [levels]: TLevels;
79 constructor(logger?: LogLevel);
80 get levels(): TLevels;
81 get logger(): LogLevel;
82 get methods(): string[];
83 set logger(logger: LogLevel);
84 bindMethod(obj: BindTarget, methodName: string): any;
85 distillLevel(level: number | string): number | null;
86 levelValid(level: number): boolean;
87 make(methodName: string): Function;
88 replaceMethods(logLevel: number | string): void;
89}
90
91declare class DefaultLogger extends LogLevel {
92 private cache;
93 constructor();
94 get factories(): any;
95 get loggers(): Record<string, LogLevel<FactoryLevels>>;
96 create(opts: LogLevelOptions | string): LogLevel<FactoryLevels>;
97}
98declare const _default: DefaultLogger;
99
100export { Factory, FactoryLevels, LogLevel, LogLevelIndex, LogLevelOptions, MethodFactory, MethodFactoryLevels, PrefixFactory, PrefixFactoryOptions, PrefixTemplateFn, PrefixTemplateOptions, _default as default, defaultLevels };