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