halua 0.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,148 @@
1
+ interface Handler {
2
+ skipDeepCopyWhenSendingLog?: boolean;
3
+ level?: LogLevel;
4
+ exact?: Array<LogLevel>;
5
+ log: (log: Log) => void;
6
+ }
7
+ interface Log {
8
+ timestamp: number | string;
9
+ level: LogLevel;
10
+ leveling?: [Level, number];
11
+ args: Array<any>;
12
+ messageFormat?: string;
13
+ assertion?: boolean;
14
+ withArgs?: null | Array<any>;
15
+ }
16
+ declare enum Level {
17
+ Trace = "TRACE",
18
+ Debug = "DEBUG",
19
+ Info = "INFO",
20
+ Notice = "NOTICE",
21
+ Warn = "WARN",
22
+ Error = "ERROR",
23
+ Fatal = "FATAL"
24
+ }
25
+ type LogLevel = string;
26
+
27
+ interface HaluaOptions {
28
+ level?: LogLevel;
29
+ withArgs?: Array<any>;
30
+ messageFormat?: string;
31
+ errorPolicy?: "throw" | "pass";
32
+ }
33
+ interface HaluaLogger {
34
+ New: {
35
+ (handler: PassedHandler): HaluaLogger;
36
+ (options: HaluaOptions): HaluaLogger;
37
+ (arg1?: PassedHandler | HaluaOptions, arg2?: HaluaOptions): HaluaLogger;
38
+ };
39
+ With: (...args: any[]) => HaluaLogger;
40
+ withMessageFormat: (format: string) => HaluaLogger;
41
+ setHandler: (handler: PassedHandler) => void;
42
+ appendHandler: (handler: () => Handler) => void;
43
+ logTo: (level: LogLevel, ...args: any[]) => void;
44
+ trace: (...args: any[]) => void;
45
+ debug: (...args: any[]) => void;
46
+ info: (...args: any[]) => void;
47
+ warn: (...args: any[]) => void;
48
+ notice: (...args: any[]) => void;
49
+ error: (...args: any[]) => void;
50
+ fatal: (...args: any[]) => void;
51
+ assert: (assertion: boolean, ...args: any[]) => void;
52
+ }
53
+ type PassedHandler = (() => Handler) | Array<() => Handler>;
54
+
55
+ declare class Halua implements HaluaLogger {
56
+ private options;
57
+ private handlers;
58
+ private readonly passedHandlers;
59
+ private balancer;
60
+ constructor(passed: PassedHandler, options?: HaluaOptions);
61
+ New(arg1?: PassedHandler | HaluaOptions, arg2?: HaluaOptions | undefined): HaluaLogger;
62
+ With(...args: any[]): HaluaLogger;
63
+ withMessageFormat(f: string): HaluaLogger;
64
+ setHandler(handler: PassedHandler): void;
65
+ appendHandler(handler: () => Handler): void;
66
+ logTo(level: LogLevel, ...args: any[]): void;
67
+ trace(...args: any[]): void;
68
+ debug(...args: any[]): void;
69
+ info(...args: any[]): void;
70
+ warn(...args: any[]): void;
71
+ notice(...args: any[]): void;
72
+ error(...args: any[]): void;
73
+ fatal(...args: any[]): void;
74
+ assert(assertion: boolean, ...args: any[]): void;
75
+ private updateBalancer;
76
+ private sendToHandler;
77
+ private composeLog;
78
+ private validateHandlers;
79
+ private supposeIsHandler;
80
+ private unlinkInheritance;
81
+ private buildHandlers;
82
+ }
83
+
84
+ type ColorKey = "grey" | "green" | "blue" | "purple" | "orange" | "red";
85
+ type Colors = Map<ColorKey, string>;
86
+
87
+ interface WebConsoleLogHandler extends Handler {
88
+ setDateGetter: (getter: (timestamp: number) => string) => void;
89
+ messageFormat: Array<string>;
90
+ }
91
+ interface ConsoleLogHandlerConsole {
92
+ debug: (...args: any[]) => void;
93
+ info: (...args: any[]) => void;
94
+ warn: (...args: any[]) => void;
95
+ error: (...args: any[]) => void;
96
+ }
97
+ interface WebConsoleHandlerOptions {
98
+ /** customize date output */
99
+ dateGetter?: (timestamp: number) => string;
100
+ /** turn prettification on, adds colors to console output */
101
+ pretty?: boolean;
102
+ linkArguments?: boolean;
103
+ /** default: true, get browser theme with window.matchMedia */
104
+ fetchBrowserThemeOnInstanceCreation?: boolean;
105
+ /** provide custom colors map */
106
+ customColors?: Colors;
107
+ messageFormat?: string;
108
+ useWarn?: boolean;
109
+ useError?: boolean;
110
+ level?: LogLevel;
111
+ exact?: LogLevel | Array<LogLevel>;
112
+ }
113
+ declare function NewWebConsoleHandler(c?: ConsoleLogHandlerConsole, options?: WebConsoleHandlerOptions): () => WebConsoleLogHandler;
114
+
115
+ interface JSONLogHandler extends Handler {
116
+ setDateGetter: (getter: (timestamp: number) => string) => void;
117
+ }
118
+ interface JSONLogHandlerOptions {
119
+ /** change timestamp output */
120
+ dateGetter?: (timestamp: number) => string;
121
+ /** replace value during stringify, return null to fallback on JSONHandler replacer */
122
+ replaceBeforeStringify?: (value: any) => any;
123
+ stringifier?: (value: any, replace: (value: any) => any) => string;
124
+ linkArguments?: boolean;
125
+ level?: LogLevel;
126
+ exact?: LogLevel | Array<LogLevel>;
127
+ }
128
+ declare function NewJSONHandler(send: (data: string) => void, options?: JSONLogHandlerOptions): () => JSONLogHandler;
129
+
130
+ interface TextLogHandler extends Handler {
131
+ }
132
+ interface TextLogHandlerOptions {
133
+ linkArguments?: boolean;
134
+ dateGetter?: (t: number) => string;
135
+ /** @deprecated will be removed in version 2.0.0 */
136
+ messageFormat?: string;
137
+ /** replace value during stringify, return null to fallback on JSONHandler replacer */
138
+ replaceBeforeStringify?: (value: any) => any;
139
+ /** func to stringify a value */
140
+ stringifier?: (value: any) => string;
141
+ level?: LogLevel;
142
+ exact?: LogLevel | Array<LogLevel>;
143
+ }
144
+ declare function NewTextHandler(send: (data: string) => void, options?: TextLogHandlerOptions): () => TextLogHandler;
145
+
146
+ declare const halua: Halua;
147
+
148
+ export { type HaluaLogger, type Handler, Level, type Log, NewJSONHandler, NewTextHandler, NewWebConsoleHandler, halua };
package/lib/index.d.ts CHANGED
@@ -1,56 +1,148 @@
1
1
  interface Handler {
2
- debug: (msg: string) => void;
3
- info: (msg: string) => void;
4
- warn: (msg: string) => void;
5
- error: (msg: string) => void;
6
- }
7
- type LoggerFn = (msg: string, ...args: any[]) => void;
8
- interface Logger {
9
- debug: LoggerFn;
10
- info: LoggerFn;
11
- warn: LoggerFn;
12
- err: LoggerFn;
13
- assert: (value: boolean, msg: string, ...args: any[]) => void;
14
- setHandler: (handler: Handler) => void;
15
- setDateGetter: (getter: (() => string | number)) => void;
16
- }
17
- interface LoggerOptions {
18
- minLevel?: Level;
19
- postfix?: string;
20
- dateGetter?: (() => string | number) | null | undefined;
2
+ skipDeepCopyWhenSendingLog?: boolean;
3
+ level?: LogLevel;
4
+ exact?: Array<LogLevel>;
5
+ log: (log: Log) => void;
6
+ }
7
+ interface Log {
8
+ timestamp: number | string;
9
+ level: LogLevel;
10
+ leveling?: [Level, number];
11
+ args: Array<any>;
12
+ messageFormat?: string;
13
+ assertion?: boolean;
14
+ withArgs?: null | Array<any>;
21
15
  }
