22
33import { LogLevel } from './constants.mjs' ;
44
5+ /**
6+ * @typedef {import('./types').Metadata } Metadata
7+ * @typedef {import('./types').LogMessage } LogMessage
8+ */
9+
510/**
611 * Creates a logger instance with the specified transport, log level and an
712 * optional module name.
@@ -19,19 +24,27 @@ export const createLogger = (
1924 * Logs a message at the given level with optional metadata.
2025 *
2126 * @param {number } level - Log level for the message.
22- * @param {string } message - Message to log.
23- * @param {import('./types').Metadata } metadata - Additional metadata
27+ * @param {LogMessage } message - Message to log.
28+ * @param {Metadata } metadata - Additional metadata
29+ * @returns {void }
2430 */
2531 const log = ( level , message , metadata = { } ) => {
2632 if ( ! shouldLog ( level ) ) {
2733 return ;
2834 }
2935
36+ if ( Array . isArray ( message ) ) {
37+ return message . forEach ( msg => log ( level , msg , metadata ) ) ;
38+ }
39+
3040 const timestamp = Date . now ( ) ;
3141
42+ // Extract message string from Error object or use message as-is
43+ const msg = message instanceof Error ? message . message : message ;
44+
3245 transport ( {
3346 level,
34- message,
47+ message : msg ,
3548 timestamp,
3649 metadata,
3750 ...( module && { module } ) ,
@@ -41,8 +54,8 @@ export const createLogger = (
4154 /**
4255 * Logs an info message.
4356 *
44- * @param {string } message - Info message to log.
45- * @param {import('./types'). Metadata } metadata - Additional metadata
57+ * @param {LogMessage } message - Info message to log.
58+ * @param {Metadata } metadata - Additional metadata
4659 * @returns {void }
4760 */
4861 const info = ( message , metadata = { } ) =>
@@ -51,8 +64,8 @@ export const createLogger = (
5164 /**
5265 * Logs a warning message.
5366 *
54- * @param {string } message - Warning message to log.
55- * @param {import('./types'). Metadata } metadata - Additional metadata
67+ * @param {LogMessage } message - Warning message to log.
68+ * @param {Metadata } metadata - Additional metadata
5669 * @returns {void }
5770 */
5871 const warn = ( message , metadata = { } ) =>
@@ -61,34 +74,28 @@ export const createLogger = (
6174 /**
6275 * Logs an error message or Error object.
6376 *
64- * @param {string | Error } input - Error message or Error object to log.
65- * @param {import('./types'). Metadata } metadata - Additional metadata
77+ * @param {LogMessage } message - Error message or Error object to log.
78+ * @param {Metadata } metadata - Additional metadata
6679 * @returns {void }
6780 */
68- const error = ( input , metadata = { } ) => {
69- const message = typeof input === 'string' ? input : input . message ;
70-
81+ const error = ( message , metadata = { } ) =>
7182 log ( LogLevel . error , message , metadata ) ;
72- } ;
7383
7484 /**
7585 * Logs a fatal error message or Error object.
7686 *
77- * @param {string | Error } input - Fatal error message or Error object to log.
78- * @param {import('./types'). Metadata } metadata - Additional metadata
87+ * @param {LogMessage } message - Fatal error message or Error object to log.
88+ * @param {Metadata } metadata - Additional metadata
7989 * @returns {void }
8090 */
81- const fatal = ( input , metadata = { } ) => {
82- const message = typeof input === 'string' ? input : input . message ;
83-
91+ const fatal = ( message , metadata = { } ) =>
8492 log ( LogLevel . fatal , message , metadata ) ;
85- } ;
8693
8794 /**
8895 * Logs a debug message.
8996 *
90- * @param {string } message - Debug message to log.
91- * @param {import('./types'). Metadata } metadata - Additional metadata
97+ * @param {LogMessage } message - Debug message to log.
98+ * @param {Metadata } metadata - Additional metadata
9299 * @returns {void }
93100 */
94101 const debug = ( message , metadata = { } ) =>
0 commit comments