@anjianshi/utils 3.7.1 → 3.7.3

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,5 +1,4 @@
1
- import { type ChalkInstance } from 'chalk';
2
- import { type LogInfo, LogHandler } from '../../logging/index.js';
1
+ import { type LogInfo, LogLevel, LogHandler } from '../../logging/index.js';
3
2
  /**
4
3
  * 向 console 输出日志
5
4
  */
@@ -23,12 +22,8 @@ export declare class ConsoleHandler extends LogHandler {
23
22
  (message?: any, ...optionalParams: any[]): void;
24
23
  };
25
24
  };
26
- static readonly levelColors: {
27
- 1: ChalkInstance;
28
- 2: ChalkInstance;
29
- 3: ChalkInstance;
30
- 4: ChalkInstance;
31
- };
25
+ /** 注意:这里的颜色必须是 chalk 支持的有效颜色 */
26
+ static readonly levelColors: Record<LogLevel, string>;
32
27
  private static readonly loggerColors;
33
28
  private static readonly loggerColorMap;
34
29
  static getLoggerColor(logger: string): "green" | "yellow" | "blue" | "cyan" | "magenta" | "greenBright" | "yellowBright" | "blueBright" | "cyanBright" | "magentaBright";
@@ -12,7 +12,8 @@ export class ConsoleHandler extends LogHandler {
12
12
  log(info) {
13
13
  const { logger, level, args } = info;
14
14
  const method = ConsoleHandler.consoleMethods[level];
15
- const levelColor = ConsoleHandler.levelColors[level];
15
+ const levelColorName = ConsoleHandler.levelColors[level];
16
+ const levelColor = chalk[levelColorName] ?? chalk.white;
16
17
  const levelName = formatters.level(info);
17
18
  const loggerColor = chalk[ConsoleHandler.getLoggerColor(logger)];
18
19
  const prefix = [
@@ -28,12 +29,12 @@ export class ConsoleHandler extends LogHandler {
28
29
  [LogLevel.Warning]: console.warn.bind(console),
29
30
  [LogLevel.Error]: console.error.bind(console),
30
31
  };
32
+ /** 注意:这里的颜色必须是 chalk 支持的有效颜色 */
31
33
  static levelColors = {
32
- // 不明确把类型标记为 ChalkInstance 的话,生成出的 .d.ts 会有问题。
33
- [LogLevel.Debug]: chalk.whiteBright, // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
34
- [LogLevel.Info]: chalk.white, // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
35
- [LogLevel.Warning]: chalk.yellowBright, // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
36
- [LogLevel.Error]: chalk.redBright, // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
34
+ [LogLevel.Debug]: 'whiteBright',
35
+ [LogLevel.Info]: 'white',
36
+ [LogLevel.Warning]: 'yellowBright',
37
+ [LogLevel.Error]: 'redBright',
37
38
  };
38
39
  // 可供 logger 选择的颜色
39
40
  static loggerColors = [
@@ -2,7 +2,7 @@
2
2
  * 针对 Node.js 环境定制 logging
3
3
  *
4
4
  * 使用前提:
5
- * - 安装 chalk 依赖
5
+ * - 依赖 chalk
6
6
  */
7
7
  import { type Logger } from '../../logging/index.js';
8
8
  export * from './handlers.js';
@@ -2,7 +2,7 @@
2
2
  * 针对 Node.js 环境定制 logging
3
3
  *
4
4
  * 使用前提:
5
- * - 安装 chalk 依赖
5
+ * - 依赖 chalk
6
6
  */
7
7
  import { logger as defaultLogger } from '../../logging/index.js';
8
8
  import { ConsoleHandler } from './handlers.js';
@@ -25,8 +25,13 @@ export declare function getPrismaLoggingOptions(level: 'debug' | 'info' | 'warn'
25
25
  level: "error";
26
26
  })[];
27
27
  };
28
- /** 把 Prisma 日志重定向到 logger 中 */
29
- export declare function adaptPrismaLogging(prisma: Pick<PrismalClient, '$on'>, logger: Logger, enableDebugLog?: boolean): void;
30
- /** 开启调试日志,并改为通过 logger 记录日志内容 */
28
+ /** 把 Prisma 日常日志重定向到 logger 中 */
29
+ export declare function adaptPrismaLogging(prisma: Pick<PrismalClient, '$on'>, logger: Logger): void;
30
+ /**
31
+ * 开启调试日志,并改为通过 logger 记录日志内容
32
+ *
33
+ * 注意:
34
+ * 因为 Prisma 在代码被引入时就会开始输出日志,若要记录下最完整的日志内容,应在初始化 Prisma Client 前调用此函数
35
+ */
31
36
  export declare function adaptPrismaDebugLogging(logger: Logger): void;
32
37
  export {};
@@ -2,7 +2,7 @@
2
2
  * 对接 Prisma 的日志记录
3
3
  *
4
4
  * 使用前提:
5
- * - 安装 chalk 依赖
5
+ * - 依赖 chalk
6
6
  *
7
7
  * Prisma 输出的日志分两部分:
8
8
  * 1. 日常运行日志,可通过 PrismaClient 的 log 选项控制。
@@ -50,8 +50,8 @@ export function getPrismaLoggingOptions(level) {
50
50
  ],
51
51
  };
52
52
  }
53
- /** 把 Prisma 日志重定向到 logger 中 */
54
- export function adaptPrismaLogging(prisma, logger, enableDebugLog = false) {
53
+ /** 把 Prisma 日常日志重定向到 logger 中 */
54
+ export function adaptPrismaLogging(prisma, logger) {
55
55
  const queryLogger = logger.getChild('query');
56
56
  prisma.$on('query', e => {
57
57
  queryLogger.debug(e.query, chalk.green(nodeUtil.format(e.params) + ` +${e.duration}ms`));
@@ -59,10 +59,13 @@ export function adaptPrismaLogging(prisma, logger, enableDebugLog = false) {
59
59
  prisma.$on('info', e => logger.info(e.message));
60
60
  prisma.$on('warn', e => logger.warn(e.message));
61
61
  prisma.$on('error', e => logger.error(e.message));
62
- if (enableDebugLog)
63
- adaptPrismaDebugLogging(logger);
64
62
  }
65
- /** 开启调试日志,并改为通过 logger 记录日志内容 */
63
+ /**
64
+ * 开启调试日志,并改为通过 logger 记录日志内容
65
+ *
66
+ * 注意:
67
+ * 因为 Prisma 在代码被引入时就会开始输出日志,若要记录下最完整的日志内容,应在初始化 Prisma Client 前调用此函数
68
+ */
66
69
  export function adaptPrismaDebugLogging(logger) {
67
70
  ;
68
71
  globalThis.DEBUG = '*';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anjianshi/utils",
3
- "version": "3.7.1",
3
+ "version": "3.7.3",
4
4
  "description": "Common JavaScript Utils",
5
5
  "homepage": "https://github.com/anjianshi/js-packages/utils",
6
6
  "bugs": {
@@ -41,9 +41,9 @@
41
41
  "@anjianshi/presets-eslint-base": "6.1.2",
42
42
  "@anjianshi/presets-eslint-node": "6.1.2",
43
43
  "@anjianshi/presets-eslint-react": "6.1.3",
44
- "@anjianshi/presets-eslint-typescript": "6.1.2",
45
44
  "@anjianshi/presets-prettier": "3.2.0",
46
- "@anjianshi/presets-typescript": "3.2.5"
45
+ "@anjianshi/presets-typescript": "3.2.5",
46
+ "@anjianshi/presets-eslint-typescript": "6.1.2"
47
47
  },
48
48
  "prettier": "@anjianshi/presets-prettier/prettierrc"
49
49
  }