@zwa73/utils 1.0.224 → 1.0.226

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.
Files changed (46) hide show
  1. package/dist/{types/QuickExport.d.ts → QuickExport.d.ts} +1 -1
  2. package/dist/{cjs/QuickExport.js → QuickExport.js} +2 -2
  3. package/dist/UtilClass/index.d.ts +3 -0
  4. package/dist/{cjs/UtilClass → UtilClass}/index.js +7 -6
  5. package/dist/{cjs/UtilCodecs.js → UtilCodecs.js} +1 -5
  6. package/dist/{cjs/UtilFileTools.js → UtilFileTools.js} +2 -2
  7. package/dist/{types/UtilFunctions.d.ts → UtilFunctions.d.ts} +1 -19
  8. package/dist/{cjs/UtilFunctions.js → UtilFunctions.js} +2 -26
  9. package/dist/{types/UtilInterfaces.d.ts → UtilInterfaces.d.ts} +1 -1
  10. package/package.json +2 -8
  11. package/dist/mjs/QuickExport.mjs +0 -35
  12. package/dist/mjs/UtilClass/Hbs.mjs +0 -51
  13. package/dist/mjs/UtilClass/index.mjs +0 -3
  14. package/dist/mjs/UtilCodecs.mjs +0 -109
  15. package/dist/mjs/UtilDecorators.mjs +0 -2
  16. package/dist/mjs/UtilFP.mjs +0 -2
  17. package/dist/mjs/UtilFileTools.mjs +0 -407
  18. package/dist/mjs/UtilFunctions.mjs +0 -138
  19. package/dist/mjs/UtilHttp.mjs +0 -475
  20. package/dist/mjs/UtilI18n.mjs +0 -206
  21. package/dist/mjs/UtilInterfaces.mjs +0 -2
  22. package/dist/mjs/UtilLogger.mjs +0 -361
  23. package/dist/mjs/UtilSymbol.mjs +0 -2
  24. package/dist/mjs/index.mjs +0 -17
  25. package/dist/types/UtilClass/index.d.ts +0 -3
  26. package/index.d.ts +0 -1
  27. package/index.js +0 -1
  28. /package/dist/{types/UtilClass → UtilClass}/Hbs.d.ts +0 -0
  29. /package/dist/{cjs/UtilClass → UtilClass}/Hbs.js +0 -0
  30. /package/dist/{types/UtilCodecs.d.ts → UtilCodecs.d.ts} +0 -0
  31. /package/dist/{types/UtilDecorators.d.ts → UtilDecorators.d.ts} +0 -0
  32. /package/dist/{cjs/UtilDecorators.js → UtilDecorators.js} +0 -0
  33. /package/dist/{types/UtilFP.d.ts → UtilFP.d.ts} +0 -0
  34. /package/dist/{cjs/UtilFP.js → UtilFP.js} +0 -0
  35. /package/dist/{types/UtilFileTools.d.ts → UtilFileTools.d.ts} +0 -0
  36. /package/dist/{types/UtilHttp.d.ts → UtilHttp.d.ts} +0 -0
  37. /package/dist/{cjs/UtilHttp.js → UtilHttp.js} +0 -0
  38. /package/dist/{types/UtilI18n.d.ts → UtilI18n.d.ts} +0 -0
  39. /package/dist/{cjs/UtilI18n.js → UtilI18n.js} +0 -0
  40. /package/dist/{cjs/UtilInterfaces.js → UtilInterfaces.js} +0 -0
  41. /package/dist/{types/UtilLogger.d.ts → UtilLogger.d.ts} +0 -0
  42. /package/dist/{cjs/UtilLogger.js → UtilLogger.js} +0 -0
  43. /package/dist/{types/UtilSymbol.d.ts → UtilSymbol.d.ts} +0 -0
  44. /package/dist/{cjs/UtilSymbol.js → UtilSymbol.js} +0 -0
  45. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  46. /package/dist/{cjs/index.js → index.js} +0 -0
