nightingale-logger 12.1.0 → 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/.eslintrc.json +1 -1
- package/CHANGELOG.md +42 -0
- package/dist/index-browser.cjs.js +39 -38
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +39 -38
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +10 -10
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/{index-node14.cjs.js → index-node14.cjs} +11 -11
- package/dist/index-node14.cjs.map +1 -0
- package/dist/index-node14.mjs +10 -10
- package/dist/index-node14.mjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/index.ts +17 -11
- package/dist/index-node14.cjs.js.map +0 -1
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,48 @@
|
|
|
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
|
+
|
|
18
|
+
## [12.1.3](https://github.com/christophehurpeau/nightingale/compare/v12.1.2...v12.1.3) (2022-01-15)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package nightingale-logger
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [12.1.2](https://github.com/christophehurpeau/nightingale/compare/v12.1.1...v12.1.2) (2022-01-02)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* main esm for jest which supports esm but not exports ([98789fa](https://github.com/christophehurpeau/nightingale/commit/98789fa490e723840fccc443584189b6905d871b))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## [12.1.1](https://github.com/christophehurpeau/nightingale/compare/v12.1.0...v12.1.1) (2022-01-01)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* properly configure package type ([2e0cbf5](https://github.com/christophehurpeau/nightingale/commit/2e0cbf555bd3b9fa3c3851025452937f64408aa8))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
6
48
|
# [12.1.0](https://github.com/christophehurpeau/nightingale/compare/v12.0.1...v12.1.0) (2021-12-15)
|
|
7
49
|
|
|
8
50
|
**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,17 +20,17 @@ 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) {
|
|
29
31
|
return level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key));
|
|
30
32
|
}),
|
|
31
|
-
processors
|
|
33
|
+
processors: processors
|
|
32
34
|
};
|
|
33
35
|
};
|
|
34
36
|
}
|
|
@@ -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) {
|
|
@@ -59,8 +61,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
59
61
|
this.key = key;
|
|
60
62
|
this.displayName = displayName;
|
|
61
63
|
|
|
62
|
-
if (process.env.NODE_ENV !== "production" && key.includes('.')) {
|
|
63
|
-
throw new Error(
|
|
64
|
+
if ((process.env.NODE_ENV !== "production") && key.includes('.')) {
|
|
65
|
+
throw new Error("nightingale: `.` in key is no longer supported, use `:` instead (key: " + key + ")");
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
/** @private */
|
|
@@ -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
|
|
@@ -83,7 +85,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
83
85
|
;
|
|
84
86
|
|
|
85
87
|
_proto.child = function child(childSuffixKey, childDisplayName) {
|
|
86
|
-
return new Logger(
|
|
88
|
+
return new Logger(this.key + ":" + childSuffixKey, childDisplayName);
|
|
87
89
|
}
|
|
88
90
|
/**
|
|
89
91
|
* Create a new Logger with the same key a this attached context
|
|
@@ -180,9 +182,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
180
182
|
}
|
|
181
183
|
|
|
182
184
|
var isMessageError = isError(messageOrError);
|
|
183
|
-
var message = isMessageError ?
|
|
184
|
-
var extendedMetadata = isMessageError &&
|
|
185
|
-
!(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends__default({}, metadata, {
|
|
185
|
+
var message = isMessageError ? messageOrError.name + ": " + messageOrError.message : messageOrError;
|
|
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;
|
|
@@ -192,11 +193,11 @@ var Logger = /*#__PURE__*/function () {
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
var record = _extends__default({
|
|
195
|
-
level,
|
|
196
|
+
level: level,
|
|
196
197
|
key: this.key,
|
|
197
198
|
displayName: this.displayName,
|
|
198
199
|
datetime: new Date(),
|
|
199
|
-
message,
|
|
200
|
+
message: message,
|
|
200
201
|
context: context || this.contextObject,
|
|
201
202
|
metadata: extendedMetadata,
|
|
202
203
|
extra: {}
|
|
@@ -211,7 +212,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
211
212
|
|
|
212
213
|
_proto.trace = function trace(messageOrError, metadata, metadataStyles) {
|
|
213
214
|
this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, {
|
|
214
|
-
metadataStyles
|
|
215
|
+
metadataStyles: metadataStyles
|
|
215
216
|
});
|
|
216
217
|
}
|
|
217
218
|
/**
|
|
@@ -221,7 +222,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
221
222
|
|
|
222
223
|
_proto.debug = function debug(messageOrError, metadata, metadataStyles) {
|
|
223
224
|
this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
|
|
224
|
-
metadataStyles
|
|
225
|
+
metadataStyles: metadataStyles
|
|
225
226
|
});
|
|
226
227
|
}
|
|
227
228
|
/**
|
|
@@ -231,7 +232,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
231
232
|
|
|
232
233
|
_proto.notice = function notice(messageOrError, metadata, metadataStyles) {
|
|
233
234
|
this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, {
|
|
234
|
-
metadataStyles
|
|
235
|
+
metadataStyles: metadataStyles
|
|
235
236
|
});
|
|
236
237
|
}
|
|
237
238
|
/**
|
|
@@ -241,7 +242,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
241
242
|
|
|
242
243
|
_proto.info = function info(messageOrError, metadata, metadataStyles) {
|
|
243
244
|
this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
|
|
244
|
-
metadataStyles
|
|
245
|
+
metadataStyles: metadataStyles
|
|
245
246
|
});
|
|
246
247
|
}
|
|
247
248
|
/**
|
|
@@ -251,7 +252,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
251
252
|
|
|
252
253
|
_proto.warn = function warn(messageOrError, metadata, metadataStyles) {
|
|
253
254
|
this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, {
|
|
254
|
-
metadataStyles
|
|
255
|
+
metadataStyles: metadataStyles
|
|
255
256
|
});
|
|
256
257
|
}
|
|
257
258
|
/**
|
|
@@ -271,7 +272,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
271
272
|
|
|
272
273
|
_proto.error = function error(messageOrError, metadata, metadataStyles) {
|
|
273
274
|
this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, {
|
|
274
|
-
metadataStyles
|
|
275
|
+
metadataStyles: metadataStyles
|
|
275
276
|
});
|
|
276
277
|
}
|
|
277
278
|
/**
|
|
@@ -281,7 +282,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
281
282
|
|
|
282
283
|
_proto.critical = function critical(messageOrError, metadata, metadataStyles) {
|
|
283
284
|
this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, {
|
|
284
|
-
metadataStyles
|
|
285
|
+
metadataStyles: metadataStyles
|
|
285
286
|
});
|
|
286
287
|
}
|
|
287
288
|
/**
|
|
@@ -301,7 +302,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
301
302
|
|
|
302
303
|
_proto.fatal = function fatal(messageOrError, metadata, metadataStyles) {
|
|
303
304
|
this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, {
|
|
304
|
-
metadataStyles
|
|
305
|
+
metadataStyles: metadataStyles
|
|
305
306
|
});
|
|
306
307
|
}
|
|
307
308
|
/**
|
|
@@ -311,7 +312,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
311
312
|
|
|
312
313
|
_proto.alert = function alert(messageOrError, metadata, metadataStyles) {
|
|
313
314
|
this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, {
|
|
314
|
-
metadataStyles
|
|
315
|
+
metadataStyles: metadataStyles
|
|
315
316
|
});
|
|
316
317
|
}
|
|
317
318
|
/**
|
|
@@ -345,7 +346,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
345
346
|
|
|
346
347
|
_proto.infoSuccess = function infoSuccess(message, metadata, metadataStyles) {
|
|
347
348
|
this.log(message, metadata, nightingaleLevels.Level.INFO, {
|
|
348
|
-
metadataStyles,
|
|
349
|
+
metadataStyles: metadataStyles,
|
|
349
350
|
symbol: '✔',
|
|
350
351
|
styles: ['green', 'bold']
|
|
351
352
|
});
|
|
@@ -357,7 +358,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
357
358
|
|
|
358
359
|
_proto.debugSuccess = function debugSuccess(message, metadata, metadataStyles) {
|
|
359
360
|
this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
|
|
360
|
-
metadataStyles,
|
|
361
|
+
metadataStyles: metadataStyles,
|
|
361
362
|
symbol: '✔',
|
|
362
363
|
styles: ['green']
|
|
363
364
|
});
|
|
@@ -377,7 +378,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
377
378
|
|
|
378
379
|
_proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) {
|
|
379
380
|
this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
|
|
380
|
-
metadataStyles,
|
|
381
|
+
metadataStyles: metadataStyles,
|
|
381
382
|
symbol: '✖',
|
|
382
383
|
styles: ['red', 'bold']
|
|
383
384
|
});
|
|
@@ -389,7 +390,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
389
390
|
|
|
390
391
|
_proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) {
|
|
391
392
|
this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
|
|
392
|
-
metadataStyles,
|
|
393
|
+
metadataStyles: metadataStyles,
|
|
393
394
|
symbol: '✖',
|
|
394
395
|
styles: ['red']
|
|
395
396
|
});
|
|
@@ -406,7 +407,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
406
407
|
|
|
407
408
|
if (message) {
|
|
408
409
|
this.log(message, metadata, level, {
|
|
409
|
-
metadataStyles
|
|
410
|
+
metadataStyles: metadataStyles
|
|
410
411
|
});
|
|
411
412
|
}
|
|
412
413
|
|
|
@@ -434,19 +435,19 @@ var Logger = /*#__PURE__*/function () {
|
|
|
434
435
|
var readableTime;
|
|
435
436
|
|
|
436
437
|
if (diffTime < 1000) {
|
|
437
|
-
readableTime =
|
|
438
|
+
readableTime = diffTime + "ms";
|
|
438
439
|
} else {
|
|
439
440
|
var seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;
|
|
440
|
-
readableTime =
|
|
441
|
+
readableTime = "" + (seconds ? seconds + "s and " : '') + (diffTime - seconds * 1000) + "ms";
|
|
441
442
|
}
|
|
442
443
|
|
|
443
444
|
var extendedMetadata = _extends__default({}, metadata, {
|
|
444
|
-
readableTime,
|
|
445
|
+
readableTime: readableTime,
|
|
445
446
|
timeMs: diffTime
|
|
446
447
|
});
|
|
447
448
|
|
|
448
449
|
this.log(message, extendedMetadata, level, _extends__default({}, options, {
|
|
449
|
-
metadataStyles
|
|
450
|
+
metadataStyles: metadataStyles
|
|
450
451
|
}));
|
|
451
452
|
}
|
|
452
453
|
/**
|
|
@@ -490,7 +491,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
490
491
|
});
|
|
491
492
|
|
|
492
493
|
this.log('enter', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
493
|
-
metadataStyles
|
|
494
|
+
metadataStyles: metadataStyles
|
|
494
495
|
});
|
|
495
496
|
}
|
|
496
497
|
/**
|
|
@@ -515,7 +516,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
515
516
|
});
|
|
516
517
|
|
|
517
518
|
this.log('exit', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
518
|
-
metadataStyles
|
|
519
|
+
metadataStyles: metadataStyles
|
|
519
520
|
});
|
|
520
521
|
}
|
|
521
522
|
/**
|
|
@@ -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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"}
|