@zwa73/utils 1.0.26 → 1.0.28

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.
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fileSearch = exports.sleep = exports.isSafeNumber = exports.deepClone = exports.calcHash = exports.genUUID = exports.writeJSONFile = exports.loadJSONFile = exports.loadJSONFileSync = exports.ensurePathExistsSync = exports.ensurePathExists = exports.createPathSync = exports.createPath = exports.pathExistsSync = exports.pathExists = exports.initField = exports.getTime = void 0;
4
- const fs = require("fs");
3
+ exports.sleep = exports.isSafeNumber = exports.deepClone = exports.calcHash = exports.genUUID = exports.initField = exports.getTime = void 0;
5
4
  const crypto = require("crypto");
6
- const path = require("path");
7
- const UtilInterfaces_1 = require("./UtilInterfaces");
8
5
  /**获取当前时间戳
9
6
  * number ()
10
7
  * @returns {number} 时间戳
@@ -26,164 +23,6 @@ function initField(obj, field, defaultVal) {
26
23
  return obj[field];
27
24
  }
28
25
  exports.initField = initField;
29
- /**验证路径 文件或文件夹 是否存在 异步
30
- * @async
31
- * @param {string} filePath - 待验证的路径
32
- * @returns {Promise<boolean>} - 是否存在
33
- */
34
- async function pathExists(filePath) {
35
- try {
36
- const stats = await fs.promises.stat(filePath);
37
- await fs.promises.access(filePath);
38
- return true;
39
- }
40
- catch (e) {
41
- return false;
42
- }
43
- }
44
- exports.pathExists = pathExists;
45
- /**验证路径 文件或文件夹 是否存在 同步
46
- * @param {string} filePath - 待验证的路径
47
- * @returns {boolean} - 是否存在
48
- */
49
- function pathExistsSync(filePath) {
50
- try {
51
- fs.accessSync(filePath);
52
- return true;
53
- }
54
- catch (e) {
55
- return false;
56
- }
57
- }
58
- exports.pathExistsSync = pathExistsSync;
59
- /**路径不存在时创建路径 以path.sep结尾时创建文件夹 异步
60
- * @async
61
- * @param {string} filePath - 待创建的路径
62
- * @param {boolean} isDir - 强制创建一个文件夹
63
- * @returns {Promise<boolean>} - 是否成功创建
64
- */
65
- async function createPath(filePath, isDir) {
66
- if (isDir == true)
67
- filePath = path.join(filePath, path.sep);
68
- try {
69
- if (filePath.endsWith(path.sep)) {
70
- await fs.promises.mkdir(filePath, { recursive: true });
71
- return true;
72
- }
73
- await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
74
- await fs.promises.open(filePath, 'w');
75
- return true;
76
- }
77
- catch (e) {
78
- console.log("createPath 错误");
79
- console.log(e);
80
- return false;
81
- }
82
- }
83
- exports.createPath = createPath;
84
- /**路径不存在时创建路径 以path.sep结尾时创建文件夹 同步
85
- * @param {string} filePath - 待创建的路径
86
- * @param {boolean} isDir - 强制验证一个文件夹
87
- * @returns {boolean} - 是否成功创建
88
- */
89
- function createPathSync(filePath, isDir) {
90
- if (isDir == true)
91
- filePath = path.join(filePath, path.sep);
92
- try {
93
- if (filePath.endsWith(path.sep)) {
94
- fs.mkdirSync(filePath, { recursive: true });
95
- return true;
96
- }
97
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
98
- fs.openSync(filePath, 'w');
99
- return true;
100
- }
101
- catch (e) {
102
- console.log("createPath 错误");
103
- console.log(e);
104
- return false;
105
- }
106
- }
107
- exports.createPathSync = createPathSync;
108
- /**确保路径存在 不存在时创建 异步
109
- * @async
110
- * @param {string} filePath - 待验证的路径
111
- * @param {boolean} isDir - 强制验证一个文件夹
112
- * @returns {Promise<boolean>} - 是否成功执行 创建或已存在
113
- */
114
- async function ensurePathExists(filePath, isDir) {
115
- if (await pathExists(filePath))
116
- return true;
117
- return await createPath(filePath, isDir);
118
- }
119
- exports.ensurePathExists = ensurePathExists;
120
- /**确保路径存在 不存在时创建 同步
121
- * @param {string} filePath - 待验证的路径
122
- * @returns {boolean} - 是否成功执行 创建或已存在
123
- */
124
- function ensurePathExistsSync(filePath, isDir) {
125
- if (pathExistsSync(filePath))
126
- return true;
127
- return createPathSync(filePath, isDir);
128
- }
129
- exports.ensurePathExistsSync = ensurePathExistsSync;
130
- function loadJSONFileSync(filePath, def) {
131
- if (path.extname(filePath) !== '.json')
132
- filePath += '.json';
133
- let str = "";
134
- // 判断文件路径是否存在
135
- if (pathExistsSync(filePath))
136
- str = fs.readFileSync(filePath, "utf-8");
137
- // 如果不存在则返回默认值
138
- if (str == "" || str == null) {
139
- if (def !== undefined)
140
- return def;
141
- return {};
142
- }
143
- return JSON.parse(str);
144
- }
145
- exports.loadJSONFileSync = loadJSONFileSync;
146
- async function loadJSONFile(filePath, def) {
147
- if (path.extname(filePath) !== '.json')
148
- filePath += '.json';
149
- let str = "";
150
- // 判断文件路径是否存在
151
- if (await pathExists(filePath))
152
- str = await fs.promises.readFile(filePath, "utf-8");
153
- // 如果不存在则返回默认值
154
- if (str == "" || str == null) {
155
- if (def !== undefined)
156
- return def;
157
- return {};
158
- }
159
- return JSON.parse(str);
160
- }
161
- exports.loadJSONFile = loadJSONFile;
162
- /**写入JSON文件
163
- * void (string,Object)
164
- * @async
165
- * @param {string} filePath - 文件路径
166
- * @param {JToken} token - 所要写入的JToken
167
- * @returns {Promise<void>}
168
- */
169
- async function writeJSONFile(filePath, token) {
170
- let str = (0, UtilInterfaces_1.stringifyJToken)(token);
171
- if (path.extname(filePath) !== '.json')
172
- filePath += '.json';
173
- // 判断文件路径是否存在 不存在则创建
174
- if (!(await pathExists(filePath)))
175
- await createPath(filePath);
176
- // 写入文件
177
- try {
178
- await fs.promises.writeFile(filePath, str);
179
- console.log(`${filePath} writeJSONFile 成功`);
180
- }
181
- catch (err) {
182
- console.log(`${filePath} writeJSONFile 错误`);
183
- console.log(err);
184
- }
185
- }
186
- exports.writeJSONFile = writeJSONFile;
187
26
  /**生成一串uuid
188
27
  * string ()
189
28
  * @returns {string} uuid
@@ -235,29 +74,3 @@ async function sleep(timeMs) {
235
74
  });
236
75
  }
237
76
  exports.sleep = sleep;
238
- /**搜索路径符合正则表达式的文件
239
- * @param folder - 文件夹路径
240
- * @param traitRegex - 正则表达式
241
- * @returns {Record<string, string>} 文件名与路径的映射
242
- */
243
- function fileSearch(folder, traitRegex) {
244
- let outMap = {};
245
- let subFiles = fs.readdirSync(folder);
246
- let regex = new RegExp(traitRegex);
247
- for (let subFile of subFiles) {
248
- let subFilePath = path.join(folder, subFile);
249
- subFilePath = subFilePath.replace(/\\/g, "/");
250
- let stat = fs.lstatSync(subFilePath);
251
- //判断是否是文件夹,递归调用
252
- if (stat.isDirectory()) {
253
- let subMap = fileSearch(path.join(subFilePath, path.sep), traitRegex);
254
- for (let key in subMap)
255
- outMap[key] = subMap[key];
256
- continue;
257
- }
258
- if (regex.test(subFilePath))
259
- outMap[subFile] = subFilePath;
260
- }
261
- return outMap;
262
- }
263
- exports.fileSearch = fileSearch;
@@ -18,15 +18,3 @@ export interface IJData {
18
18
  * @returns 转换完成的字符串
19
19
  */
20
20
  export declare function stringifyJToken(token: JToken, space?: string | number | null | undefined): string;
21
- /**未知格式的Object*/
22
- export type AnyObject = {
23
- [key: string]: any;
24
- };
25
- /**用于存储消息的Entry
26
- * 暂时存于Util
27
- * 未来应转入LaMChar中
28
- */
29
- export type MessageEntity = {
30
- role: string;
31
- content: string;
32
- };
@@ -0,0 +1,115 @@
1
+ /**log等级 undefined相当于 silly */
2
+ export type LogLevel = "fatal" | "error" | "warn" | "info" | "http" | "verbose" | "debug" | "silly" | undefined;
3
+ export declare class SLogger {
4
+ /**获取一个Logger,如不存在则用默认参数创建
5
+ * @param {string} name - logger的名称 默认default
6
+ * @returns {SLogger} - 获取的logger
7
+ */
8
+ static getLogger(name?: string): SLogger;
9
+ /**创建Logger
10
+ * @param {string} name - logger的名称 默认default
11
+ * @param {LogLevel} consoleLevel - 输出到控制台的最低等级 默认info
12
+ * @param {string} outFloder - log的输出文件夹路径 如./log/
13
+ * @param {LogLevel} fileLevel - 输出到文件的最低等级 默认info
14
+ * @returns {SLogger} - 创建完成的logger
15
+ */
16
+ static createLogger(name?: string, consoleLevel?: LogLevel, outFloder?: string, fileLevel?: LogLevel): SLogger;
17
+ private constructor();
18
+ private _logger;
19
+ /**记录Logger的表 */
20
+ private static readonly loggerTable;
21
+ /**产生一条对应等级的log 返回自身
22
+ * @param {LogLevel} level - log等级
23
+ * @param {Array<any>} messages - log消息
24
+ * @returns {SLogger} - 自身
25
+ */
26
+ log(level: LogLevel, ...messages: Array<any>): SLogger;
27
+ /**产生一条fatal等级的log 返回自身
28
+ * @param {Array<any>} messages - log消息
29
+ * @returns {SLogger} - 自身
30
+ */
31
+ fatal(...messages: Array<any>): SLogger;
32
+ /**产生一条error等级的log 返回自身
33
+ * @param {Array<any>} messages - log消息
34
+ * @returns {SLogger} - 自身
35
+ */
36
+ error(...messages: Array<any>): SLogger;
37
+ /**产生一条warn等级的log 返回自身
38
+ * @param {Array<any>} messages - log消息
39
+ * @returns {SLogger} - 自身
40
+ */
41
+ warn(...messages: Array<any>): SLogger;
42
+ /**产生一条info等级的log 返回自身
43
+ * @param {Array<any>} messages - log消息
44
+ * @returns {SLogger} - 自身
45
+ */
46
+ info(...messages: Array<any>): SLogger;
47
+ /**产生一条http等级的log 返回自身
48
+ * @param {Array<any>} messages - log消息
49
+ * @returns {SLogger} - 自身
50
+ */
51
+ http(...messages: Array<any>): SLogger;
52
+ /**产生一条verbose等级的log 返回自身
53
+ * @param {Array<any>} messages - log消息
54
+ * @returns {SLogger} - 自身
55
+ */
56
+ verbose(...messages: Array<any>): SLogger;
57
+ /**产生一条debug等级的log 返回自身
58
+ * @param {Array<any>} messages - log消息
59
+ * @returns {SLogger} - 自身
60
+ */
61
+ debug(...messages: Array<any>): SLogger;
62
+ /**产生一条silly等级的log 返回自身
63
+ * @param {Array<any>} messages - log消息
64
+ * @returns {SLogger} - 自身
65
+ */
66
+ silly(...messages: Array<any>): SLogger;
67
+ /**名称为default的slogger实例 */
68
+ private static get defaultInstance();
69
+ /**让名称为default的logger 产生一条对应等级的log 返回自身
70
+ * @param {LogLevel} level - log等级
71
+ * @param {Array<any>} messages - log消息
72
+ * @returns {SLogger} - 自身
73
+ */
74
+ static log(level: LogLevel, ...messages: Array<any>): SLogger;
75
+ /**让名称为default的logger 产生一条fatal等级的log 返回自身
76
+ * @param {Array<any>} messages - log消息
77
+ * @returns {SLogger} - 自身
78
+ */
79
+ static fatal(...messages: Array<any>): SLogger;
80
+ /**让名称为default的logger 产生一条error等级的log 返回自身
81
+ * @param {Array<any>} messages - log消息
82
+ * @returns {SLogger} - 自身
83
+ */
84
+ static error(...messages: Array<any>): SLogger;
85
+ /**让名称为default的logger 产生一条warn等级的log 返回自身
86
+ * @param {Array<any>} messages - log消息
87
+ * @returns {SLogger} - 自身
88
+ */
89
+ static warn(...messages: Array<any>): SLogger;
90
+ /**让名称为default的logger 产生一条info等级的log 返回自身
91
+ * @param {Array<any>} messages - log消息
92
+ * @returns {SLogger} - 自身
93
+ */
94
+ static info(...messages: Array<any>): SLogger;
95
+ /**让名称为default的logger 产生一条http等级的log 返回自身
96
+ * @param {Array<any>} messages - log消息
97
+ * @returns {SLogger} - 自身
98
+ */
99
+ static http(...messages: Array<any>): SLogger;
100
+ /**让名称为default的logger 产生一条verbose等级的log 返回自身
101
+ * @param {Array<any>} messages - log消息
102
+ * @returns {SLogger} - 自身
103
+ */
104
+ static verbose(...messages: Array<any>): SLogger;
105
+ /**让名称为default的logger 产生一条debug等级的log 返回自身
106
+ * @param {Array<any>} messages - log消息
107
+ * @returns {SLogger} - 自身
108
+ */
109
+ static debug(...messages: Array<any>): SLogger;
110
+ /**让名称为default的logger 产生一条silly等级的log 返回自身
111
+ * @param {Array<any>} messages - log消息
112
+ * @returns {SLogger} - 自身
113
+ */
114
+ static silly(...messages: Array<any>): SLogger;
115
+ }
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SLogger = void 0;
4
+ const path = require("path");
5
+ const winston = require("winston");
6
+ const DailyRotateFile = require("winston-daily-rotate-file");
7
+ const logLevels = {
8
+ fatal: 0,
9
+ error: 1,
10
+ warn: 2,
11
+ info: 3,
12
+ http: 4,
13
+ verbose: 5,
14
+ debug: 6,
15
+ silly: 7
16
+ };
17
+ const colorizer = winston.format.colorize();
18
+ colorizer.addColors({
19
+ fatal: 'bold yellow redBG',
20
+ error: 'bold yellow',
21
+ warn: 'yellow',
22
+ info: 'white',
23
+ debug: 'bold cyan',
24
+ silly: 'bold magenta'
25
+ });
26
+ class SLogger {
27
+ /**获取一个Logger,如不存在则用默认参数创建
28
+ * @param {string} name - logger的名称 默认default
29
+ * @returns {SLogger} - 获取的logger
30
+ */
31
+ static getLogger(name = "default") {
32
+ let out = SLogger.loggerTable[name];
33
+ if (out == null) {
34
+ SLogger.createLogger(name);
35
+ out = SLogger.loggerTable[name];
36
+ }
37
+ return out;
38
+ }
39
+ /**创建Logger
40
+ * @param {string} name - logger的名称 默认default
41
+ * @param {LogLevel} consoleLevel - 输出到控制台的最低等级 默认info
42
+ * @param {string} outFloder - log的输出文件夹路径 如./log/
43
+ * @param {LogLevel} fileLevel - 输出到文件的最低等级 默认info
44
+ * @returns {SLogger} - 创建完成的logger
45
+ */
46
+ static createLogger(name = "default", consoleLevel = "info", outFloder, fileLevel = "info") {
47
+ const transports = [];
48
+ if (outFloder != null) {
49
+ const fileFormat = winston.format.combine(winston.format.timestamp({ format: 'YY-MM-DD HH:mm:ss' }), winston.format.printf((info) => {
50
+ const level = info.level.toUpperCase();
51
+ const message = info.message;
52
+ //格式化
53
+ let format = `[${info.timestamp}] [${level}]: `;
54
+ let space = "";
55
+ for (let cha of format)
56
+ space += " ";
57
+ let messageList = message.split("\n");
58
+ return `[${info.timestamp}] [${level.toUpperCase()}]: ${messageList.join("\n" + space)}`;
59
+ }));
60
+ transports.push(new DailyRotateFile({
61
+ filename: path.join(outFloder, 'log-%DATE%.txt'),
62
+ datePattern: 'YYYY-MM-DD',
63
+ level: fileLevel,
64
+ format: fileFormat,
65
+ }));
66
+ }
67
+ const consoleFormat = winston.format.combine(winston.format.timestamp({ format: 'YY-MM-DD HH:mm:ss' }), winston.format.printf((info) => {
68
+ const level = info.level.toUpperCase();
69
+ const message = info.message;
70
+ const colorizedLevel = colorizer.colorize(info.level, level);
71
+ //格式化
72
+ let format = `[${info.timestamp}] [${level}]: `;
73
+ let space = "";
74
+ for (let cha of format)
75
+ space += " ";
76
+ let messageList = message.split("\n");
77
+ messageList[0] = colorizer.colorize(info.level, messageList[0]);
78
+ for (let i = 1; i < messageList.length; i++)
79
+ messageList[i] = colorizer.colorize(info.level, messageList[i]);
80
+ return `[${info.timestamp}] [${colorizedLevel}]: ${messageList.join("\n" + space)}`;
81
+ }));
82
+ transports.push(new winston.transports.Console({
83
+ level: consoleLevel,
84
+ format: consoleFormat,
85
+ }));
86
+ const logger = winston.createLogger({
87
+ levels: logLevels,
88
+ transports: transports,
89
+ });
90
+ const out = new SLogger();
91
+ out._logger = logger;
92
+ if (SLogger.loggerTable[name] != null) {
93
+ let old = SLogger.loggerTable[name];
94
+ old._logger.transports.forEach(tp => {
95
+ if (tp.close != null)
96
+ tp.close();
97
+ });
98
+ }
99
+ SLogger.loggerTable[name] = out;
100
+ return out;
101
+ }
102
+ constructor() { }
103
+ _logger = null;
104
+ /**记录Logger的表 */
105
+ static loggerTable = {};
106
+ //———————————————————— function ——————————————————————//
107
+ /**产生一条对应等级的log 返回自身
108
+ * @param {LogLevel} level - log等级
109
+ * @param {Array<any>} messages - log消息
110
+ * @returns {SLogger} - 自身
111
+ */
112
+ log(level, ...messages) {
113
+ level = level || "silly";
114
+ let strMessages = [];
115
+ for (let message of messages) {
116
+ let out;
117
+ if (message == null)
118
+ out = `<${typeof message}> ${typeof message}`;
119
+ else if (typeof message !== "string")
120
+ out = `<${typeof message}> ${message.toString()}`;
121
+ else
122
+ out = message;
123
+ strMessages.push(out);
124
+ }
125
+ let outMessage = strMessages.join("\n");
126
+ this._logger.log(level, outMessage);
127
+ return this;
128
+ }
129
+ /**产生一条fatal等级的log 返回自身
130
+ * @param {Array<any>} messages - log消息
131
+ * @returns {SLogger} - 自身
132
+ */
133
+ fatal(...messages) {
134
+ return this.log("fatal", ...messages);
135
+ ;
136
+ }
137
+ /**产生一条error等级的log 返回自身
138
+ * @param {Array<any>} messages - log消息
139
+ * @returns {SLogger} - 自身
140
+ */
141
+ error(...messages) {
142
+ return this.log("error", ...messages);
143
+ ;
144
+ }
145
+ /**产生一条warn等级的log 返回自身
146
+ * @param {Array<any>} messages - log消息
147
+ * @returns {SLogger} - 自身
148
+ */
149
+ warn(...messages) {
150
+ return this.log("warn", ...messages);
151
+ ;
152
+ }
153
+ /**产生一条info等级的log 返回自身
154
+ * @param {Array<any>} messages - log消息
155
+ * @returns {SLogger} - 自身
156
+ */
157
+ info(...messages) {
158
+ return this.log("info", ...messages);
159
+ }
160
+ /**产生一条http等级的log 返回自身
161
+ * @param {Array<any>} messages - log消息
162
+ * @returns {SLogger} - 自身
163
+ */
164
+ http(...messages) {
165
+ return this.log("http", ...messages);
166
+ }
167
+ /**产生一条verbose等级的log 返回自身
168
+ * @param {Array<any>} messages - log消息
169
+ * @returns {SLogger} - 自身
170
+ */
171
+ verbose(...messages) {
172
+ return this.log("verbose", ...messages);
173
+ }
174
+ /**产生一条debug等级的log 返回自身
175
+ * @param {Array<any>} messages - log消息
176
+ * @returns {SLogger} - 自身
177
+ */
178
+ debug(...messages) {
179
+ return this.log("debug", ...messages);
180
+ }
181
+ /**产生一条silly等级的log 返回自身
182
+ * @param {Array<any>} messages - log消息
183
+ * @returns {SLogger} - 自身
184
+ */
185
+ silly(...messages) {
186
+ return this.log("silly", ...messages);
187
+ }
188
+ //———————————————————— static ——————————————————————//
189
+ /**名称为default的slogger实例 */
190
+ static get defaultInstance() {
191
+ if (SLogger.loggerTable.default == null)
192
+ SLogger.createLogger();
193
+ return SLogger.loggerTable.default;
194
+ }
195
+ /**让名称为default的logger 产生一条对应等级的log 返回自身
196
+ * @param {LogLevel} level - log等级
197
+ * @param {Array<any>} messages - log消息
198
+ * @returns {SLogger} - 自身
199
+ */
200
+ static log(level, ...messages) {
201
+ level = level || "silly";
202
+ this.defaultInstance.log(level, ...messages);
203
+ return this.defaultInstance;
204
+ }
205
+ /**让名称为default的logger 产生一条fatal等级的log 返回自身
206
+ * @param {Array<any>} messages - log消息
207
+ * @returns {SLogger} - 自身
208
+ */
209
+ static fatal(...messages) {
210
+ return this.log("fatal", ...messages);
211
+ ;
212
+ }
213
+ /**让名称为default的logger 产生一条error等级的log 返回自身
214
+ * @param {Array<any>} messages - log消息
215
+ * @returns {SLogger} - 自身
216
+ */
217
+ static error(...messages) {
218
+ return this.log("error", ...messages);
219
+ ;
220
+ }
221
+ /**让名称为default的logger 产生一条warn等级的log 返回自身
222
+ * @param {Array<any>} messages - log消息
223
+ * @returns {SLogger} - 自身
224
+ */
225
+ static warn(...messages) {
226
+ return this.log("warn", ...messages);
227
+ ;
228
+ }
229
+ /**让名称为default的logger 产生一条info等级的log 返回自身
230
+ * @param {Array<any>} messages - log消息
231
+ * @returns {SLogger} - 自身
232
+ */
233
+ static info(...messages) {
234
+ return this.log("info", ...messages);
235
+ }
236
+ /**让名称为default的logger 产生一条http等级的log 返回自身
237
+ * @param {Array<any>} messages - log消息
238
+ * @returns {SLogger} - 自身
239
+ */
240
+ static http(...messages) {
241
+ return this.log("http", ...messages);
242
+ }
243
+ /**让名称为default的logger 产生一条verbose等级的log 返回自身
244
+ * @param {Array<any>} messages - log消息
245
+ * @returns {SLogger} - 自身
246
+ */
247
+ static verbose(...messages) {
248
+ return this.log("verbose", ...messages);
249
+ }
250
+ /**让名称为default的logger 产生一条debug等级的log 返回自身
251
+ * @param {Array<any>} messages - log消息
252
+ * @returns {SLogger} - 自身
253
+ */
254
+ static debug(...messages) {
255
+ return this.log("debug", ...messages);
256
+ }
257
+ /**让名称为default的logger 产生一条silly等级的log 返回自身
258
+ * @param {Array<any>} messages - log消息
259
+ * @returns {SLogger} - 自身
260
+ */
261
+ static silly(...messages) {
262
+ return this.log("silly", ...messages);
263
+ }
264
+ }
265
+ exports.SLogger = SLogger;
package/dist/index.d.ts CHANGED
@@ -5,3 +5,5 @@ export * from './UtilCom';
5
5
  export * from './UtilCodecs';
6
6
  export * from './UtilFfmpegTools';
7
7
  export * from './UtilDecorators';
8
+ export * from './UtilFileTools';
9
+ export * from './UtilLogger';
package/dist/index.js CHANGED
@@ -21,3 +21,5 @@ __exportStar(require("./UtilCom"), exports);
21
21
  __exportStar(require("./UtilCodecs"), exports);
22
22
  __exportStar(require("./UtilFfmpegTools"), exports);
23
23
  __exportStar(require("./UtilDecorators"), exports);
24
+ __exportStar(require("./UtilFileTools"), exports);
25
+ __exportStar(require("./UtilLogger"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zwa73/utils",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "my utils",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -19,7 +19,9 @@
19
19
  "html-entities": "^2.3.3",
20
20
  "http-proxy-agent": "^5.0.0",
21
21
  "https-proxy-agent": "^5.0.1",
22
- "tiktoken": "^1.0.7"
22
+ "tiktoken": "^1.0.7",
23
+ "winston": "^3.10.0",
24
+ "winston-daily-rotate-file": "^4.7.1"
23
25
  },
24
26
  "devDependencies": {
25
27
  "@types/node": "^18.16.3"