@hkdigital/lib-core 0.4.33 → 0.4.34

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,3 +1,4 @@
1
+ /** @typedef {import('../../typedef.js').LogLevel} LogLevel */
1
2
  /**
2
3
  * Logger class for consistent logging
3
4
  * @extends EventEmitter
@@ -7,19 +8,19 @@ export default class Logger extends EventEmitter {
7
8
  * Create a new Logger instance
8
9
  *
9
10
  * @param {string} name - Name of the service/component for this logger
10
- * @param {string} [defaultLevel=INFO] - Initial log level threshold
11
+ * @param {LogLevel} [defaultLevel=INFO] - Initial log level threshold
11
12
  * @param {Object} [context={}] - Default context data for all logs
12
13
  */
13
- constructor(name: string, defaultLevel?: string, context?: Object);
14
+ constructor(name: string, defaultLevel?: LogLevel, context?: Object);
14
15
  name: string;
15
- level: string;
16
+ level: import("../../typedef.js").LogLevel;
16
17
  /**
17
18
  * Set the minimum log level threshold
18
19
  *
19
- * @param {string} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
20
+ * @param {LogLevel} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
20
21
  * @returns {boolean} True if level was valid and set, false otherwise
21
22
  */
22
- setLevel(level: string): boolean;
23
+ setLevel(level: LogLevel): boolean;
23
24
  /**
24
25
  * Log a debug message
25
26
  *
@@ -77,11 +78,11 @@ export default class Logger extends EventEmitter {
77
78
  * E.g. an event that was created by another Logger instance and should be
78
79
  * forwarded to this logger.
79
80
  *
80
- * @param {string} eventName
81
81
  * @param {import('../../typedef.js').LogEventData} eventData
82
82
  */
83
- logFromEvent(eventName: string, eventData: import("../../typedef.js").LogEventData): false | undefined;
83
+ logFromEvent(eventData: import("../../typedef.js").LogEventData): false | undefined;
84
84
  #private;
85
85
  }
86
86
  export type ErrorDetails = import("../../../generic/typedef.js").ErrorDetails;
87
+ export type LogLevel = import("../../typedef.js").LogLevel;
87
88
  import { EventEmitter } from '../../../generic/events.js';
@@ -59,6 +59,8 @@ import { exportNotNullish } from '../../../util/object.js';
59
59
  import * as is from '../../../util/is.js';
60
60
  import { HttpError } from '../../../network/errors.js';
61
61
 
62
+ /** @typedef {import('../../typedef.js').LogLevel} LogLevel */
63
+
62
64
  /**
63
65
  * Logger class for consistent logging
64
66
  * @extends EventEmitter
@@ -71,7 +73,7 @@ export default class Logger extends EventEmitter {
71
73
  * Create a new Logger instance
72
74
  *
73
75
  * @param {string} name - Name of the service/component for this logger
74
- * @param {string} [defaultLevel=INFO] - Initial log level threshold
76
+ * @param {LogLevel} [defaultLevel=INFO] - Initial log level threshold
75
77
  * @param {Object} [context={}] - Default context data for all logs
76
78
  */
77
79
  constructor(name, defaultLevel = INFO, context = {}) {
@@ -86,7 +88,7 @@ export default class Logger extends EventEmitter {
86
88
  /**
87
89
  * Set the minimum log level threshold
88
90
  *
89
- * @param {string} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
91
+ * @param {LogLevel} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
90
92
  * @returns {boolean} True if level was valid and set, false otherwise
91
93
  */
92
94
  setLevel(level) {
@@ -239,10 +241,9 @@ export default class Logger extends EventEmitter {
239
241
  * E.g. an event that was created by another Logger instance and should be
240
242
  * forwarded to this logger.
241
243
  *
242
- * @param {string} eventName
243
244
  * @param {import('../../typedef.js').LogEventData} eventData
244
245
  */
245
- logFromEvent(eventName, eventData) {
246
+ logFromEvent(eventData) {
246
247
  const level = eventData.level;
247
248
 
248
249
  // Check if this log level should be filtered
@@ -250,13 +251,13 @@ export default class Logger extends EventEmitter {
250
251
  return false; // Below threshold, don't emit
251
252
  }
252
253
 
253
- this.#logEvent({ ...eventData, eventName });
254
+ this.#logEvent(eventData);
254
255
  }
255
256
 
256
257
  /**
257
258
  * Internal logging method
258
259
  *
259
- * @param {string} level - Log level
260
+ * @param {LogLevel} level - Log level
260
261
  * @param {string} message - Log message
261
262
  * @param {*} [details] - Additional details to include in the log
262
263
  * @returns {boolean} True if the log was emitted, false if filtered
@@ -355,8 +356,10 @@ export default class Logger extends EventEmitter {
355
356
  if (reason instanceof Error) {
356
357
  return reason;
357
358
  }
359
+ // @ts-ignore
358
360
  else if ( is.object(reason) && reason?.message ) {
359
361
  // reason is an object with message property
362
+ // @ts-ignore
360
363
  return new DetailedError(reason?.message, reason);
361
364
  }
362
365
  else if ( typeof reason === "string" ) {
@@ -302,8 +302,8 @@ const manager = new ServiceManager();
302
302
  const logger = createServerLogger('SystemLogger');
303
303
 
304
304
  // Listen to all log events and forward them to the logger
305
- const unsubscribe = manager.onServiceLogEvent((logEvent) => {
306
- logger.logFromEvent('manager:service:log', logEvent);
305
+ const unsubscribe = manager.onLogEvent((logEvent) => {
306
+ logger.logFromEvent(logEvent);
307
307
  });
308
308
 
309
309
  // Register services
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hkdigital/lib-core",
3
- "version": "0.4.33",
3
+ "version": "0.4.34",
4
4
  "author": {
5
5
  "name": "HKdigital",
6
6
  "url": "https://hkdigital.nl"