Skip to content

Commit 8f4c641

Browse files
committed
Enhance JSDoc comments for serializers and logger methods
1 parent e0ae4d6 commit 8f4c641

File tree

2 files changed

+57
-23
lines changed

2 files changed

+57
-23
lines changed

lib/internal/logger/serializers.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const { isNativeError } = require('internal/util/types');
44
/**
55
* Serializes an Error object
66
* @param {Error} error
7-
* @returns {object}
7+
* @returns {{ type: string, message: string, stack: string, code?: any, cause?: any } | Error }
88
*/
99
function serializeErr(error) {
1010
if (!isNativeError(error)) {
@@ -42,8 +42,8 @@ function serializeErr(error) {
4242

4343
/**
4444
* Serializes HTTP request object
45-
* @param {{method: string, url: string, headers: string, socket: undefined | {remoteAddress: string, remotePort: string}} req - HTTP request
46-
* @returns {object}
45+
* @param {{ method: string, url: string, headers: object, socket?: { remoteAddress?: string, remotePort?: string } }} req - HTTP request
46+
* @returns {{ method: string, url: string, headers: object, remoteAddress?: string, remotePort?: string }}
4747
*/
4848
function req(req) {
4949
return {
@@ -57,8 +57,8 @@ function req(req) {
5757

5858
/**
5959
* Serializes HTTP response object
60-
* @param {object} res - HTTP response
61-
* @returns {object}
60+
* @param {{ statusCode: number, getHeaders?: () => object, headers?: object }} res - HTTP response
61+
* @returns {{ statusCode: number, headers: object }}
6262
*/
6363
function res(res) {
6464
return {

lib/logger.js

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,13 @@ class Logger {
238238
#serializers;
239239
#hasCustomSerializers;
240240

241+
/**
242+
* Create a new Logger instance
243+
* @param {object} [options]
244+
* @param {string} [options.level] - Minimum log level (default: 'info')
245+
* @param {object} [options.bindings] - Context fields (default: {})
246+
* @param {object} [options.serializers] - Custom serializers (default: {})
247+
*/
241248
constructor(options = kEmptyObject) {
242249
validateObject(options, 'options');
243250
const {
@@ -247,13 +254,7 @@ class Logger {
247254
} = options;
248255

249256
validateString(level, 'options.level');
250-
if (!LEVELS[level]) {
251-
throw new ERR_INVALID_ARG_VALUE(
252-
'options.level',
253-
level,
254-
`must be one of: ${LEVEL_NAMES.join(', ')}`,
255-
);
256-
}
257+
validateOneOf(level, 'options.level', LEVEL_NAMES);
257258

258259
validateObject(bindings, 'options.bindings');
259260
validateObject(serializers, 'options.serializers');
@@ -291,8 +292,8 @@ class Logger {
291292

292293
/**
293294
* Pre-serialize bindings
294-
* @param {object} bindings
295-
* @returns {string}
295+
* @param {object} bindings - Context fields to serialize
296+
* @returns {string} Pre-serialized bindings as JSON string
296297
* @private
297298
*/
298299
#serializeBindings(bindings) {
@@ -329,8 +330,8 @@ class Logger {
329330

330331
/**
331332
* Check if a level would be logged
332-
* @param {string} level
333-
* @returns {boolean}
333+
* @param {string} level - Log level to check
334+
* @returns {boolean} True if enabled, false otherwise
334335
*/
335336
enabled(level) {
336337
return LEVELS[level] >= this.#levelValue;
@@ -340,7 +341,9 @@ class Logger {
340341
* Create a child logger with additional context
341342
* @param {object} bindings - Context to add to all child logs
342343
* @param {object} [options] - Optional overrides
343-
* @returns {Logger}
344+
* @param {object} [options.serializers] - Custom serializers for child logger
345+
* @param {string} [options.level] - Log level for child logger
346+
* @returns {Logger} Child logger instance
344347
*/
345348
child(bindings, options = kEmptyObject) {
346349
validateObject(bindings, 'bindings');
@@ -383,8 +386,8 @@ class Logger {
383386

384387
/**
385388
* Check if value is an Error object
386-
* @param {*} value
387-
* @returns {boolean}
389+
* @param {*} value - Value to check
390+
* @returns {boolean} True if value is an Error
388391
* @private
389392
*/
390393
#isError(value) {
@@ -394,7 +397,7 @@ class Logger {
394397
/**
395398
* Apply serializers to an object's properties
396399
* @param {object} obj - Object to serialize
397-
* @returns {object} Serialized object
400+
* @returns {object} Serialized object with applied serializers
398401
* @private
399402
*/
400403
#applySerializers(obj) {
@@ -423,10 +426,11 @@ class Logger {
423426

424427
/**
425428
* Internal log method
426-
* @param {string} level
427-
* @param {number} levelValue
429+
* @param {string} level - Log level
430+
* @param {number} levelValue - Numeric log level
428431
* @param {string|object} msgOrObj - Message string or object with msg property
429432
* @param {object} [fields] - Optional fields to merge
433+
* @private
430434
*/
431435
#log(level, levelValue, msgOrObj, fields) {
432436
if (levelValue < this.#levelValue) {
@@ -508,7 +512,7 @@ class Logger {
508512
* Serialize Error object for logging (with recursive cause handling)
509513
* @param {object} err - Error object to serialize
510514
* @param {Set} [seen] - Set to track circular references
511-
* @returns {object} Serialized error object
515+
* @returns {object|string} Serialized error object or '[Circular]'
512516
* @private
513517
*/
514518
#serializeError(err, seen = new SafeSet()) {
@@ -542,26 +546,56 @@ class Logger {
542546
return serialized;
543547
}
544548

549+
/**
550+
* Log a message at trace level
551+
* @param {string|object|Error} msgOrObj - Message or object
552+
* @param {object} [fields] - Optional fields
553+
*/
545554
trace(msgOrObj, fields) {
546555
this.#log('trace', LEVELS.trace, msgOrObj, fields);
547556
}
548557

558+
/**
559+
* Log a message at debug level
560+
* @param {string|object|Error} msgOrObj - Message or object
561+
* @param {object} [fields] - Optional fields
562+
*/
549563
debug(msgOrObj, fields) {
550564
this.#log('debug', LEVELS.debug, msgOrObj, fields);
551565
}
552566

567+
/**
568+
* Log a message at info level
569+
* @param {string|object|Error} msgOrObj - Message or object
570+
* @param {object} [fields] - Optional fields
571+
*/
553572
info(msgOrObj, fields) {
554573
this.#log('info', LEVELS.info, msgOrObj, fields);
555574
}
556575

576+
/**
577+
* Log a message at warn level
578+
* @param {string|object|Error} msgOrObj - Message or object
579+
* @param {object} [fields] - Optional fields
580+
*/
557581
warn(msgOrObj, fields) {
558582
this.#log('warn', LEVELS.warn, msgOrObj, fields);
559583
}
560584

585+
/**
586+
* Log a message at error level
587+
* @param {string|object|Error} msgOrObj - Message or object
588+
* @param {object} [fields] - Optional fields
589+
*/
561590
error(msgOrObj, fields) {
562591
this.#log('error', LEVELS.error, msgOrObj, fields);
563592
}
564593

594+
/**
595+
* Log a message at fatal level
596+
* @param {string|object|Error} msgOrObj - Message or object
597+
* @param {object} [fields] - Optional fields
598+
*/
565599
fatal(msgOrObj, fields) {
566600
this.#log('fatal', LEVELS.fatal, msgOrObj, fields);
567601
}

0 commit comments

Comments
 (0)