nightingale-logger 12.1.3 → 12.1.4

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,18 @@
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
+ ## [12.1.4](https://github.com/christophehurpeau/nightingale/compare/v12.1.3...v12.1.4) (2022-02-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * better browser support when global is not defined ([194c252](https://github.com/christophehurpeau/nightingale/commit/194c25226d5aa8e7eda7cbdb899c921341f82d71))
12
+ * cjs build ([2e24ac5](https://github.com/christophehurpeau/nightingale/commit/2e24ac5753ee386c5be9ca56796194ee598f10ff))
13
+
14
+
15
+
16
+
17
+
6
18
  ## [12.1.3](https://github.com/christophehurpeau/nightingale/compare/v12.1.2...v12.1.3) (2022-01-15)
7
19
 
8
20
  **Note:** Version bump only for package nightingale-logger
@@ -9,8 +9,10 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
9
9
 
10
10
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
11
11
 
12
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
13
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
12
+ var globalOrWindow = typeof global !== 'undefined' ? global : window;
13
+
14
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
15
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
14
16
  return {
15
17
  handlers: [],
16
18
  processors: []
@@ -18,11 +20,11 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
18
20
  };
19
21
  }
20
22
 
21
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
22
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
23
- var _global$__NIGHTINGALE = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
24
- handlers = _global$__NIGHTINGALE.handlers,
25
- processors = _global$__NIGHTINGALE.processors;
23
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
24
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
25
+ var _globalOrWindow$__NIG = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
26
+ handlers = _globalOrWindow$__NIG.handlers,
27
+ processors = _globalOrWindow$__NIG.processors;
26
28
 
27
29
  return {
28
30
  handlers: handlers.filter(function (handler) {
@@ -36,7 +38,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
36
38
 
37
39
 
38
40
  function getConfigForLoggerRecord(key, recordLevel) {
39
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
41
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
40
42
  }
41
43
 
42
44
  function isError(messageOrError) {
@@ -75,7 +77,7 @@ var Logger = /*#__PURE__*/function () {
75
77
  ;
76
78
 
77
79
  _proto.getConfig = function getConfig() {
78
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
80
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
79
81
  }
80
82
  /**
81
83
  * Create a child logger
@@ -181,8 +183,7 @@ var Logger = /*#__PURE__*/function () {
181
183
 
182
184
  var isMessageError = isError(messageOrError);
183
185
  var message = isMessageError ? messageOrError.name + ": " + messageOrError.message : messageOrError;
184
- var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
185
- !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends__default({}, metadata, {
186
+ var extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends__default({}, metadata, {
186
187
  error: messageOrError
187
188
  }) : metadata;
188
189
  var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\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 (__DEV__ && 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 messageOrError: string | Error,\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 &&\n // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","__DEV__","includes","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","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\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: number,\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\n/** @private */\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 (__DEV__ && 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 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: string | Error,\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 &&\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","__DEV__","includes","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","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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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"}
@@ -2,8 +2,10 @@ import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import { Level } from 'nightingale-levels';
3
3
  export { Level } from 'nightingale-levels';
4
4
 
5
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
6
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
5
+ var globalOrWindow = typeof global !== 'undefined' ? global : window;
6
+
7
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
8
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
7
9
  return {
8
10
  handlers: [],
9
11
  processors: []
@@ -11,11 +13,11 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
11
13
  };
12
14
  }
13
15
 
14
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
15
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
16
- var _global$__NIGHTINGALE = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
17
- handlers = _global$__NIGHTINGALE.handlers,
18
- processors = _global$__NIGHTINGALE.processors;
16
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
17
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
18
+ var _globalOrWindow$__NIG = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
19
+ handlers = _globalOrWindow$__NIG.handlers,
20
+ processors = _globalOrWindow$__NIG.processors;
19
21
 
20
22
  return {
21
23
  handlers: handlers.filter(function (handler) {
@@ -29,7 +31,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
29
31
 
30
32
 
31
33
  function getConfigForLoggerRecord(key, recordLevel) {
32
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
34
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
33
35
  }
34
36
 
35
37
  function isError(messageOrError) {
@@ -68,7 +70,7 @@ var Logger = /*#__PURE__*/function () {
68
70
  ;
69
71
 
70
72
  _proto.getConfig = function getConfig() {
71
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
73
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
72
74
  }
73
75
  /**
74
76
  * Create a child logger
@@ -174,8 +176,7 @@ var Logger = /*#__PURE__*/function () {
174
176
 
175
177
  var isMessageError = isError(messageOrError);
176
178
  var message = isMessageError ? messageOrError.name + ": " + messageOrError.message : messageOrError;
177
- var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
178
- !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends({}, metadata, {
179
+ var extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends({}, metadata, {
179
180
  error: messageOrError
180
181
  }) : metadata;
181
182
  var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\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 (__DEV__ && 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 messageOrError: string | Error,\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 &&\n // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","__DEV__","includes","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","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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":";;;;AA4DA,IAAI,CAACA,MAAM,CAACC,mCAAZ,EAAiD;AAC/CD,EAAAA,MAAM,CAACC,mCAAP,GAA6C;AAAA,WAA6B;AACxEC,MAAAA,QAAQ,EAAE,EAD8D;AAExEC,MAAAA,UAAU,EAAE;AAF4D,KAA7B;AAAA,GAA7C;AAID;;AAED,IAAI,CAACH,MAAM,CAACI,0CAAZ,EAAwD;AACtDJ,EAAAA,MAAM,CAACI,0CAAP,GAAoD,UAClDC,GADkD,EAElDC,KAFkD,EAGzB;AACzB,gCACEN,MAAM,CAACC,mCAAP,CAA2CI,GAA3C,CADF;AAAA,QAAQH,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAGA,WAAO;AACLD,MAAAA,QAAQ,EAAEA,QAAQ,CAACK,MAAT,CACR,UAACC,OAAD;AAAA,eACEF,KAAK,IAAIE,OAAO,CAACC,QAAjB,KACC,CAACD,OAAO,CAACE,UAAT,IAAuBF,OAAO,CAACE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CADxB,CADF;AAAA,OADQ,CADL;AAMLF,MAAAA,UAAU,EAAVA;AANK,KAAP;AAQD,GAfD;AAgBD;AAED;;;AACA,SAASQ,wBAAT,CACEN,GADF,EAEEO,WAFF,EAGwB;AACtB,SAAOZ,MAAM,CAACI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED,SAASC,OAAT,CAAiBC,cAAjB,EAA0E;AACxE,SAAOA,cAAc,YAAYC,KAAjC;AACD;AAED;AACA;AACA;AACA;;;IACaC,MAAb;AAOE;AACF;AACA;AACA;AACA;AACA;AACE,kBAAYX,GAAZ,EAAyBY,WAAzB,EAA+C;AAC7C,SAAKZ,GAAL,GAAWA,GAAX;AACA,SAAKY,WAAL,GAAmBA,WAAnB;;AAEA,QAAIC,2CAAWb,GAAG,CAACc,QAAJ,CAAa,GAAb,CAAf,EAAkC;AAChC,YAAM,IAAIJ,KAAJ,4EACyEV,GADzE,OAAN;AAGD;AACF;AAED;;;AAxBF;;AAAA,SAyBYe,wBAzBZ,GAyBE,kCACER,WADF,EAEwB;AACtB,WAAOD,wBAAwB,CAAC,KAAKN,GAAN,EAAWO,WAAX,CAA/B;AACD;AAED;AA/BF;;AAAA,SAgCES,SAhCF,GAgCE,qBAA4C;AAC1C,WAAOrB,MAAM,CAACC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;AAED;AACF;AACA;AAtCA;;AAAA,SAuCEiB,KAvCF,GAuCE,eAAMC,cAAN,EAA8BC,gBAA9B,EAAiE;AAC/D,WAAO,IAAIR,MAAJ,CAAc,KAAKX,GAAnB,SAA0BkB,cAA1B,EAA4CC,gBAA5C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3DA;;AAAA,SA4DEC,OA5DF,GA4DE,iBAAQA,QAAR,EAAkD;AAChD,QAAMC,MAAM,GAAG,IAAIV,MAAJ,CAAW,KAAKX,GAAhB,CAAf;AACAqB,IAAAA,MAAM,CAACC,UAAP,CAAkBF,QAAlB;AACA,WAAOC,MAAP;AACD;AAED;AACF;AACA;AApEA;;AAAA,SAqEEE,gBArEF,GAqEE,4BAAkE;AAChE,WAAO,KAAKC,aAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AA7EA;;AAAA,SA8EEF,UA9EF,GA8EE,oBAAWF,OAAX,EAAmD;AACjD,SAAKI,aAAL,GAAqBJ,OAArB;AACD;AAED;AACF;AACA;AApFA;;AAAA,SAqFEK,cArFF,GAqFE,wBAAeC,eAAf,EAA+D;AAC7DC,IAAAA,MAAM,CAACC,MAAP,CAAc,KAAKJ,aAAnB,EAAkCE,eAAlC;AACD;AAED;AACF;AACA;AACA;AACA;AA7FA;;AAAA,SA8FEG,SA9FF,GA8FE,mBAA8BC,MAA9B,EAAoE;AAClE,gCAAiC,KAAKf,wBAAL,CAC/Be,MAAM,CAAC7B,KADwB,CAAjC;AAAA,QAAQJ,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAIA,QAAID,QAAQ,CAACkC,MAAT,KAAoB,CAAxB,EAA2B;AACzB,UAAID,MAAM,CAAC7B,KAAP,GAAe+B,KAAK,CAACC,KAAzB,EAAgC;AAC9B;AACAC,QAAAA,OAAO,CAACC,GAAR,CAAY,4CAAZ,EAA0D;AACxDnC,UAAAA,GAAG,EAAE8B,MAAM,CAAC9B,GAD4C;AAExDoC,UAAAA,OAAO,EAAEN,MAAM,CAACM;AAFwC,SAA1D;AAID;;AACD;AACD;;AAED,QAAItC,UAAJ,EAAgB;AACdA,MAAAA,UAAU,CAACuC,OAAX,CAAmB,UAACC,OAAD,EAAa;AAC9BA,QAAAA,OAAO,CAACR,MAAD,EAASA,MAAM,CAACV,OAAhB,CAAP;AACD,OAFD;AAGD;;AAEDvB,IAAAA,QAAQ,CAAC0C,IAAT,CAAc,UAACpC,OAAD;AAAA,aAAaA,OAAO,CAACqC,MAAR,CAAeV,MAAf,MAA2B,KAAxC;AAAA,KAAd;AACD;AAED;AACF;AACA;AAzHA;;AAAA,SA0HEK,GA1HF,GA0HE,aACE1B,cADF,EAEEgC,QAFF,EAGExC,KAHF,EAIEyC,OAJF,EAKQ;AAAA,QAFNzC,KAEM;AAFNA,MAAAA,KAEM,GAFS+B,KAAK,CAACW,IAEf;AAAA;;AACN,QAAMC,cAAc,GAAGpC,OAAO,CAACC,cAAD,CAA9B;AAEA,QAAM2B,OAAO,GAAGQ,cAAc,GACvBnC,cAAc,CAACoC,IADQ,UACCpC,cAAc,CAAC2B,OADhB,GAE1B3B,cAFJ;AAIA,QAAMqC,gBAAgB,GACpBF,cAAc;AAEd,MAAEH,QAAQ,IAAId,MAAM,CAACoB,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,QAArC,EAA+C,OAA/C,CAAd,CAFA,gBAGSA,QAHT;AAGmBS,MAAAA,KAAK,EAAEzC;AAH1B,SAIIgC,QALN;AAOA,QAAMrB,OAAO,GAAG0B,gBAAH,oBAAGA,gBAAgB,CAAE1B,OAAlC;;AACA,QAAI0B,gBAAJ,EAAsB;AACpB,aAAOA,gBAAgB,CAAC1B,OAAxB;AACD;;AAED,QAAMU,MAAuD;AAC3D7B,MAAAA,KAAK,EAALA,KAD2D;AAE3DD,MAAAA,GAAG,EAAE,KAAKA,GAFiD;AAG3DY,MAAAA,WAAW,EAAE,KAAKA,WAHyC;AAI3DuC,MAAAA,QAAQ,EAAE,IAAIC,IAAJ,EAJiD;AAK3DhB,MAAAA,OAAO,EAAPA,OAL2D;AAM3DhB,MAAAA,OAAO,EAAEA,OAAO,IAAI,KAAKI,aANkC;AAO3DiB,MAAAA,QAAQ,EAAEK,gBAPiD;AAQ3DO,MAAAA,KAAK,EAAE;AARoD,OASxDX,OATwD,CAA7D;;AAWA,SAAKb,SAAL,CAAeC,MAAf;AACD;AAED;AACF;AACA;AAlKA;;AAAA,SAmKEwB,KAnKF,GAmKE,eACE7C,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACwB,KAAzC,EAAgD;AAAED,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA7KA;;AAAA,SA8KEE,KA9KF,GA8KE,eACEhD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAAC0B,KAAzC,EAAgD;AAAEH,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AAxLA;;AAAA,SAyLEI,MAzLF,GAyLE,gBACElD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAAC4B,MAAzC,EAAiD;AAAEL,MAAAA,cAAc,EAAdA;AAAF,KAAjD;AACD;AAED;AACF;AACA;AAnMA;;AAAA,SAoMEM,IApMF,GAoME,cACEpD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACW,IAAzC,EAA+C;AAAEY,MAAAA,cAAc,EAAdA;AAAF,KAA/C;AACD;AAED;AACF;AACA;AA9MA;;AAAA,SA+MEO,IA/MF,GA+ME,cACErD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAAC+B,IAAzC,EAA+C;AAAER,MAAAA,cAAc,EAAdA;AAAF,KAA/C;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnOA;;AAAA,SAoOEL,KApOF,GAoOE,eACEzC,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACC,KAAzC,EAAgD;AAAEsB,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA9OA;;AAAA,SA+OES,QA/OF,GA+OE,kBACEvD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACiC,QAAzC,EAAmD;AAAEV,MAAAA,cAAc,EAAdA;AAAF,KAAnD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnQA;;AAAA,SAoQEW,KApQF,GAoQE,eACEzD,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACmC,KAAzC,EAAgD;AAAEZ,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA9QA;;AAAA,SA+QEa,KA/QF,GA+QE,eACE3D,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACqC,KAAzC,EAAgD;AAAEd,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AAzRA;;AAAA,SA0REe,YA1RF,GA0RE,wBAIQ;AAEJ,UAAM,IAAI5D,KAAJ,CAAU,mDAAV,CAAN;AAUH;AAED;AACF;AACA;AA9SA;;AAAA,SA+SE6D,UA/SF,GA+SE,sBAKQ;AAEJ,UAAM,IAAI7D,KAAJ,CAAU,mDAAV,CAAN;AAQH;AAED;AACF;AACA;AAlUA;;AAAA,SAmUE8D,OAnUF,GAmUE,iBACEpC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKkB,WAAL,CAAiBrC,OAAjB,EAA0BK,QAA1B,EAAoCc,cAApC;AACD;AAED;AACF;AACA;AA7UA;;AAAA,SA8UEkB,WA9UF,GA8UE,qBACErC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,KAAK,CAACW,IAAlC,EAAwC;AACtCY,MAAAA,cAAc,EAAdA,cADsC;AAEtCmB,MAAAA,MAAM,EAAE,GAF8B;AAGtCC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAH8B,KAAxC;AAKD;AAED;AACF;AACA;AA5VA;;AAAA,SA6VEC,YA7VF,GA6VE,sBACExC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,KAAK,CAAC0B,KAAlC,EAAyC;AACvCH,MAAAA,cAAc,EAAdA,cADuC;AAEvCmB,MAAAA,MAAM,EAAE,GAF+B;AAGvCC,MAAAA,MAAM,EAAE,CAAC,OAAD;AAH+B,KAAzC;AAKD;AAED;AACF;AACA;AA3WA;;AAAA,SA4WEE,IA5WF,GA4WE,cACEpE,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKuB,QAAL,CAAcrE,cAAd,EAA8BgC,QAA9B,EAAwCc,cAAxC;AACD;AAED;AACF;AACA;AAtXA;;AAAA,SAuXEuB,QAvXF,GAuXE,kBACErE,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAACW,IAAzC,EAA+C;AAC7CY,MAAAA,cAAc,EAAdA,cAD6C;AAE7CmB,MAAAA,MAAM,EAAE,GAFqC;AAG7CC,MAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,MAAR;AAHqC,KAA/C;AAKD;AAED;AACF;AACA;AArYA;;AAAA,SAsYEI,SAtYF,GAsYE,mBACEtE,cADF,EAEEgC,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAAS1B,cAAT,EAAyBgC,QAAzB,EAAmCT,KAAK,CAAC0B,KAAzC,EAAgD;AAC9CH,MAAAA,cAAc,EAAdA,cAD8C;AAE9CmB,MAAAA,MAAM,EAAE,GAFsC;AAG9CC,MAAAA,MAAM,EAAE,CAAC,KAAD;AAHsC,KAAhD;AAKD;AAED;AACF;AACA;AApZA;;AAAA,SAqZEK,IArZF,GAqZE,cACE5C,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIEtD,KAJF,EAKU;AAAA,QADRA,KACQ;AADRA,MAAAA,KACQ,GADQ+B,KAAK,CAAC0B,KACd;AAAA;;AACR,QAAItB,OAAJ,EAAa;AACX,WAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BxC,KAA5B,EAAmC;AAAEsD,QAAAA,cAAc,EAAdA;AAAF,OAAnC;AACD;;AAED,WAAOH,IAAI,CAAC6B,GAAL,EAAP;AACD,GAhaH;;AAAA,SAkaEC,QAlaF,GAkaE,kBACE9C,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIU;AACR,WAAO,KAAKyB,IAAL,CAAU5C,OAAV,EAAmBK,QAAnB,EAA6Bc,cAA7B,EAA6CvB,KAAK,CAACW,IAAnD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AA/aA;;AAAA,SAgbEwC,OAhbF,GAgbE,iBACEC,SADF,EAEEhD,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKEtD,KALF,EAMEyC,OANF,EAOQ;AAAA,QAFNzC,KAEM;AAFNA,MAAAA,KAEM,GAFU+B,KAAK,CAAC0B,KAEhB;AAAA;;AACN,QAAMuB,GAAG,GAAG7B,IAAI,CAAC6B,GAAL,EAAZ;AAEA,QAAMI,QAAQ,GAAGJ,GAAG,GAAGG,SAAvB;AACA,QAAIE,YAAJ;;AAEA,QAAID,QAAQ,GAAG,IAAf,EAAqB;AACnBC,MAAAA,YAAY,GAAMD,QAAN,OAAZ;AACD,KAFD,MAEO;AACL,UAAME,OAAO,GAAGF,QAAQ,GAAG,IAAX,GAAkBG,IAAI,CAACC,KAAL,CAAWJ,QAAQ,GAAG,IAAtB,CAAlB,GAAgD,CAAhE;AAEAC,MAAAA,YAAY,SAAMC,OAAO,GAAMA,OAAN,cAAwB,EAArC,KADDF,QAAQ,GAAGE,OAAO,GAAG,IACpB,QAAZ;AACD;;AAED,QAAMzC,gBAAgB,gBACjBL,QADiB;AAEpB6C,MAAAA,YAAY,EAAZA,YAFoB;AAGpBI,MAAAA,MAAM,EAAEL;AAHY,MAAtB;;AAMA,SAAKlD,GAAL,CAASC,OAAT,EAAkBU,gBAAlB,EAAoC7C,KAApC,eAAgDyC,OAAhD;AAAyDa,MAAAA,cAAc,EAAdA;AAAzD;AACD;AAED;AACF;AACA;AAhdA;;AAAA,SAidEoC,WAjdF,GAidE,qBACEX,IADF,EAEE5C,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKQ;AACN,SAAK4B,OAAL,CAAaH,IAAb,EAAmB5C,OAAnB,EAA4BK,QAA5B,EAAsCc,cAAtC,EAAsDvB,KAAK,CAACW,IAA5D;AACD;AAED;AACF;AACA;AA5dA;;AAAA,SA6dEiD,kBA7dF,GA6dE,4BACEZ,IADF,EAEE5C,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKQ;AACN,SAAK4B,OAAL,CAAaH,IAAb,EAAmB5C,OAAnB,EAA4BK,QAA5B,EAAsCc,cAAtC,EAAsDvB,KAAK,CAACW,IAA5D,EAAkE;AAChE+B,MAAAA,MAAM,EAAE,GADwD;AAEhEC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAFwD,KAAlE;AAID;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtfA;;AAAA,SAufEkB,KAvfF,GAufE,eACEC,EADF,EAEErD,QAFF,EAGEc,cAHF,EAIQ;AACN,QAAMT,gBAAgB,gBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,OAAT,EAAkBW,gBAAlB,EAAoCd,KAAK,CAACwB,KAA1C,EAAiD;AAAED,MAAAA,cAAc,EAAdA;AAAF,KAAjD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhhBA;;AAAA,SAihBEyC,IAjhBF,GAihBE,cACEF,EADF,EAEErD,QAFF,EAGEc,cAHF,EAIQ;AACN,QAAMT,gBAAgB,gBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,MAAT,EAAiBW,gBAAjB,EAAmCd,KAAK,CAACwB,KAAzC,EAAgD;AAAED,MAAAA,cAAc,EAAdA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3iBA;;AAAA,SA8jBE0C,IA9jBF,GA8jBE,cACEH,EADF,EAEEI,OAFF,EAGEC,OAHF,EAIEC,QAJF,EAKQ;AACN,QAAI3D,QAAJ;AACA,QAAIc,cAAJ;;AAEA,QAAI,OAAO2C,OAAP,KAAmB,UAAvB,EAAmC;AACjCE,MAAAA,QAAQ,GAAGF,OAAX;AACD,KAFD,MAEO;AACLzD,MAAAA,QAAQ,GAAGyD,OAAX;;AAEA,UAAI,OAAOC,OAAP,KAAmB,UAAvB,EAAmC;AACjCC,QAAAA,QAAQ,GAAGD,OAAX;AACD,OAFD,MAEO;AACL5C,QAAAA,cAAc,GAAG4C,OAAjB;AACD;AACF;;AAED,SAAKN,KAAL,CAAWC,EAAX,EAAerD,QAAf,EAAyBc,cAAzB;AACC6C,IAAAA,QAAD;AACA,SAAKJ,IAAL,CAAUF,EAAV;AACD,GAtlBH;;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\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: number,\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\n/** @private */\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 (__DEV__ && 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 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: string | Error,\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 &&\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","__DEV__","includes","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","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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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"}
@@ -2,20 +2,21 @@ import { Level } from 'nightingale-levels';
2
2
  export { Level } from 'nightingale-levels';
3
3
 
4
4
  /* eslint-disable max-lines */
5
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
5
6
 
6
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
7
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
7
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
8
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
8
9
  handlers: [],
9
10
  processors: []
10
11
  });
11
12
  }
12
13
 
13
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
14
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
14
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
15
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
15
16
  const {
16
17
  handlers,
17
18
  processors
18
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
19
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
19
20
 
20
21
  return {
21
22
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -27,7 +28,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
27
28
 
28
29
 
29
30
  function getConfigForLoggerRecord(key, recordLevel) {
30
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
31
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
31
32
  }
32
33
 
33
34
  function isError(messageOrError) {
@@ -64,7 +65,7 @@ class Logger {
64
65
 
65
66
 
66
67
  getConfig() {
67
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
68
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
68
69
  }
69
70
  /**
70
71
  * Create a child logger
@@ -165,8 +166,7 @@ class Logger {
165
166
  log(messageOrError, metadata, level = Level.INFO, options) {
166
167
  const isMessageError = isError(messageOrError);
167
168
  const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
168
- const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
169
- !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
169
+ const extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
170
170
  error: messageOrError
171
171
  } : metadata;
172
172
  const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context;
@@ -1 +1 @@
1
- {"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\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 (__DEV__ && 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 messageOrError: string | Error,\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 &&\n // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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 * 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';\nimport 'pob-babel';\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\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\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\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: number,\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\n/** @private */\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 (__DEV__ && 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 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: string | Error,\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 &&\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","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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"}
@@ -20,20 +20,21 @@ function _interopNamespace(e) {
20
20
  const util__namespace = /*#__PURE__*/_interopNamespace(util);
21
21
 
22
22
  /* eslint-disable max-lines */
23
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
23
24
 
24
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
25
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
25
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
26
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
26
27
  handlers: [],
27
28
  processors: []
28
29
  });
29
30
  }
30
31
 
31
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
32
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
32
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
33
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
33
34
  const {
34
35
  handlers,
35
36
  processors
36
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
37
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
37
38
 
38
39
  return {
39
40
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -45,7 +46,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
45
46
 
46
47
 
47
48
  function getConfigForLoggerRecord(key, recordLevel) {
48
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
49
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
49
50
  }
50
51
 
51
52
  function isError(messageOrError) {
@@ -82,7 +83,7 @@ class Logger {
82
83
 
83
84
 
84
85
  getConfig() {
85
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
86
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
86
87
  }
87
88
  /**
88
89
  * Create a child logger
@@ -183,8 +184,7 @@ class Logger {
183
184
  log(messageOrError, metadata, level = nightingaleLevels.Level.INFO, options) {
184
185
  const isMessageError = isError(messageOrError);
185
186
  const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
186
- const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
187
- !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
187
+ const extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
188
188
  error: messageOrError
189
189
  } : metadata;
190
190
  const context = extendedMetadata?.context;
@@ -569,4 +569,4 @@ class Logger {
569
569
 
570
570
  exports.Level = nightingaleLevels.Level;
571
571
  exports.Logger = Logger;
572
- //# sourceMappingURL=index-node14.cjs.js.map
572
+ //# sourceMappingURL=index-node14.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node14.cjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\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: number,\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\n/** @private */\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 (__DEV__ && 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 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: string | Error,\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 &&\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","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,20 +3,21 @@ import { Level } from 'nightingale-levels';
3
3
  export { Level } from 'nightingale-levels';
4
4
 
5
5
  /* eslint-disable max-lines */
6
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
6
7
 
7
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
8
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
8
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
9
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
9
10
  handlers: [],
10
11
  processors: []
11
12
  });
12
13
  }
13
14
 
14
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
15
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
15
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
16
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
16
17
  const {
17
18
  handlers,
18
19
  processors
19
- } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
20
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
20
21
 
21
22
  return {
22
23
  handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
@@ -28,7 +29,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
28
29
 
29
30
 
30
31
  function getConfigForLoggerRecord(key, recordLevel) {
31
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
32
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
32
33
  }
33
34
 
34
35
  function isError(messageOrError) {
@@ -65,7 +66,7 @@ class Logger {
65
66
 
66
67
 
67
68
  getConfig() {
68
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
69
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
69
70
  }
70
71
  /**
71
72
  * Create a child logger
@@ -166,8 +167,7 @@ class Logger {
166
167
  log(messageOrError, metadata, level = Level.INFO, options) {
167
168
  const isMessageError = isError(messageOrError);
168
169
  const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
169
- const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
170
- !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
170
+ const extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? { ...metadata,
171
171
  error: messageOrError
172
172
  } : metadata;
173
173
  const context = extendedMetadata?.context;
@@ -1 +1 @@
1
- {"version":3,"file":"index-node14.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\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 (__DEV__ && 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 messageOrError: string | Error,\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 &&\n // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","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-node14.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\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: number,\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\n/** @private */\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 (__DEV__ && 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 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: string | Error,\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 &&\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale-logger",
3
- "version": "12.1.3",
3
+ "version": "12.1.4",
4
4
  "description": "Logger for browser and node",
5
5
  "keywords": [
6
6
  "nightingale"
@@ -33,7 +33,7 @@
33
33
  ".": {
34
34
  "node": {
35
35
  "import": "./dist/index-node14.mjs",
36
- "require": "./dist/index-node14.cjs.js"
36
+ "require": "./dist/index-node14.cjs"
37
37
  },
38
38
  "browser": {
39
39
  "browser:modern": {
@@ -91,15 +91,15 @@
91
91
  },
92
92
  "dependencies": {
93
93
  "@types/node": ">=14.0.0",
94
- "nightingale-levels": "12.1.3",
95
- "nightingale-types": "12.1.3"
94
+ "nightingale-levels": "12.1.4",
95
+ "nightingale-types": "12.1.4"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/core": "7.16.7",
99
- "@babel/preset-env": "7.16.8",
98
+ "@babel/core": "7.17.0",
99
+ "@babel/preset-env": "7.16.11",
100
100
  "babel-preset-modern-browsers": "15.0.2",
101
- "pob-babel": "29.6.1",
102
- "typescript": "4.5.4"
101
+ "pob-babel": "30.0.1",
102
+ "typescript": "4.5.5"
103
103
  },
104
- "gitHead": "67fdeb8e3c6660b8bfa4eed4b66b2c05876ed9cc"
104
+ "gitHead": "3754d4575d948b5bb8c5227d3c3f4ca25e801db5"
105
105
  }
package/src/index.ts CHANGED
@@ -58,20 +58,24 @@ declare global {
58
58
  }
59
59
  }
60
60
 
61
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
62
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({
63
- handlers: [],
64
- processors: [],
65
- });
61
+ const globalOrWindow: typeof global =
62
+ typeof global !== 'undefined' ? global : (window as typeof global);
63
+
64
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
65
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =
66
+ (): ComputedConfigForKey => ({
67
+ handlers: [],
68
+ processors: [],
69
+ });
66
70
  }
67
71
 
68
- if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
69
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (
72
+ if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
73
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (
70
74
  key: string,
71
75
  level: number,
72
76
  ): ComputedConfigForKey => {
73
77
  const { handlers, processors }: ComputedConfigForKey =
74
- global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
78
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
75
79
 
76
80
  return {
77
81
  handlers: handlers.filter(
@@ -89,7 +93,10 @@ function getConfigForLoggerRecord(
89
93
  key: string,
90
94
  recordLevel: Level,
91
95
  ): ComputedConfigForKey {
92
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
96
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(
97
+ key,
98
+ recordLevel,
99
+ );
93
100
  }
94
101
 
95
102
  function isError(messageOrError: Error | string): messageOrError is Error {
@@ -133,7 +140,7 @@ export class Logger {
133
140
 
134
141
  /** @private */
135
142
  getConfig(): Readonly<ComputedConfigForKey> {
136
- return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
143
+ return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
137
144
  }
138
145
 
139
146
  /**
@@ -236,7 +243,6 @@ export class Logger {
236
243
 
237
244
  const extendedMetadata =
238
245
  isMessageError &&
239
- // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill
240
246
  !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error'))
241
247
  ? { ...metadata, error: messageOrError }
242
248
  : metadata;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node14.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\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';\nimport 'pob-babel';\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\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\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 (__DEV__ && 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 messageOrError: string | Error,\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 &&\n // eslint-disable-next-line unicorn/prefer-object-has-own -- TODO fix and add polyfill\n !(metadata && Object.prototype.hasOwnProperty.call(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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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: string | Error,\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 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 messageOrError: string | Error,\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: string | Error,\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: string | Error,\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<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"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","__DEV__","includes","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","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","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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"}