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 +12 -0
- package/dist/index-browser.cjs.js +12 -11
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +12 -11
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +9 -9
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/{index-node14.cjs.js → index-node14.cjs} +10 -10
- package/dist/index-node14.cjs.map +1 -0
- package/dist/index-node14.mjs +9 -9
- package/dist/index-node14.mjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +17 -11
- package/dist/index-node14.cjs.js.map +0 -1
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
|
-
|
|
13
|
-
|
|
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 (!
|
|
22
|
-
|
|
23
|
-
var
|
|
24
|
-
handlers =
|
|
25
|
-
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
|
|
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
|
|
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 &&
|
|
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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"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -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
|
-
|
|
6
|
-
|
|
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 (!
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
handlers =
|
|
18
|
-
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
|
|
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
|
|
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 &&
|
|
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":"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"}
|
|
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 (!
|
|
7
|
-
|
|
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 (!
|
|
14
|
-
|
|
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
|
-
} =
|
|
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
|
|
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
|
|
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 &&
|
|
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 (!
|
|
25
|
-
|
|
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 (!
|
|
32
|
-
|
|
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
|
-
} =
|
|
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
|
|
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
|
|
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 &&
|
|
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.
|
|
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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"}
|
package/dist/index-node14.mjs
CHANGED
|
@@ -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 (!
|
|
8
|
-
|
|
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 (!
|
|
15
|
-
|
|
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
|
-
} =
|
|
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
|
|
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
|
|
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 &&
|
|
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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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,QAAQ;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,UAAU,4BAA4B;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,MAAM,CAAC;QACf,UAAU,MAAM;YACd,oBAAoB,EAAE,MAAM,EAAE,CAAC;YAC/B,8BAA8B,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YAClE,4BAA4B,EAAE,oBAAoB,CAAC;YACnD,6BAA6B,EAAE,OAAO,CAAC;YACvC,mCAAmC,EAAE,CACnC,GAAG,EAAE,MAAM,KACR,oBAAoB,CAAC;YAC1B,0CAA0C,EAAE,CAC1C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,KACV,oBAAoB,CAAC;SAC3B;KACF;CACF;
|
|
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
|
+
"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
|
|
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.
|
|
95
|
-
"nightingale-types": "12.1.
|
|
94
|
+
"nightingale-levels": "12.1.4",
|
|
95
|
+
"nightingale-types": "12.1.4"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
|
-
"@babel/core": "7.
|
|
99
|
-
"@babel/preset-env": "7.16.
|
|
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": "
|
|
102
|
-
"typescript": "4.5.
|
|
101
|
+
"pob-babel": "30.0.1",
|
|
102
|
+
"typescript": "4.5.5"
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "3754d4575d948b5bb8c5227d3c3f4ca25e801db5"
|
|
105
105
|
}
|
package/src/index.ts
CHANGED
|
@@ -58,20 +58,24 @@ declare global {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
global
|
|
63
|
-
|
|
64
|
-
|
|
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 (!
|
|
69
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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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"}
|