22
16
  declare enum Level {
17
+ Trace = "TRACE",
23
18
  Debug = "DEBUG",
24
19
  Info = "INFO",
20
+ Notice = "NOTICE",
25
21
  Warn = "WARN",
26
- Error = "ERR"
27
- }
28
-
29
- declare class LoggerCore implements Logger {
30
- private handler;
31
- private dateGetter;
32
- private readonly options;
33
- private readonly levelMapping;
34
- constructor(handler?: Handler | null | undefined, options?: LoggerOptions);
35
- New(handler?: Handler, options?: LoggerOptions): Logger;
36
- With(msg: string, ...args: any[]): Logger;
37
- debug(msg: string, ...args: any[]): void;
38
- info(msg: string, ...args: any[]): void;
39
- warn(msg: string, ...args: any[]): void;
40
- err(msg: string, ...args: any[]): void;
41
- assert(value: boolean, msg: string, ...args: any[]): void;
42
- setHandler(handler: Handler): void;
43
- setDateGetter(getter: () => string | number): void;
44
- private log;
45
- private composeMsgWithArgs;
46
- private formatWithLevel;
47
- private formatWithDate;
48
- private shiftValue;
49
- private appendValue;
50
- private getDateInLocaleString;
51
- private canLogByMinLevelRestriction;
52
- }
53
-
54
- declare const halua: LoggerCore;
55
-
56
- export { type Handler, Level, halua };
22
+ Error = "ERROR",
23
+ Fatal = "FATAL"
24
+ }
25
+ type LogLevel = string;
26
+
27
+ interface HaluaOptions {
28
+ level?: LogLevel;
29
+ withArgs?: Array<any>;
30
+ messageFormat?: string;
31
+ errorPolicy?: "throw" | "pass";
32
+ }
33
+ interface HaluaLogger {
34
+ New: {
35
+ (handler: PassedHandler): HaluaLogger;
36
+ (options: HaluaOptions): HaluaLogger;
37
+ (arg1?: PassedHandler | HaluaOptions, arg2?: HaluaOptions): HaluaLogger;
38
+ };
39
+ With: (...args: any[]) => HaluaLogger;
40
+ withMessageFormat: (format: string) => HaluaLogger;
41
+ setHandler: (handler: PassedHandler) => void;
42
+ appendHandler: (handler: () => Handler) => void;
43
+ logTo: (level: LogLevel, ...args: any[]) => void;
44
+ trace: (...args: any[]) => void;
45
+ debug: (...args: any[]) => void;
46
+ info: (...args: any[]) => void;
47
+ warn: (...args: any[]) => void;
48
+ notice: (...args: any[]) => void;
49
+ error: (...args: any[]) => void;
50
+ fatal: (...args: any[]) => void;
51
+ assert: (assertion: boolean, ...args: any[]) => void;
52
+ }
53
+ type PassedHandler = (() => Handler) | Array<() => Handler>;
54
+
55
+ declare class Halua implements HaluaLogger {
56
+ private options;
57
+ private handlers;
58
+ private readonly passedHandlers;
59
+ private balancer;
60
+ constructor(passed: PassedHandler, options?: HaluaOptions);
61
+ New(arg1?: PassedHandler | HaluaOptions, arg2?: HaluaOptions | undefined): HaluaLogger;
62
+ With(...args: any[]): HaluaLogger;
63
+ withMessageFormat(f: string): HaluaLogger;
64
+ setHandler(handler: PassedHandler): void;
65
+ appendHandler(handler: () => Handler): void;
66
+ logTo(level: LogLevel, ...args: any[]): void;
67
+ trace(...args: any[]): void;
68
+ debug(...args: any[]): void;
69
+ info(...args: any[]): void;
70
+ warn(...args: any[]): void;
71
+ notice(...args: any[]): void;
72
+ error(...args: any[]): void;
73
+ fatal(...args: any[]): void;
74
+ assert(assertion: boolean, ...args: any[]): void;
75
+ private updateBalancer;
76
+ private sendToHandler;
77
+ private composeLog;
78
+ private validateHandlers;
79
+ private supposeIsHandler;
80
+ private unlinkInheritance;
81
+ private buildHandlers;
82
+ }
83
+
84
+ type ColorKey = "grey" | "green" | "blue" | "purple" | "orange" | "red";
85
+ type Colors = Map<ColorKey, string>;
86
+
87
+ interface WebConsoleLogHandler extends Handler {
88
+ setDateGetter: (getter: (timestamp: number) => string) => void;
89
+ messageFormat: Array<string>;
90
+ }
91
+ interface ConsoleLogHandlerConsole {
92
+ debug: (...args: any[]) => void;
93
+ info: (...args: any[]) => void;
94
+ warn: (...args: any[]) => void;
95
+ error: (...args: any[]) => void;
96
+ }
97
+ interface WebConsoleHandlerOptions {
98
+ /** customize date output */
99
+ dateGetter?: (timestamp: number) => string;
100
+ /** turn prettification on, adds colors to console output */
101
+ pretty?: boolean;
102
+ linkArguments?: boolean;
103
+ /** default: true, get browser theme with window.matchMedia */
104
+ fetchBrowserThemeOnInstanceCreation?: boolean;
105
+ /** provide custom colors map */
106
+ customColors?: Colors;
107
+ messageFormat?: string;
108
+ useWarn?: boolean;
109
+ useError?: boolean;
110
+ level?: LogLevel;
111
+ exact?: LogLevel | Array<LogLevel>;
112
+ }
113
+ declare function NewWebConsoleHandler(c?: ConsoleLogHandlerConsole, options?: WebConsoleHandlerOptions): () => WebConsoleLogHandler;
114
+
115
+ interface JSONLogHandler extends Handler {
116
+ setDateGetter: (getter: (timestamp: number) => string) => void;
117
+ }
118
+ interface JSONLogHandlerOptions {
119
+ /** change timestamp output */
120
+ dateGetter?: (timestamp: number) => string;
121
+ /** replace value during stringify, return null to fallback on JSONHandler replacer */
122
+ replaceBeforeStringify?: (value: any) => any;
123
+ stringifier?: (value: any, replace: (value: any) => any) => string;
124
+ linkArguments?: boolean;
125
+ level?: LogLevel;
126
+ exact?: LogLevel | Array<LogLevel>;
127
+ }
128
+ declare function NewJSONHandler(send: (data: string) => void, options?: JSONLogHandlerOptions): () => JSONLogHandler;
129
+
130
+ interface TextLogHandler extends Handler {
131
+ }
132
+ interface TextLogHandlerOptions {
133
+ linkArguments?: boolean;
134
+ dateGetter?: (t: number) => string;
135
+ /** @deprecated will be removed in version 2.0.0 */
136
+ messageFormat?: string;
137
+ /** replace value during stringify, return null to fallback on JSONHandler replacer */
138
+ replaceBeforeStringify?: (value: any) => any;
139
+ /** func to stringify a value */
140
+ stringifier?: (value: any) => string;
141
+ level?: LogLevel;
142
+ exact?: LogLevel | Array<LogLevel>;
143
+ }
144
+ declare function NewTextHandler(send: (data: string) => void, options?: TextLogHandlerOptions): () => TextLogHandler;
145
+
146
+ declare const halua: Halua;
147
+
148
+ export { type HaluaLogger, type Handler, Level, type Log, NewJSONHandler, NewTextHandler, NewWebConsoleHandler, halua };