nightingale-logger 11.5.2 → 11.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index-browsermodern-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport Level from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\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\ninterface 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 // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const {\n handlers,\n processors,\n }: ComputedConfigForKey = global.__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\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\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 (!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 global.__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 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) => process(record, record.context));\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<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: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<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: ['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<T & ExtendedFunctionNameMetadata>,\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<T & ExtendedFunctionNameMetadata>,\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 as MetadataStyles<T>);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
1
+ {"version":3,"file":"index-browsermodern-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\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\ninterface 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 // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__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\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\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 (!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 global.__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 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 message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<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: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<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: ['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<T & ExtendedFunctionNameMetadata>,\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<T & ExtendedFunctionNameMetadata>,\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\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import Level from 'nightingale-levels';
2
- export { default as Level } from 'nightingale-levels';
1
+ import { Level } from 'nightingale-levels';
2
+ export { Level } from 'nightingale-levels';
3
3
 
4
4
  /* eslint-disable max-lines */
5
5
 
@@ -142,7 +142,9 @@ class Logger {
142
142
  }
143
143
 
144
144
  if (processors) {
145
- processors.forEach(process => process(record, record.context));
145
+ processors.forEach(process => {
146
+ process(record, record.context);
147
+ });
146
148
  }
147
149
 
148
150
  handlers.some(handler => handler.handle(record) === false);
@@ -525,6 +527,5 @@ class Logger {
525
527
 
526
528
  }
527
529
 
528
- export default Logger;
529
- export { Logger };
530
+ export { Logger, Logger as default };
530
531
  //# sourceMappingURL=index-browsermodern.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport Level from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\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\ninterface 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 // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const {\n handlers,\n processors,\n }: ComputedConfigForKey = global.__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\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\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 (!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 global.__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 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) => process(record, record.context));\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<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: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<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: ['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<T & ExtendedFunctionNameMetadata>,\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<T & ExtendedFunctionNameMetadata>,\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 as MetadataStyles<T>);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
1
+ {"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\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\ninterface 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 // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__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\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\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 (!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 global.__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 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 message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, 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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\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 if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\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 message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<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: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<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: ['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<T & ExtendedFunctionNameMetadata>,\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<T & ExtendedFunctionNameMetadata>,\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\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
@@ -3,11 +3,21 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const util = require('util');
6
- const Level = require('nightingale-levels');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
6
+ const nightingaleLevels = require('nightingale-levels');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ const n = Object.create(null);
11
+ if (e) {
12
+ for (const k in e) {
13
+ n[k] = e[k];
14
+ }
15
+ }
16
+ n["default"] = e;
17
+ return n;
18
+ }
9
19
 
10
- const Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
20
+ const util__namespace = /*#__PURE__*/_interopNamespace(util);
11
21
 
12
22
  /* eslint-disable max-lines */
13
23
 
@@ -142,7 +152,7 @@ class Logger {
142
152
  } = this.getHandlersAndProcessors(record.level);
143
153
 
144
154
  if (handlers.length === 0) {
145
- if (record.level > Level__default.ERROR) {
155
+ if (record.level > nightingaleLevels.Level.ERROR) {
146
156
  // eslint-disable-next-line no-console
147
157
  console.log('[nightingale] no logger for > error level.', {
148
158
  key: record.key,
@@ -154,7 +164,9 @@ class Logger {
154
164
  }
155
165
 
156
166
  if (processors) {
157
- processors.forEach(process => process(record, record.context));
167
+ processors.forEach(process => {
168
+ process(record, record.context);
169
+ });
158
170
  }
159
171
 
160
172
  handlers.some(handler => handler.handle(record) === false);
@@ -164,7 +176,7 @@ class Logger {
164
176
  */
165
177
 
166
178
 
167
- log(message, metadata, level = Level__default.INFO, options) {
179
+ log(message, metadata, level = nightingaleLevels.Level.INFO, options) {
168
180
  const context = metadata === null || metadata === void 0 ? void 0 : metadata.context;
169
181
 
170
182
  if (metadata) {
@@ -190,7 +202,7 @@ class Logger {
190
202
 
191
203
 
192
204
  trace(message, metadata, metadataStyles) {
193
- this.log(message, metadata, Level__default.TRACE, {
205
+ this.log(message, metadata, nightingaleLevels.Level.TRACE, {
194
206
  metadataStyles
195
207
  });
196
208
  }
@@ -200,7 +212,7 @@ class Logger {
200
212
 
201
213
 
202
214
  debug(message, metadata, metadataStyles) {
203
- this.log(message, metadata, Level__default.DEBUG, {
215
+ this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
204
216
  metadataStyles
205
217
  });
206
218
  }
@@ -210,7 +222,7 @@ class Logger {
210
222
 
211
223
 
212
224
  notice(message, metadata, metadataStyles) {
213
- this.log(message, metadata, Level__default.NOTICE, {
225
+ this.log(message, metadata, nightingaleLevels.Level.NOTICE, {
214
226
  metadataStyles
215
227
  });
216
228
  }
@@ -220,7 +232,7 @@ class Logger {
220
232
 
221
233
 
222
234
  info(message, metadata, metadataStyles) {
223
- this.log(message, metadata, Level__default.INFO, {
235
+ this.log(message, metadata, nightingaleLevels.Level.INFO, {
224
236
  metadataStyles
225
237
  });
226
238
  }
@@ -230,7 +242,7 @@ class Logger {
230
242
 
231
243
 
232
244
  warn(message, metadata, metadataStyles) {
233
- this.log(message, metadata, Level__default.WARN, {
245
+ this.log(message, metadata, nightingaleLevels.Level.WARN, {
234
246
  metadataStyles
235
247
  });
236
248
  }
@@ -255,11 +267,11 @@ class Logger {
255
267
  error: message
256
268
  };
257
269
  message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;
258
- this.log(message, extendedMetadata, Level__default.ERROR, {
270
+ this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, {
259
271
  metadataStyles
260
272
  });
261
273
  } else {
262
- this.log(message, metadata, Level__default.ERROR, {
274
+ this.log(message, metadata, nightingaleLevels.Level.ERROR, {
263
275
  metadataStyles
264
276
  });
265
277
  }
@@ -270,7 +282,7 @@ class Logger {
270
282
 
271
283
 
272
284
  critical(message, metadata, metadataStyles) {
273
- this.log(message, metadata, Level__default.CRITICAL, {
285
+ this.log(message, metadata, nightingaleLevels.Level.CRITICAL, {
274
286
  metadataStyles
275
287
  });
276
288
  }
@@ -290,7 +302,7 @@ class Logger {
290
302
 
291
303
 
292
304
  fatal(message, metadata, metadataStyles) {
293
- this.log(message, metadata, Level__default.FATAL, {
305
+ this.log(message, metadata, nightingaleLevels.Level.FATAL, {
294
306
  metadataStyles
295
307
  });
296
308
  }
@@ -300,7 +312,7 @@ class Logger {
300
312
 
301
313
 
302
314
  alert(message, metadata, metadataStyles) {
303
- this.log(message, metadata, Level__default.ALERT, {
315
+ this.log(message, metadata, nightingaleLevels.Level.ALERT, {
304
316
  metadataStyles
305
317
  });
306
318
  }
@@ -313,10 +325,10 @@ class Logger {
313
325
  {
314
326
  // Note: inspect is a special function for node:
315
327
  // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210
316
- const inspectedValue = util.inspect(value, {
328
+ const inspectedValue = util__namespace.inspect(value, {
317
329
  depth: 6
318
330
  });
319
- this.log(inspectedValue, metadata, Level__default.DEBUG, {
331
+ this.log(inspectedValue, metadata, nightingaleLevels.Level.DEBUG, {
320
332
  metadataStyles,
321
333
  styles: ['gray']
322
334
  });
@@ -329,10 +341,10 @@ class Logger {
329
341
 
330
342
  inspectVar(varName, varValue, metadata, metadataStyles) {
331
343
  {
332
- const inspectedValue = util.inspect(varValue, {
344
+ const inspectedValue = util__namespace.inspect(varValue, {
333
345
  depth: 6
334
346
  });
335
- this.log(`${varName} = ${inspectedValue}`, metadata, Level__default.DEBUG, {
347
+ this.log(`${varName} = ${inspectedValue}`, metadata, nightingaleLevels.Level.DEBUG, {
336
348
  metadataStyles,
337
349
  styles: ['cyan']
338
350
  });
@@ -352,7 +364,7 @@ class Logger {
352
364
 
353
365
 
354
366
  infoSuccess(message, metadata, metadataStyles) {
355
- this.log(message, metadata, Level__default.INFO, {
367
+ this.log(message, metadata, nightingaleLevels.Level.INFO, {
356
368
  metadataStyles,
357
369
  symbol: '✔',
358
370
  styles: ['green', 'bold']
@@ -364,7 +376,7 @@ class Logger {
364
376
 
365
377
 
366
378
  debugSuccess(message, metadata, metadataStyles) {
367
- this.log(message, metadata, Level__default.DEBUG, {
379
+ this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
368
380
  metadataStyles,
369
381
  symbol: '✔',
370
382
  styles: ['green']
@@ -384,7 +396,7 @@ class Logger {
384
396
 
385
397
 
386
398
  infoFail(message, metadata, metadataStyles) {
387
- this.log(message, metadata, Level__default.INFO, {
399
+ this.log(message, metadata, nightingaleLevels.Level.INFO, {
388
400
  metadataStyles,
389
401
  symbol: '✖',
390
402
  styles: ['red', 'bold']
@@ -396,7 +408,7 @@ class Logger {
396
408
 
397
409
 
398
410
  debugFail(message, metadata, metadataStyles) {
399
- this.log(message, metadata, Level__default.DEBUG, {
411
+ this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
400
412
  metadataStyles,
401
413
  symbol: '✖',
402
414
  styles: ['red']
@@ -407,7 +419,7 @@ class Logger {
407
419
  */
408
420
 
409
421
 
410
- time(message, metadata, metadataStyles, level = Level__default.DEBUG) {
422
+ time(message, metadata, metadataStyles, level = nightingaleLevels.Level.DEBUG) {
411
423
  if (message) {
412
424
  this.log(message, metadata, level, {
413
425
  metadataStyles
@@ -418,7 +430,7 @@ class Logger {
418
430
  }
419
431
 
420
432
  infoTime(message, metadata, metadataStyles) {
421
- return this.time(message, metadata, metadataStyles, Level__default.INFO);
433
+ return this.time(message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
422
434
  }
423
435
  /**
424
436
  * Finds difference between when this method
@@ -428,7 +440,7 @@ class Logger {
428
440
  */
429
441
 
430
442
 
431
- timeEnd(startTime, message, metadata, metadataStyles, level = Level__default.DEBUG, options) {
443
+ timeEnd(startTime, message, metadata, metadataStyles, level = nightingaleLevels.Level.DEBUG, options) {
432
444
  const now = Date.now();
433
445
  const diffTime = now - startTime;
434
446
  let readableTime;
@@ -454,7 +466,7 @@ class Logger {
454
466
 
455
467
 
456
468
  infoTimeEnd(time, message, metadata, metadataStyles) {
457
- this.timeEnd(time, message, metadata, metadataStyles, Level__default.INFO);
469
+ this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
458
470
  }
459
471
  /**
460
472
  * Like timeEnd, but with INFO level
@@ -462,7 +474,7 @@ class Logger {
462
474
 
463
475
 
464
476
  infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
465
- this.timeEnd(time, message, metadata, metadataStyles, Level__default.INFO, {
477
+ this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO, {
466
478
  symbol: '✔',
467
479
  styles: ['green', 'bold']
468
480
  });
@@ -487,7 +499,7 @@ class Logger {
487
499
  const extendedMetadata = { ...metadata,
488
500
  functionName: fn.name
489
501
  };
490
- this.log('enter', extendedMetadata, Level__default.TRACE, {
502
+ this.log('enter', extendedMetadata, nightingaleLevels.Level.TRACE, {
491
503
  metadataStyles
492
504
  });
493
505
  }
@@ -511,7 +523,7 @@ class Logger {
511
523
  const extendedMetadata = { ...metadata,
512
524
  functionName: fn.name
513
525
  };
514
- this.log('exit', extendedMetadata, Level__default.TRACE, {
526
+ this.log('exit', extendedMetadata, nightingaleLevels.Level.TRACE, {
515
527
  metadataStyles
516
528
  });
517
529
  }
@@ -555,7 +567,7 @@ class Logger {
555
567
 
556
568
  }
557
569
 
558
- exports.Level = Level__default;
570
+ exports.Level = nightingaleLevels.Level;
559
571
  exports.Logger = Logger;
560
- exports.default = Logger;
572
+ exports["default"] = Logger;
561
573
  //# sourceMappingURL=index-node12-dev.cjs.js.map