baja-lite 1.8.15 → 1.8.17

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/event.js CHANGED
@@ -78,17 +78,21 @@ function packPayload(args) {
78
78
  */
79
79
  export function on(event, listener, opts) {
80
80
  const bus = getEventBus();
81
- if (opts?.unique && bus.listenerCount(event) > 0)
81
+ if (opts?.unique && bus.listenerCount(event) > 0) {
82
+ eventLog(`event ${event} already has listener, skip register`);
82
83
  return;
84
+ }
83
85
  if (opts?.once) {
84
86
  const wrapper = (...args) => {
85
87
  bus.off(event, wrapper);
86
88
  listener(...args);
87
89
  };
88
90
  bus.on(event, wrapper);
91
+ eventLog(`event ${event} registered as once`);
89
92
  }
90
93
  else {
91
94
  bus.on(event, listener);
95
+ eventLog(`event ${event} registered`);
92
96
  }
93
97
  }
94
98
  /**
@@ -115,9 +119,11 @@ export function off(event, listener) {
115
119
  const bus = getEventBus();
116
120
  if (listener) {
117
121
  bus.off(event, listener);
122
+ eventLog(`event ${event} listener removed`);
118
123
  }
119
124
  else {
120
125
  bus.removeAllListeners(event);
126
+ eventLog(`event ${event} all listeners removed`);
121
127
  }
122
128
  }
123
129
  /**
@@ -163,9 +169,14 @@ export function trigger(event, args, opts) {
163
169
  redis.publish(`${CHANNEL_PREFIX}${event}`, packPayload(a)).catch((err) => {
164
170
  getLogger()?.warn?.(`event publish "${event}" failed: ${err?.message ?? err}`);
165
171
  });
172
+ eventLog(`event ${event} published to remote`);
173
+ }
174
+ else {
175
+ eventLog(`event ${event} can't publish because redis is not configured`);
166
176
  }
167
177
  }
168
178
  if (local) {
179
+ eventLog(`event ${event} emitted to local`);
169
180
  return getEventBus().emit(event, ...a);
170
181
  }
171
182
  return false;
@@ -197,7 +208,7 @@ export async function initEventSubscriber() {
197
208
  _subscriberReady = true;
198
209
  const redis = getRedis();
199
210
  if (!redis) {
200
- getLogger()?.debug?.('event subscriber: Redis not configured, skip');
211
+ getLogger()?.error?.('event subscriber: Redis not configured, skip');
201
212
  return;
202
213
  }
203
214
  try {
@@ -220,10 +231,16 @@ export async function initEventSubscriber() {
220
231
  }
221
232
  });
222
233
  await sub.psubscribe(SUBSCRIBE_PATTERN);
223
- getLogger()?.debug?.('event subscriber: Redis bridge ready');
234
+ getLogger()?.info?.('event subscriber: Redis bridge ready');
224
235
  }
225
236
  catch (err) {
226
- getLogger()?.warn?.(`event subscriber init failed: ${err?.message ?? err}`);
237
+ getLogger()?.error?.(`event subscriber init failed: ${err?.message ?? err}`);
227
238
  _subscriberReady = false; // 允许重试
228
239
  }
229
240
  }
241
+ /** @internal 输出缓存分类日志(仅当 setLogLevels 包含 'cache' 时生效) */
242
+ function eventLog(message, ...params) {
243
+ const logger = globalThis[_LoggerService];
244
+ // pino-pretty 的 messageFormat 会根据 level=24 自动添加 [CACHE] 前缀
245
+ logger.debugCategory?.('event', message, ...params);
246
+ }
package/logger.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  * - log: ['debug'] 看所有 debug(包括 sql/cache)
9
9
  * - log: ['info'] 标准行为,只看 info+
10
10
  */
11
- export declare const LOG_LEVELS: readonly ["verbose", "sql", "cache", "debug", "info", "log", "warn", "error", "fatal"];
11
+ export declare const LOG_LEVELS: readonly ["verbose", "sql", "cache", "debug", "info", "log", "warn", "error", "fatal", "event"];
12
12
  export type LogLevel = (typeof LOG_LEVELS)[number];
13
13
  export interface LoggerService {
14
14
  log(message: any, ...optionalParams: any[]): any;
package/logger.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * - log: ['debug'] 看所有 debug(包括 sql/cache)
9
9
  * - log: ['info'] 标准行为,只看 info+
10
10
  */
11
- export const LOG_LEVELS = ["verbose", "sql", "cache", "debug", "info", "log", "warn", "error", "fatal"];
11
+ export const LOG_LEVELS = ["verbose", "sql", "cache", "debug", "info", "log", "warn", "error", "fatal", "event"];
12
12
  /**
13
13
  * baja-lite 专用 Logger。接口兼容 NestJS LoggerService,可直接在 NestJS 项目中替换使用。
14
14
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baja-lite",
3
- "version": "1.8.15",
3
+ "version": "1.8.17",
4
4
  "description": "some util for self",
5
5
  "homepage": "https://github.com/void-soul/baja-lite",
6
6
  "repository": {