@@ -1,361 +0,0 @@
1
- import path from 'pathe';
2
- import * as winston from 'winston';
3
- import DailyRotateFile from 'winston-daily-rotate-file';
4
- import { inspect } from 'util';
5
- const logLevels = {
6
- fatal: 0,
7
- error: 1,
8
- warn: 2,
9
- info: 3,
10
- http: 4,
11
- verbose: 5,
12
- debug: 6,
13
- silly: 7
14
- };
15
- const colorizer = winston.format.colorize();
16
- colorizer.addColors({
17
- fatal: 'bold yellow redBG',
18
- error: 'bold yellow',
19
- warn: 'yellow',
20
- info: 'white',
21
- debug: 'bold cyan',
22
- silly: 'bold magenta'
23
- });
24
- export class SLogger {
25
- /**获取一个Logger,如不存在则用默认参数创建
26
- * @param name - logger的名称 默认default
27
- * @returns 获取的logger
28
- */
29
- static getLogger(name = "default") {
30
- let out = SLogger.loggerTable[name];
31
- if (out == null) {
32
- SLogger.createLogger(name);
33
- out = SLogger.loggerTable[name];
34
- }
35
- return out;
36
- }
37
- /**创建Logger
38
- * @param name - logger的名称 默认default
39
- * @param consoleLevel - 输出到控制台的最低等级 默认info
40
- * @param outFloder - log的输出文件夹路径 如./log/
41
- * @param fileLevel - 输出到文件的最低等级 默认info
42
- * @returns 创建完成的logger
43
- */
44
- static createLogger(name = "default", consoleLevel = "info", outFloder, fileLevel = "info") {
45
- const transports = [];
46
- if (outFloder != null) {
47
- const fileFormat = winston.format.combine(winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf((info) => {
48
- const level = info.level.toUpperCase();
49
- const message = info.message;
50
- //格式化
51
- //let format = `[${info.timestamp}] [${level}]: `
52
- //let space = " ".repeat(format.length);
53
- const messageList = message.split("\n");
54
- return `[${info.timestamp}] [${level.toUpperCase()}]: ${messageList.join("\n")}`;
55
- }));
56
- transports.push(new DailyRotateFile({
57
- filename: path.join(outFloder, 'log-%DATE%.txt'),
58
- datePattern: 'YYYY-MM-DD',
59
- level: fileLevel,
60
- format: fileFormat,
61
- }));
62
- }
63
- const consoleFormat = winston.format.combine(winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf((info) => {
64
- const level = info.level.toUpperCase();
65
- const message = info.message;
66
- const colorizedLevel = colorizer.colorize(info.level, level);
67
- //格式化
68
- //let format = `[${info.timestamp}] [${level}]: `
69
- //let space = " ".repeat(format.length);
70
- let messageList = message.split("\n");
71
- messageList[0] = colorizer.colorize(info.level, messageList[0]);
72
- for (let i = 1; i < messageList.length; i++)
73
- messageList[i] = colorizer.colorize(info.level, messageList[i]);
74
- let formattedMessage = messageList.join("\n");
75
- const prefix = `[${info.timestamp}] [${colorizedLevel}]: `;
76
- if (formattedMessage.startsWith(prefix))
77
- formattedMessage = formattedMessage.slice(prefix.length);
78
- return `${prefix}${formattedMessage}`;
79
- //return `[${info.timestamp}] [${colorizedLevel}]: ${messageList.join("\n")}`;
80
- }));
81
- transports.push(new winston.transports.Console({
82
- level: consoleLevel,
83
- format: consoleFormat,
84
- }));
85
- const logger = winston.createLogger({
86
- levels: logLevels,
87
- transports: transports,
88
- });
89
- const out = new SLogger();
90
- out._logger = logger;
91
- if (SLogger.loggerTable[name] != null) {
92
- let old = SLogger.loggerTable[name];
93
- old._logger.transports.forEach(tp => {
94
- if (tp.close != null)
95
- tp.close();
96
- });
97
- }
98
- SLogger.loggerTable[name] = out;
99
- return out;
100
- }
101
- constructor() { }
102
- _logger = null;
103
- /**记录Logger的表 */
104
- static loggerTable = {};
105
- /**记录Logger的表 */
106
- static timeTable = {};
107
- //———————————————————— function ——————————————————————//
108
- /**产生一条对应等级的log 返回自身
109
- * @param level - log等级
110
- * @param messages - log消息
111
- * @returns 自身
112
- */
113
- log(level, ...messages) {
114
- level ??= "silly";
115
- const strMessages = [];
116
- //上一条是字符串字符串
117
- let preIsString = true;
118
- for (let message of messages) {
119
- let out;
120
- //非string类型
121
- if (typeof message !== "string") {
122
- out = `<${typeof message}> ${inspect(message)}`;
123
- preIsString = false;
124
- }
125
- else if (!preIsString) {
126
- //如果上一条不是字符串则需要添加<string>类型标记
127
- out = `<${typeof message}> ${inspect(message)}`;
128
- preIsString = true;
129
- }
130
- else {
131
- out = message;
132
- }
133
- strMessages.push(out);
134
- }
135
- const outMessage = strMessages.join("\n");
136
- this._logger.log(level, outMessage);
137
- return this;
138
- }
139
- /**产生一条fatal等级的log 返回自身
140
- * @param messages - log消息
141
- * @returns 自身
142
- */
143
- fatal(...messages) {
144
- return this.log("fatal", ...messages);
145
- ;
146
- }
147
- /**产生一条error等级的log 返回自身
148
- * @param messages - log消息
149
- * @returns 自身
150
- */
151
- error(...messages) {
152
- return this.log("error", ...messages);
153
- ;
154
- }
155
- /**产生一条warn等级的log 返回自身
156
- * @param messages - log消息
157
- * @returns 自身
158
- */
159
- warn(...messages) {
160
- return this.log("warn", ...messages);
161
- ;
162
- }
163
- /**产生一条info等级的log 返回自身
164
- * @param messages - log消息
165
- * @returns 自身
166
- */
167
- info(...messages) {
168
- return this.log("info", ...messages);
169
- }
170
- /**产生一条http等级的log 返回自身
171
- * @param messages - log消息
172
- * @returns 自身
173
- */
174
- http(...messages) {
175
- return this.log("http", ...messages);
176
- }
177
- /**产生一条verbose等级的log 返回自身
178
- * @param messages - log消息
179
- * @returns 自身
180
- */
181
- verbose(...messages) {
182
- return this.log("verbose", ...messages);
183
- }
184
- /**产生一条debug等级的log 返回自身
185
- * @param messages - log消息
186
- * @returns 自身
187
- */
188
- debug(...messages) {
189
- return this.log("debug", ...messages);
190
- }
191
- /**产生一条silly等级的log 返回自身
192
- * @param messages - log消息
193
- * @returns 自身
194
- */
195
- silly(...messages) {
196
- return this.log("silly", ...messages);
197
- }
198
- /**记录当前时间戳并存入表
199
- * @param flag - 记录的命名
200
- * @returns 记录的时间
201
- */
202
- time(flag) {
203
- let hrtime = process.hrtime();
204
- SLogger.timeTable[flag] = hrtime;
205
- return hrtime;
206
- }
207
- /**根据之前记录的时间戳计算经过的时间 并输出log
208
- * @param flag - 记录的命名
209
- * @param level - log等级 === null时不产生log
210
- * @returns 格式化的时间字符串
211
- */
212
- timeEnd(flag, level = "info") {
213
- const start = SLogger.timeTable[flag];
214
- if (start == null) {
215
- this.warn("SLogger.timeEnd 错误 flag:" + flag + " 不存在");
216
- return;
217
- }
218
- const timelen = process.hrtime(start);
219
- const totalMicroseconds = (timelen[0] * 1e9 + timelen[1]) / 1000;
220
- const microseconds = totalMicroseconds % 1000;
221
- const totalMilliseconds = totalMicroseconds / 1000;
222
- const milliseconds = Math.floor(totalMilliseconds % 1000);
223
- const totalSeconds = totalMilliseconds / 1000;
224
- const seconds = Math.floor(totalSeconds % 60);
225
- const totalMinutes = totalSeconds / 60;
226
- const minutes = Math.floor(totalMinutes % 60);
227
- const totalHours = totalMinutes / 60;
228
- const hours = Math.floor(totalHours % 24);
229
- const totalDay = totalHours / 24;
230
- const Days = Math.floor(totalDay);
231
- let out = '';
232
- if (totalSeconds > 60) {
233
- let result = '';
234
- let format = '';
235
- let acc = 0;
236
- const maxAcc = 3;
237
- const concat = (num, sep, formatText, resultText) => {
238
- const hasResult = result.length > 0;
239
- const need = (hasResult || num > 0) && (acc < maxAcc);
240
- if (!need)
241
- return;
242
- if (result.length > 0)
243
- result += sep;
244
- if (format.length > 0)
245
- format += sep;
246
- result += resultText;
247
- format += formatText;
248
- acc++;
249
- };
250
- concat(Days, ':', 'dd', `${Days.toString()}`);
251
- concat(hours, ':', 'HH', `${hours.toString().padStart(2, '0')}`);
252
- concat(minutes, ':', 'mm', `${minutes.toString().padStart(2, '0')}`);
253
- concat(seconds, ':', 'ss', `${seconds.toString().padStart(2, '0')}`);
254
- concat(milliseconds, '.', 'mmm', `${milliseconds.toString().padStart(3, '0')}`);
255
- //result = result.replace(/^(0(?![^0-9]))+/, '');
256
- result = result.replace(/^0+([0-9])/, "$1");
257
- out = `${result} (${format})`;
258
- }
259
- else if (totalMilliseconds > 1000) {
260
- out = `${totalSeconds.toFixed(3)}s`;
261
- }
262
- else {
263
- out = `${totalMilliseconds.toFixed(3)}ms`;
264
- }
265
- if (level !== null)
266
- this.log(level, `${flag}: ${out}`);
267
- delete SLogger.timeTable[flag];
268
- return out;
269
- }
270
- //———————————————————— static ——————————————————————//
271
- /**名称为default的slogger实例 */
272
- static get defaultInstance() {
273
- if (SLogger.loggerTable.default == null)
274
- SLogger.createLogger();
275
- return SLogger.loggerTable.default;
276
- }
277
- /**让名称为default的logger 产生一条对应等级的log 返回自身
278
- * @param level - log等级
279
- * @param messages - log消息
280
- * @returns 自身
281
- */
282
- static log(level, ...messages) {
283
- level = level ?? "silly";
284
- this.defaultInstance.log(level, ...messages);
285
- return this.defaultInstance;
286
- }
287
- /**让名称为default的logger 产生一条fatal等级的log 返回自身
288
- * @param messages - log消息
289
- * @returns 自身
290
- */
291
- static fatal(...messages) {
292
- return this.log("fatal", ...messages);
293
- ;
294
- }
295
- /**让名称为default的logger 产生一条error等级的log 返回自身
296
- * @param messages - log消息
297
- * @returns 自身
298
- */
299
- static error(...messages) {
300
- return this.log("error", ...messages);
301
- ;
302
- }
303
- /**让名称为default的logger 产生一条warn等级的log 返回自身
304
- * @param messages - log消息
305
- * @returns 自身
306
- */
307
- static warn(...messages) {
308
- return this.log("warn", ...messages);
309
- ;
310
- }
311
- /**让名称为default的logger 产生一条info等级的log 返回自身
312
- * @param messages - log消息
313
- * @returns 自身
314
- */
315
- static info(...messages) {
316
- return this.log("info", ...messages);
317
- }
318
- /**让名称为default的logger 产生一条http等级的log 返回自身
319
- * @param messages - log消息
320
- * @returns 自身
321
- */
322
- static http(...messages) {
323
- return this.log("http", ...messages);
324
- }
325
- /**让名称为default的logger 产生一条verbose等级的log 返回自身
326
- * @param messages - log消息
327
- * @returns 自身
328
- */
329
- static verbose(...messages) {
330
- return this.log("verbose", ...messages);
331
- }
332
- /**让名称为default的logger 产生一条debug等级的log 返回自身
333
- * @param messages - log消息
334
- * @returns 自身
335
- */
336
- static debug(...messages) {
337
- return this.log("debug", ...messages);
338
- }
339
- /**让名称为default的logger 产生一条silly等级的log 返回自身
340
- * @param messages - log消息
341
- * @returns 自身
342
- */
343
- static silly(...messages) {
344
- return this.log("silly", ...messages);
345
- }
346
- /**让名称为default的logger 记录当前时间戳并存入表
347
- * @param flag - 记录的命名
348
- * @returns 记录的时间
349
- */
350
- static time(flag) {
351
- return this.defaultInstance.time(flag);
352
- }
353
- /**让名称为default的logger 根据之前记录的时间戳计算经过的时间 并输出log
354
- * @param flag - 记录的命名
355
- * @param level - log等级
356
- * @returns
357
- */
358
- static timeEnd(flag, level = "info") {
359
- this.defaultInstance.timeEnd(flag, level);
360
- }
361
- }
@@ -1,2 +0,0 @@
1
- export { Success, Failed, None, Uninited, Completed, Terminated, Timeout, NoneOut } from "@zwa73/js-utils";
2
- //#endregion
@@ -1,17 +0,0 @@
1
- import { SLogger } from './UtilLogger.mjs';
2
- import { JsDepInjector } from '@zwa73/js-utils';
3
- import * as crypto from "crypto";
4
- JsDepInjector.inject('logger', SLogger);
5
- JsDepInjector.inject('genUUID', () => crypto.randomBytes(16).toString("hex"));
6
- export * from './UtilFunctions.mjs';
7
- export * from './UtilInterfaces.mjs';
8
- export * from './UtilSymbol.mjs';
9
- export * from './UtilClass/index.mjs';
10
- export * from './UtilHttp.mjs';
11
- export * from './UtilCodecs.mjs';
12
- export * from './UtilDecorators.mjs';
13
- export * from './UtilFileTools.mjs';
14
- export * from './UtilLogger.mjs';
15
- export * from './UtilFP.mjs';
16
- export * from './QuickExport.mjs';
17
- export * from './UtilI18n.mjs';
@@ -1,3 +0,0 @@
1
- export * from './Hbs';
2
- export type { BridgeInterface, DListMiddleNode, DListHeadNode, DListTailNode, DListNode, DListMaybeNode, PromoseQueueOption } from "@zwa73/js-utils";
3
- export { Bridge, DLinkedList, Piper, PromiseQueue, SmartCache, Stream } from "@zwa73/js-utils";
package/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './dist';
package/index.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require("./dist");
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes