nightingale-logger 18.1.0 → 18.2.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [18.2.0](https://github.com/christophehurpeau/nightingale/compare/v18.1.0...v18.2.0) (2026-06-12)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **deps:** update dependency @types/node to >=22.19.1 ([#1280](https://github.com/christophehurpeau/nightingale/issues/1280))
11
+ * **deps:** update dependency @types/node to v24.10.4 ([#1269](https://github.com/christophehurpeau/nightingale/issues/1269))
12
+
13
+ Version bump for dependency: nightingale-levels
14
+ Version bump for dependency: nightingale-types
15
+
16
+
6
17
  ## [18.1.0](https://github.com/christophehurpeau/nightingale/compare/v18.0.0...v18.1.0) (2025-11-18)
7
18
 
8
19
  ### Features
@@ -33,6 +33,9 @@ function isError(messageOrError) {
33
33
  return messageOrError instanceof Error;
34
34
  }
35
35
  class Logger {
36
+ contextObject;
37
+ key;
38
+ displayName;
36
39
  /**
37
40
  * Create a new Logger
38
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.es.js","sources":["../src/inspectValue.ts","../src/index.ts"],"sourcesContent":["export const inspectValue = (value: unknown): string => {\n throw new Error(\"Not supported for the browser. Prefer `debugger;`\");\n};\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser.es.js","sources":["../src/inspectValue.ts","../src/index.ts"],"sourcesContent":["export const inspectValue = (value: unknown): string => {\n throw new Error(\"Not supported for the browser. Prefer `debugger;`\");\n};\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
@@ -36,6 +36,9 @@ function isError(messageOrError) {
36
36
  return messageOrError instanceof Error;
37
37
  }
38
38
  class Logger {
39
+ contextObject;
40
+ key;
41
+ displayName;
39
42
  /**
40
43
  * Create a new Logger
41
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index-node22.mjs","sources":["../src/inspectValue.target-node.ts","../src/index.ts"],"sourcesContent":["import * as util from \"node:util\";\n\nexport const inspectValue = (value: unknown): string =>\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n util.inspect(value, { depth: 6 });\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
1
+ {"version":3,"file":"index-node22.mjs","sources":["../src/inspectValue.target-node.ts","../src/index.ts"],"sourcesContent":["import * as util from \"node:util\";\n\nexport const inspectValue = (value: unknown): string =>\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n util.inspect(value, { depth: 6 });\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
@@ -33,6 +33,9 @@ function isError(messageOrError) {
33
33
  return messageOrError instanceof Error;
34
34
  }
35
35
  class Logger {
36
+ contextObject;
37
+ key;
38
+ displayName;
36
39
  /**
37
40
  * Create a new Logger
38
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index-react-native.es.js","sources":["../src/inspectValue.ts","../src/index.ts"],"sourcesContent":["export const inspectValue = (value: unknown): string => {\n throw new Error(\"Not supported for the browser. Prefer `debugger;`\");\n};\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
1
+ {"version":3,"file":"index-react-native.es.js","sources":["../src/inspectValue.ts","../src/index.ts"],"sourcesContent":["export const inspectValue = (value: unknown): string => {\n throw new Error(\"Not supported for the browser. Prefer `debugger;`\");\n};\n","import { Level } from \"nightingale-levels\";\nimport type {\n Handler,\n LogRecord,\n Metadata,\n MetadataStyles,\n Processor,\n Styles,\n} from \"nightingale-types\";\nimport { inspectValue } from \"./inspectValue.ts\";\n\nexport { Level } from \"nightingale-levels\";\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\nexport interface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n var __NIGHTINGALE_CONFIG: Config[];\n\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof globalThis =\n typeof globalThis !== \"undefined\" ? globalThis : globalThis;\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== \"production\" && key.includes(\".\")) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n \"Cannot extends context that does not exists. Use setContext(context) first.\",\n );\n }\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log(\"[nightingale] no logger for > error level.\", {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError && !(metadata && Object.hasOwn(metadata, \"error\"))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(value);\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"gray\"],\n });\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n const inspectedValue = inspectValue(varValue);\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: [\"cyan\"],\n });\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✔\",\n styles: [\"green\"],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\", \"bold\"],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n messageOrError: Error | string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: \"✖\",\n styles: [\"red\"],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : \"\"}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: \"✔\",\n styles: [\"green\", \"bold\"],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"enter\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log(\"exit\", extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === \"function\") {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === \"function\") {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["process"],"mappings":"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"}
package/package.json CHANGED
@@ -1,27 +1,31 @@
1
1
  {
2
2
  "name": "nightingale-logger",
3
- "version": "18.1.0",
3
+ "version": "18.2.0",
4
4
  "description": "Logger for browser and node",
5
5
  "keywords": [
6
6
  "nightingale"
7
7
  ],
8
- "author": "Christophe Hurpeau <christophe@hurpeau.com> (http://christophe.hurpeau.com/)",
8
+ "homepage": "https://github.com/christophehurpeau/nightingale",
9
+ "bugs": {
10
+ "url": "https://github.com/christophehurpeau/nightingale/issues"
11
+ },
9
12
  "license": "ISC",
13
+ "author": "Christophe Hurpeau <christophe@hurpeau.com> (http://christophe.hurpeau.com/)",
10
14
  "repository": {
11
15
  "type": "git",
12
16
  "url": "https://github.com/christophehurpeau/nightingale.git",
13
17
  "directory": "packages/nightingale-logger"
14
18
  },
15
- "homepage": "https://github.com/christophehurpeau/nightingale",
19
+ "files": [
20
+ "src",
21
+ "dist"
22
+ ],
16
23
  "type": "module",
17
- "engines": {
18
- "node": ">=22.18.0"
19
- },
20
24
  "sideEffects": false,
21
25
  "main": "./dist/index-node22.mjs",
22
- "types": "./dist/definitions/index.d.ts",
23
26
  "module": "./dist/index-browser.es.js",
24
27
  "browser": "./dist/index-browser.es.js",
28
+ "types": "./dist/definitions/index.d.ts",
25
29
  "exports": {
26
30
  "./package.json": "./package.json",
27
31
  ".": {
@@ -37,20 +41,26 @@
37
41
  }
38
42
  }
39
43
  },
40
- "files": [
41
- "src",
42
- "dist"
43
- ],
44
44
  "scripts": {
45
- "build": "yarn clean:build && rollup --config rollup.config.mjs && yarn run build:definitions",
45
+ "build": "yarn run clean:build && rollup --config rollup.config.mjs && yarn run build:definitions",
46
46
  "build:definitions": "tsc -p tsconfig.json",
47
47
  "clean": "yarn clean:build",
48
48
  "clean:build": "pob-esbuild-clean-out dist",
49
49
  "lint": "yarn run lint:eslint",
50
- "lint:eslint": "yarn ../.. run eslint --quiet packages/nightingale-logger",
51
- "test": "yarn ../../ run test -- packages/nightingale-logger",
50
+ "lint:eslint": "yarn '../..' run eslint --quiet 'packages/nightingale-logger'",
51
+ "test": "yarn '../..' run test -- 'packages/nightingale-logger'",
52
+ "tsc": "tsc",
52
53
  "watch": "yarn clean:build && rollup --config rollup.config.mjs --watch"
53
54
  },
55
+ "dependencies": {
56
+ "@types/node": ">=22.0.0",
57
+ "nightingale-levels": "18.2.0",
58
+ "nightingale-types": "18.2.0"
59
+ },
60
+ "devDependencies": {
61
+ "@pob/rollup-esbuild": "9.1.1",
62
+ "typescript": "6.0.3"
63
+ },
54
64
  "browserslist": {
55
65
  "production": [
56
66
  "defaults",
@@ -60,6 +70,9 @@
60
70
  "not ios_saf < 10"
61
71
  ]
62
72
  },
73
+ "engines": {
74
+ "node": ">=22.18.0"
75
+ },
63
76
  "pob": {
64
77
  "bundler": "rollup-esbuild",
65
78
  "entries": [
@@ -78,15 +91,5 @@
78
91
  }
79
92
  ],
80
93
  "typescript": true
81
- },
82
- "prettier": "@pob/root/prettier-config",
83
- "dependencies": {
84
- "@types/node": ">=22.19.1",
85
- "nightingale-levels": "18.0.0",
86
- "nightingale-types": "18.0.0"
87
- },
88
- "devDependencies": {
89
- "@pob/rollup-esbuild": "7.3.2",
90
- "typescript": "5.9.3"
91
94
  }
92
95
  }
package/src/index.test.ts CHANGED
@@ -1,5 +1,4 @@
1
- // eslint-disable-next-line import/no-extraneous-dependencies
2
- import { jest } from "@jest/globals";
1
+ import { expect, test, vi } from "vitest";
3
2
  import { Logger } from "./index.ts";
4
3
 
5
4
  test("key argument", () => {
@@ -37,7 +36,7 @@ test("extends undefined context", () => {
37
36
  test("passing error", () => {
38
37
  const error = new Error("Test");
39
38
  const logger = new Logger("test");
40
- logger.addRecord = jest.fn();
39
+ logger.addRecord = vi.fn();
41
40
  logger.log(error);
42
41
  expect(logger.addRecord).toHaveBeenNthCalledWith(1, {
43
42
  context: undefined,
package/src/index.ts CHANGED
@@ -260,7 +260,7 @@ export class Logger {
260
260
  datetime: new Date(),
261
261
  message,
262
262
  context: context || this.contextObject,
263
- metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,
263
+ metadata: extendedMetadata,
264
264
  extra: {},
265
265
  ...options,
266
266
  };