@hkdigital/lib-sveltekit 0.2.15 → 0.2.16

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.
@@ -64,15 +64,13 @@ export default class Logger extends EventEmitter {
64
64
  */
65
65
  context(namespace: string, additionalContext: any): Logger;
66
66
  /**
67
- * Internal logging method
67
+ * Log an event of type LogEvent,
68
+ * e.g. an event that was created by another Logger instance and should be
69
+ * forwarded to this logger.
68
70
  *
69
- * @param {string} level - Log level
70
- * @param {string} message - Log message
71
- * @param {*} [details] - Additional details to include in the log
72
- * @returns {boolean} True if the log was emitted, false if filtered
73
- * @private
71
+ * @param {import('./typedef.js').LogEvent} logEvent
74
72
  */
75
- private _log;
73
+ logEvent(logEvent: import("./typedef.js").LogEvent): boolean;
76
74
  #private;
77
75
  }
78
76
  import { EventEmitter } from '../events';
@@ -84,7 +84,7 @@ export default class Logger extends EventEmitter {
84
84
  * @returns {boolean} True if the log was emitted
85
85
  */
86
86
  debug(message, details) {
87
- return this._log(DEBUG, message, details);
87
+ return this.#log(DEBUG, message, details);
88
88
  }
89
89
 
90
90
  /**
@@ -95,7 +95,7 @@ export default class Logger extends EventEmitter {
95
95
  * @returns {boolean} True if the log was emitted
96
96
  */
97
97
  info(message, details) {
98
- return this._log(INFO, message, details);
98
+ return this.#log(INFO, message, details);
99
99
  }
100
100
 
101
101
  /**
@@ -106,7 +106,7 @@ export default class Logger extends EventEmitter {
106
106
  * @returns {boolean} True if the log was emitted
107
107
  */
108
108
  warn(message, details) {
109
- return this._log(WARN, message, details);
109
+ return this.#log(WARN, message, details);
110
110
  }
111
111
 
112
112
  /**
@@ -117,7 +117,7 @@ export default class Logger extends EventEmitter {
117
117
  * @returns {boolean} True if the log was emitted
118
118
  */
119
119
  error(message, details) {
120
- return this._log(ERROR, message, details);
120
+ return this.#log(ERROR, message, details);
121
121
  }
122
122
 
123
123
  /**
@@ -143,6 +143,24 @@ export default class Logger extends EventEmitter {
143
143
  return new Logger(this.name, this.level, mergedContext);
144
144
  }
145
145
 
146
+ /**
147
+ * Log an event of type LogEvent,
148
+ * e.g. an event that was created by another Logger instance and should be
149
+ * forwarded to this logger.
150
+ *
151
+ * @param {import('./typedef.js').LogEvent} logEvent
152
+ */
153
+ logEvent( logEvent ) {
154
+ const level = logEvent.level;
155
+
156
+ // Check if this log level should be filtered
157
+ if (LEVELS[level] < LEVELS[this.level]) {
158
+ return false; // Below threshold, don't emit
159
+ }
160
+
161
+ this.#logEvent( logEvent );
162
+ }
163
+
146
164
  /**
147
165
  * Internal logging method
148
166
  *
@@ -150,15 +168,15 @@ export default class Logger extends EventEmitter {
150
168
  * @param {string} message - Log message
151
169
  * @param {*} [details] - Additional details to include in the log
152
170
  * @returns {boolean} True if the log was emitted, false if filtered
153
- * @private
154
171
  */
155
- _log(level, message, details) {
172
+ #log(level, message, details) {
156
173
  // Check if this log level should be filtered
157
174
  if (LEVELS[level] < LEVELS[this.level]) {
158
175
  return false; // Below threshold, don't emit
159
176
  }
160
177
 
161
178
  const timestamp = new Date();
179
+
162
180
  const logEvent = {
163
181
  timestamp,
164
182
  service: this.name,
@@ -174,4 +192,17 @@ export default class Logger extends EventEmitter {
174
192
 
175
193
  return true;
176
194
  }
195
+
196
+ /**
197
+ * Internal event loggin method
198
+ *
199
+ * @param {import('./typedef.js').LogEvent} logEvent
200
+ */
201
+ #logEvent(logEvent) {
202
+ // Emit as both specific level event and generic 'log' event
203
+ this.emit(logEvent.level, logEvent);
204
+ this.emit('log', logEvent);
205
+
206
+ return true;
207
+ }
177
208
  }
@@ -0,0 +1,28 @@
1
+ declare const _default: {};
2
+ export default _default;
3
+ export type LogEvent = {
4
+ /**
5
+ * - When the log event was created
6
+ */
7
+ timestamp: Date;
8
+ /**
9
+ * - Name of the service/component that logged this event
10
+ */
11
+ service: string;
12
+ /**
13
+ * - Log level (DEBUG, INFO, WARN, ERROR)
14
+ */
15
+ level: string;
16
+ /**
17
+ * - The log message
18
+ */
19
+ message: string;
20
+ /**
21
+ * - Default context data from the logger (null if no context)
22
+ */
23
+ context: any | null;
24
+ /**
25
+ * - Additional details provided with the log (optional)
26
+ */
27
+ details?: any;
28
+ };
@@ -0,0 +1,12 @@
1
+
2
+ /**
3
+ * @typedef {Object} LogEvent
4
+ * @property {Date} timestamp - When the log event was created
5
+ * @property {string} service - Name of the service/component that logged this event
6
+ * @property {string} level - Log level (DEBUG, INFO, WARN, ERROR)
7
+ * @property {string} message - The log message
8
+ * @property {Object|null} context - Default context data from the logger (null if no context)
9
+ * @property {*} [details] - Additional details provided with the log (optional)
10
+ */
11
+
12
+ export default {};
@@ -86,7 +86,7 @@ export default class NetworkLoader {
86
86
  this._url = url;
87
87
 
88
88
  const state = this._state;
89
- const progress = this.progress;
89
+ // const progress = this.progress;
90
90
 
91
91
  //
92
92
  // ISSUE: $effect is not triggered by this._state changes,
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Create a client-side logger with console adapter
3
3
  *
4
- * @param {string} serviceName - Name of the service
4
+ * @param {string} name
5
5
  * @param {string} [level=INFO] - Initial log level
6
6
  * @param {Object} [consoleOptions] - Additional console options
7
7
  * @returns {Logger} Configured logger instance
8
8
  */
9
- export function createClientLogger(serviceName: string, level?: string, consoleOptions?: any): Logger;
9
+ export function createClientLogger(name: string, level?: string, consoleOptions?: any): Logger;
10
10
  import { Logger } from '../../classes/logging';
@@ -5,13 +5,13 @@ import { INFO } from '../constants.js';
5
5
  /**
6
6
  * Create a client-side logger with console adapter
7
7
  *
8
- * @param {string} serviceName - Name of the service
8
+ * @param {string} name
9
9
  * @param {string} [level=INFO] - Initial log level
10
10
  * @param {Object} [consoleOptions] - Additional console options
11
11
  * @returns {Logger} Configured logger instance
12
12
  */
13
- export function createClientLogger(serviceName, level = INFO, consoleOptions = {}) {
14
- const logger = new Logger(serviceName, level);
13
+ export function createClientLogger(name, level = INFO, consoleOptions = {}) {
14
+ const logger = new Logger(name, level);
15
15
  const adapter = new ConsoleAdapter({ ...consoleOptions, level });
16
16
 
17
17
  // Connect adapter to logger events
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Create a server-side logger with pino adapter
3
3
  *
4
- * @param {string} serviceName - Name of the service
4
+ * @param {string} name
5
5
  * @param {string} [level=INFO] - Initial log level
6
6
  * @param {Object} [pinoOptions] - Additional pino options
7
7
  * @returns {Logger} Configured logger instance
8
8
  */
9
- export function createServerLogger(serviceName: string, level?: string, pinoOptions?: any): Logger;
9
+ export function createServerLogger(name: string, level?: string, pinoOptions?: any): Logger;
10
10
  import { Logger } from '../../classes/logging';
@@ -6,13 +6,13 @@ import { INFO } from '../constants.js';
6
6
  /**
7
7
  * Create a server-side logger with pino adapter
8
8
  *
9
- * @param {string} serviceName - Name of the service
9
+ * @param {string} name
10
10
  * @param {string} [level=INFO] - Initial log level
11
11
  * @param {Object} [pinoOptions] - Additional pino options
12
12
  * @returns {Logger} Configured logger instance
13
13
  */
14
- export function createServerLogger(serviceName, level = INFO, pinoOptions = {}) {
15
- const logger = new Logger(serviceName, level);
14
+ export function createServerLogger(name, level = INFO, pinoOptions = {}) {
15
+ const logger = new Logger(name, level);
16
16
  const adapter = new PinoAdapter(pinoOptions);
17
17
 
18
18
  // Connect adapter to logger events
@@ -5,3 +5,4 @@ export { createServerLogger } from './factories/server.js';
5
5
  export { createClientLogger } from './factories/client.js';
6
6
  export { createLogger } from './factories/universal.js';
7
7
 
8
+ export * from '../classes/logger/typedef.js';
@@ -356,12 +356,12 @@ export async function httpRequest(options) {
356
356
  }
357
357
 
358
358
  // Create stale info
359
- const staleInfo = {
360
- isStale: false,
361
- fresh: null,
362
- timestamp: Date.now(),
363
- expires
364
- };
359
+ // const staleInfo = {
360
+ // isStale: false,
361
+ // fresh: null,
362
+ // timestamp: Date.now(),
363
+ // expires
364
+ // };
365
365
 
366
366
  // Store response in cache
367
367
  const cacheKeyParams = { url, ...headers };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hkdigital/lib-sveltekit",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "author": {
5
5
  "name": "HKdigital",
6
6
  "url": "https://hkdigital.nl"