rslog 1.2.3 → 1.2.5
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.
- package/README.md +10 -1
- package/dist/color.d.ts +8 -0
- package/dist/constants.d.ts +48 -0
- package/dist/createLogger.d.ts +2 -0
- package/dist/gradient.d.ts +1 -0
- package/dist/index.d.ts +3 -66
- package/dist/index.js +285 -0
- package/dist/index.mjs +226 -274
- package/dist/types.d.ts +19 -0
- package/dist/utils.d.ts +2 -0
- package/package.json +21 -24
- package/dist/index.cjs +0 -334
package/dist/index.mjs
CHANGED
|
@@ -1,296 +1,248 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
10
|
-
}
|
|
11
|
-
var { env } = process;
|
|
12
|
-
var flagForceColor;
|
|
13
|
-
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
|
|
14
|
-
flagForceColor = 0;
|
|
15
|
-
} else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
|
|
16
|
-
flagForceColor = 1;
|
|
1
|
+
import external_node_process_default from "node:process";
|
|
2
|
+
import external_node_os_default from "node:os";
|
|
3
|
+
import external_node_tty_default from "node:tty";
|
|
4
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : external_node_process_default.argv) {
|
|
5
|
+
const prefix = flag.startsWith('-') ? '' : 1 === flag.length ? '-' : '--';
|
|
6
|
+
const position = argv.indexOf(prefix + flag);
|
|
7
|
+
const terminatorPosition = argv.indexOf('--');
|
|
8
|
+
return -1 !== position && (-1 === terminatorPosition || position < terminatorPosition);
|
|
17
9
|
}
|
|
10
|
+
const { env } = external_node_process_default;
|
|
11
|
+
let flagForceColor;
|
|
12
|
+
if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false') || hasFlag('color=never')) flagForceColor = 0;
|
|
13
|
+
else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) flagForceColor = 1;
|
|
18
14
|
function envForceColor() {
|
|
19
|
-
|
|
20
|
-
if (env.FORCE_COLOR
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
if (!('FORCE_COLOR' in env)) return;
|
|
16
|
+
if ('true' === env.FORCE_COLOR) return 1;
|
|
17
|
+
if ('false' === env.FORCE_COLOR) return 0;
|
|
18
|
+
if (0 === env.FORCE_COLOR.length) return 1;
|
|
19
|
+
const level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
|
20
|
+
if (![
|
|
21
|
+
0,
|
|
22
|
+
1,
|
|
23
|
+
2,
|
|
24
|
+
3
|
|
25
|
+
].includes(level)) return;
|
|
26
|
+
return level;
|
|
28
27
|
}
|
|
29
28
|
function translateLevel(level) {
|
|
30
|
-
|
|
31
|
-
return
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
has16m: level >= 3
|
|
38
|
-
};
|
|
29
|
+
if (0 === level) return false;
|
|
30
|
+
return {
|
|
31
|
+
level,
|
|
32
|
+
hasBasic: true,
|
|
33
|
+
has256: level >= 2,
|
|
34
|
+
has16m: level >= 3
|
|
35
|
+
};
|
|
39
36
|
}
|
|
40
37
|
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
if (sniffFlags) {
|
|
50
|
-
if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
|
|
51
|
-
return 3;
|
|
52
|
-
}
|
|
53
|
-
if (hasFlag("color=256")) {
|
|
54
|
-
return 2;
|
|
38
|
+
const noFlagForceColor = envForceColor();
|
|
39
|
+
if (void 0 !== noFlagForceColor) flagForceColor = noFlagForceColor;
|
|
40
|
+
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
|
41
|
+
if (0 === forceColor) return 0;
|
|
42
|
+
if (sniffFlags) {
|
|
43
|
+
if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) return 3;
|
|
44
|
+
if (hasFlag('color=256')) return 2;
|
|
55
45
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (env.TERM === "dumb") {
|
|
65
|
-
return min;
|
|
66
|
-
}
|
|
67
|
-
if (process.platform === "win32") {
|
|
68
|
-
const osRelease = os.release().split(".");
|
|
69
|
-
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
|
|
70
|
-
return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
46
|
+
if ('TF_BUILD' in env && 'AGENT_NAME' in env) return 1;
|
|
47
|
+
if (haveStream && !streamIsTTY && void 0 === forceColor) return 0;
|
|
48
|
+
const min = forceColor || 0;
|
|
49
|
+
if ('dumb' === env.TERM) return min;
|
|
50
|
+
if ('win32' === external_node_process_default.platform) {
|
|
51
|
+
const osRelease = external_node_os_default.release().split('.');
|
|
52
|
+
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
53
|
+
return 1;
|
|
71
54
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
55
|
+
if ('CI' in env) {
|
|
56
|
+
if ([
|
|
57
|
+
'GITHUB_ACTIONS',
|
|
58
|
+
'GITEA_ACTIONS',
|
|
59
|
+
'CIRCLECI'
|
|
60
|
+
].some((key)=>key in env)) return 3;
|
|
61
|
+
if ([
|
|
62
|
+
'TRAVIS',
|
|
63
|
+
'APPVEYOR',
|
|
64
|
+
'GITLAB_CI',
|
|
65
|
+
'BUILDKITE',
|
|
66
|
+
'DRONE'
|
|
67
|
+
].some((sign)=>sign in env) || 'codeship' === env.CI_NAME) return 1;
|
|
68
|
+
return min;
|
|
77
69
|
}
|
|
78
|
-
if (
|
|
79
|
-
|
|
70
|
+
if ('TEAMCITY_VERSION' in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
71
|
+
if ('truecolor' === env.COLORTERM) return 3;
|
|
72
|
+
if ('xterm-kitty' === env.TERM) return 3;
|
|
73
|
+
if ('TERM_PROGRAM' in env) {
|
|
74
|
+
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
|
|
75
|
+
switch(env.TERM_PROGRAM){
|
|
76
|
+
case 'iTerm.app':
|
|
77
|
+
return version >= 3 ? 3 : 2;
|
|
78
|
+
case 'Apple_Terminal':
|
|
79
|
+
return 2;
|
|
80
|
+
}
|
|
80
81
|
}
|
|
82
|
+
if (/-256(color)?$/i.test(env.TERM)) return 2;
|
|
83
|
+
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) return 1;
|
|
84
|
+
if ('COLORTERM' in env) return 1;
|
|
81
85
|
return min;
|
|
82
|
-
}
|
|
83
|
-
if ("TEAMCITY_VERSION" in env) {
|
|
84
|
-
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
85
|
-
}
|
|
86
|
-
if (env.COLORTERM === "truecolor") {
|
|
87
|
-
return 3;
|
|
88
|
-
}
|
|
89
|
-
if (env.TERM === "xterm-kitty") {
|
|
90
|
-
return 3;
|
|
91
|
-
}
|
|
92
|
-
if ("TERM_PROGRAM" in env) {
|
|
93
|
-
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
94
|
-
switch (env.TERM_PROGRAM) {
|
|
95
|
-
case "iTerm.app": {
|
|
96
|
-
return version >= 3 ? 3 : 2;
|
|
97
|
-
}
|
|
98
|
-
case "Apple_Terminal": {
|
|
99
|
-
return 2;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (/-256(color)?$/i.test(env.TERM)) {
|
|
104
|
-
return 2;
|
|
105
|
-
}
|
|
106
|
-
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
107
|
-
return 1;
|
|
108
|
-
}
|
|
109
|
-
if ("COLORTERM" in env) {
|
|
110
|
-
return 1;
|
|
111
|
-
}
|
|
112
|
-
return min;
|
|
113
86
|
}
|
|
114
87
|
function createSupportsColor(stream, options = {}) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
88
|
+
const level = _supportsColor(stream, {
|
|
89
|
+
streamIsTTY: stream && stream.isTTY,
|
|
90
|
+
...options
|
|
91
|
+
});
|
|
92
|
+
return translateLevel(level);
|
|
120
93
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
94
|
+
const supportsColor = {
|
|
95
|
+
stdout: createSupportsColor({
|
|
96
|
+
isTTY: external_node_tty_default.isatty(1)
|
|
97
|
+
}),
|
|
98
|
+
stderr: createSupportsColor({
|
|
99
|
+
isTTY: external_node_tty_default.isatty(2)
|
|
100
|
+
})
|
|
124
101
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
let start = string.substring(0, index) + replace;
|
|
141
|
-
let end = string.substring(index + close.length);
|
|
142
|
-
let nextIndex = end.indexOf(close);
|
|
143
|
-
return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
|
|
102
|
+
const supports_color = supportsColor;
|
|
103
|
+
const colorLevel = supports_color.stdout ? supports_color.stdout.level : 0;
|
|
104
|
+
let errorStackRegExp = /at\s.*:\d+:\d+[\s\)]*$/;
|
|
105
|
+
let anonymousErrorStackRegExp = /at\s.*\(<anonymous>\)$/;
|
|
106
|
+
let isErrorStackMessage = (message)=>errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message);
|
|
107
|
+
let formatter = (open, close, replace = open)=>colorLevel >= 2 ? (input)=>{
|
|
108
|
+
let string = '' + input;
|
|
109
|
+
let index = string.indexOf(close, open.length);
|
|
110
|
+
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
|
|
111
|
+
} : String;
|
|
112
|
+
let replaceClose = (string, close, replace, index)=>{
|
|
113
|
+
let start = string.substring(0, index) + replace;
|
|
114
|
+
let end = string.substring(index + close.length);
|
|
115
|
+
let nextIndex = end.indexOf(close);
|
|
116
|
+
return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
|
|
144
117
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
118
|
+
const bold = formatter('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m');
|
|
119
|
+
const red = formatter('\x1b[31m', '\x1b[39m');
|
|
120
|
+
const green = formatter('\x1b[32m', '\x1b[39m');
|
|
121
|
+
const yellow = formatter('\x1b[33m', '\x1b[39m');
|
|
122
|
+
const magenta = formatter('\x1b[35m', '\x1b[39m');
|
|
123
|
+
const cyan = formatter('\x1b[36m', '\x1b[39m');
|
|
124
|
+
const gray = formatter('\x1b[90m', '\x1b[39m');
|
|
125
|
+
let startColor = [
|
|
126
|
+
189,
|
|
127
|
+
255,
|
|
128
|
+
243
|
|
129
|
+
];
|
|
130
|
+
let endColor = [
|
|
131
|
+
74,
|
|
132
|
+
194,
|
|
133
|
+
154
|
|
134
|
+
];
|
|
135
|
+
let isWord = (char)=>!/[\s\n]/.test(char);
|
|
136
|
+
let gradient = (message)=>{
|
|
137
|
+
if (colorLevel < 3) return 2 === colorLevel ? bold(cyan(message)) : message;
|
|
138
|
+
let chars = [
|
|
139
|
+
...message
|
|
140
|
+
];
|
|
141
|
+
let steps = chars.filter(isWord).length;
|
|
142
|
+
let r = startColor[0];
|
|
143
|
+
let g = startColor[1];
|
|
144
|
+
let b = startColor[2];
|
|
145
|
+
let rStep = (endColor[0] - r) / steps;
|
|
146
|
+
let gStep = (endColor[1] - g) / steps;
|
|
147
|
+
let bStep = (endColor[2] - b) / steps;
|
|
148
|
+
let output = '';
|
|
149
|
+
for (let char of chars){
|
|
150
|
+
if (isWord(char)) {
|
|
151
|
+
r += rStep;
|
|
152
|
+
g += gStep;
|
|
153
|
+
b += bStep;
|
|
154
|
+
}
|
|
155
|
+
output += `\x1b[38;2;${Math.round(r)};${Math.round(g)};${Math.round(b)}m${char}\x1b[39m`;
|
|
175
156
|
}
|
|
176
|
-
|
|
177
|
-
b
|
|
178
|
-
)}m${char}\x1B[39m`;
|
|
179
|
-
}
|
|
180
|
-
return bold(output);
|
|
157
|
+
return bold(output);
|
|
181
158
|
};
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
verbose: 4
|
|
159
|
+
let LOG_LEVEL = {
|
|
160
|
+
silent: -1,
|
|
161
|
+
error: 0,
|
|
162
|
+
warn: 1,
|
|
163
|
+
info: 2,
|
|
164
|
+
log: 3,
|
|
165
|
+
verbose: 4
|
|
190
166
|
};
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
// Level debug
|
|
230
|
-
debug: {
|
|
231
|
-
label: "debug",
|
|
232
|
-
level: "verbose",
|
|
233
|
-
color: magenta
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
// src/createLogger.ts
|
|
238
|
-
var createLogger = (options = {}) => {
|
|
239
|
-
let maxLevel = options.level || "log";
|
|
240
|
-
let log = (type, message, ...args) => {
|
|
241
|
-
if (LOG_LEVEL[LOG_TYPES[type].level] > LOG_LEVEL[maxLevel]) {
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
if (message === void 0 || message === null) {
|
|
245
|
-
return console.log();
|
|
246
|
-
}
|
|
247
|
-
let logType = LOG_TYPES[type];
|
|
248
|
-
let label = "";
|
|
249
|
-
let text = "";
|
|
250
|
-
if ("label" in logType) {
|
|
251
|
-
label = (logType.label || "").padEnd(7);
|
|
252
|
-
label = bold(logType.color ? logType.color(label) : label);
|
|
253
|
-
}
|
|
254
|
-
if (message instanceof Error) {
|
|
255
|
-
if (message.stack) {
|
|
256
|
-
let [name, ...rest] = message.stack.split("\n");
|
|
257
|
-
if (name.startsWith("Error: ")) {
|
|
258
|
-
name = name.slice(7);
|
|
259
|
-
}
|
|
260
|
-
text = `${name}
|
|
261
|
-
${gray(rest.join("\n"))}`;
|
|
262
|
-
} else {
|
|
263
|
-
text = message.message;
|
|
264
|
-
}
|
|
265
|
-
} else if (logType.level === "error" && typeof message === "string") {
|
|
266
|
-
let lines = message.split("\n");
|
|
267
|
-
text = lines.map((line) => isErrorStackMessage(line) ? gray(line) : line).join("\n");
|
|
268
|
-
} else {
|
|
269
|
-
text = `${message}`;
|
|
270
|
-
}
|
|
271
|
-
console.log(label.length ? `${label} ${text}` : text, ...args);
|
|
272
|
-
};
|
|
273
|
-
let logger2 = {
|
|
274
|
-
greet: (message) => log("log", gradient(message))
|
|
275
|
-
};
|
|
276
|
-
Object.keys(LOG_TYPES).forEach((key) => {
|
|
277
|
-
logger2[key] = (...args) => log(key, ...args);
|
|
278
|
-
});
|
|
279
|
-
Object.defineProperty(logger2, "level", {
|
|
280
|
-
get: () => maxLevel,
|
|
281
|
-
set(val) {
|
|
282
|
-
maxLevel = val;
|
|
167
|
+
let LOG_TYPES = {
|
|
168
|
+
error: {
|
|
169
|
+
label: 'error',
|
|
170
|
+
level: 'error',
|
|
171
|
+
color: red
|
|
172
|
+
},
|
|
173
|
+
warn: {
|
|
174
|
+
label: 'warn',
|
|
175
|
+
level: 'warn',
|
|
176
|
+
color: yellow
|
|
177
|
+
},
|
|
178
|
+
info: {
|
|
179
|
+
label: 'info',
|
|
180
|
+
level: 'info',
|
|
181
|
+
color: cyan
|
|
182
|
+
},
|
|
183
|
+
start: {
|
|
184
|
+
label: 'start',
|
|
185
|
+
level: 'info',
|
|
186
|
+
color: cyan
|
|
187
|
+
},
|
|
188
|
+
ready: {
|
|
189
|
+
label: 'ready',
|
|
190
|
+
level: 'info',
|
|
191
|
+
color: green
|
|
192
|
+
},
|
|
193
|
+
success: {
|
|
194
|
+
label: 'success',
|
|
195
|
+
level: 'info',
|
|
196
|
+
color: green
|
|
197
|
+
},
|
|
198
|
+
log: {
|
|
199
|
+
level: 'log'
|
|
200
|
+
},
|
|
201
|
+
debug: {
|
|
202
|
+
label: 'debug',
|
|
203
|
+
level: 'verbose',
|
|
204
|
+
color: magenta
|
|
283
205
|
}
|
|
284
|
-
});
|
|
285
|
-
logger2.override = (customLogger) => {
|
|
286
|
-
Object.assign(logger2, customLogger);
|
|
287
|
-
};
|
|
288
|
-
return logger2;
|
|
289
206
|
};
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
207
|
+
let createLogger = (options = {})=>{
|
|
208
|
+
let maxLevel = options.level || 'log';
|
|
209
|
+
let log = (type, message, ...args)=>{
|
|
210
|
+
if (LOG_LEVEL[LOG_TYPES[type].level] > LOG_LEVEL[maxLevel]) return;
|
|
211
|
+
if (null == message) return console.log();
|
|
212
|
+
let logType = LOG_TYPES[type];
|
|
213
|
+
let label = '';
|
|
214
|
+
let text = '';
|
|
215
|
+
if ('label' in logType) {
|
|
216
|
+
label = (logType.label || '').padEnd(7);
|
|
217
|
+
label = bold(logType.color ? logType.color(label) : label);
|
|
218
|
+
}
|
|
219
|
+
if (message instanceof Error) if (message.stack) {
|
|
220
|
+
let [name, ...rest] = message.stack.split('\n');
|
|
221
|
+
if (name.startsWith('Error: ')) name = name.slice(7);
|
|
222
|
+
text = `${name}\n${gray(rest.join('\n'))}`;
|
|
223
|
+
} else text = message.message;
|
|
224
|
+
else if ('error' === logType.level && 'string' == typeof message) {
|
|
225
|
+
let lines = message.split('\n');
|
|
226
|
+
text = lines.map((line)=>isErrorStackMessage(line) ? gray(line) : line).join('\n');
|
|
227
|
+
} else text = `${message}`;
|
|
228
|
+
console.log(label.length ? `${label} ${text}` : text, ...args);
|
|
229
|
+
};
|
|
230
|
+
let logger = {
|
|
231
|
+
greet: (message)=>log('log', gradient(message))
|
|
232
|
+
};
|
|
233
|
+
Object.keys(LOG_TYPES).forEach((key)=>{
|
|
234
|
+
logger[key] = (...args)=>log(key, ...args);
|
|
235
|
+
});
|
|
236
|
+
Object.defineProperty(logger, 'level', {
|
|
237
|
+
get: ()=>maxLevel,
|
|
238
|
+
set (val) {
|
|
239
|
+
maxLevel = val;
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
logger.override = (customLogger)=>{
|
|
243
|
+
Object.assign(logger, customLogger);
|
|
244
|
+
};
|
|
245
|
+
return logger;
|
|
296
246
|
};
|
|
247
|
+
let src_logger = createLogger();
|
|
248
|
+
export { createLogger, src_logger as logger };
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ColorFn } from './color';
|
|
2
|
+
import type { LOG_TYPES } from './constants';
|
|
3
|
+
export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'log' | 'verbose';
|
|
4
|
+
export type LogMessage = unknown;
|
|
5
|
+
export interface LogType {
|
|
6
|
+
label?: string;
|
|
7
|
+
level: LogLevel;
|
|
8
|
+
color?: ColorFn;
|
|
9
|
+
}
|
|
10
|
+
export type LogFunction = (message?: LogMessage, ...args: any[]) => void;
|
|
11
|
+
export interface Options {
|
|
12
|
+
level?: LogLevel;
|
|
13
|
+
}
|
|
14
|
+
export type LogMethods = keyof typeof LOG_TYPES;
|
|
15
|
+
export type Logger = Record<LogMethods, LogFunction> & {
|
|
16
|
+
greet: (message: string) => void;
|
|
17
|
+
level: LogLevel;
|
|
18
|
+
override: (customLogger: Partial<Record<LogMethods, LogFunction>>) => void;
|
|
19
|
+
};
|
package/dist/utils.d.ts
ADDED
package/package.json
CHANGED
|
@@ -1,47 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rslog",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
|
-
"main": "./dist/index.
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
10
|
"import": "./dist/index.mjs",
|
|
11
|
-
"require": "./dist/index.
|
|
11
|
+
"require": "./dist/index.js"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
|
-
"
|
|
18
|
-
"
|
|
17
|
+
"scripts": {
|
|
18
|
+
"prepare": "rslib build",
|
|
19
|
+
"preview": "bun run ./preview.ts",
|
|
20
|
+
"build": "rslib build",
|
|
21
|
+
"dev": "rslib build --watch",
|
|
22
|
+
"test": "vitest",
|
|
23
|
+
"bump": "npx bumpp"
|
|
19
24
|
},
|
|
20
|
-
"packageManager": "pnpm@
|
|
25
|
+
"packageManager": "pnpm@10.12.1",
|
|
21
26
|
"repository": {
|
|
22
27
|
"type": "git",
|
|
23
28
|
"url": "https://github.com/rspack-contrib/rslog.git"
|
|
24
29
|
},
|
|
25
30
|
"devDependencies": {
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"vitest": "^2.0.5"
|
|
31
|
+
"@rslib/core": "^0.9.2",
|
|
32
|
+
"@types/node": "^22.15.31",
|
|
33
|
+
"prettier": "~3.5.3",
|
|
34
|
+
"strip-ansi": "^7.1.0",
|
|
35
|
+
"supports-color": "^10.0.0",
|
|
36
|
+
"typescript": "~5.8.3",
|
|
37
|
+
"vitest": "^2.1.8"
|
|
34
38
|
},
|
|
35
39
|
"publishConfig": {
|
|
36
40
|
"access": "public",
|
|
37
|
-
"registry": "https://registry.npmjs.org/"
|
|
38
|
-
|
|
39
|
-
"scripts": {
|
|
40
|
-
"preview": "bun run ./preview.ts",
|
|
41
|
-
"dev": "modern dev",
|
|
42
|
-
"build": "modern build",
|
|
43
|
-
"build:watch": "modern build -w",
|
|
44
|
-
"reset": "rimraf ./**/node_modules",
|
|
45
|
-
"test": "vitest"
|
|
41
|
+
"registry": "https://registry.npmjs.org/",
|
|
42
|
+
"provenance": true
|
|
46
43
|
}
|
|
47
|
-
}
|
|
44
|
+
}
|