nightingale-logger 11.5.2 → 11.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +38 -0
- package/babel.config.cjs +14 -0
- package/dist/index-browser-dev.cjs.js +29 -30
- package/dist/index-browser-dev.cjs.js.map +1 -1
- package/dist/index-browser-dev.es.js +5 -6
- package/dist/index-browser-dev.es.js.map +1 -1
- package/dist/index-browser.cjs.js +29 -30
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +5 -6
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern-dev.es.js +6 -5
- package/dist/index-browsermodern-dev.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +6 -5
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/index-node12-dev.cjs.js +46 -34
- package/dist/index-node12-dev.cjs.js.map +1 -1
- package/dist/index-node12-dev.mjs +9 -8
- package/dist/index-node12-dev.mjs.map +1 -1
- package/dist/index-node12.cjs.js +46 -34
- package/dist/index-node12.cjs.js.map +1 -1
- package/dist/index-node12.mjs +9 -8
- package/dist/index-node12.mjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +23 -31
- package/rollup.config.mjs +3 -0
- package/src/.eslintrc.json +1 -1
- package/src/index.ts +8 -8
- package/index.js +0 -6
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
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
|
+
## [11.7.2](https://github.com/christophehurpeau/nightingale/compare/v11.7.1...v11.7.2) (2021-11-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package nightingale-logger
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [11.7.1](https://github.com/christophehurpeau/nightingale/compare/v11.7.0...v11.7.1) (2021-06-29)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* update pob-babel to bring back webpack 4 support ([4887431](https://github.com/christophehurpeau/nightingale/commit/4887431b3b272496511f879af022638723b9056e))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [11.7.0](https://github.com/christophehurpeau/nightingale/compare/v11.6.0...v11.7.0) (2021-03-29)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package nightingale-logger
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# [11.6.0](https://github.com/christophehurpeau/nightingale/compare/v11.5.4...v11.6.0) (2021-03-21)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
* update dependencies and browserlist config ([81d2340](https://github.com/christophehurpeau/nightingale/commit/81d234069412c746ebc99faed778092790f332ca))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
## [11.5.2](https://github.com/christophehurpeau/nightingale/compare/v11.5.1...v11.5.2) (2021-02-14)
|
|
7
45
|
|
|
8
46
|
**Note:** Version bump only for package nightingale-logger
|
package/babel.config.cjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
module.exports = function babelConfig(api) {
|
|
6
|
+
const isTest = api.env('test');
|
|
7
|
+
|
|
8
|
+
if (!isTest) return {};
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
only: [path.resolve(__dirname, 'src')],
|
|
12
|
+
presets: [require.resolve('pob-babel/preset')],
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _extends = require('@babel/runtime/helpers/esm/extends');
|
|
6
|
-
var
|
|
6
|
+
var nightingaleLevels = require('nightingale-levels');
|
|
7
7
|
|
|
8
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e[
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
9
9
|
|
|
10
10
|
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
11
|
-
var Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
12
11
|
|
|
13
12
|
if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
|
|
14
13
|
global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
|
|
@@ -145,7 +144,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
145
144
|
processors = _this$getHandlersAndP.processors;
|
|
146
145
|
|
|
147
146
|
if (handlers.length === 0) {
|
|
148
|
-
if (record.level >
|
|
147
|
+
if (record.level > nightingaleLevels.Level.ERROR) {
|
|
149
148
|
// eslint-disable-next-line no-console
|
|
150
149
|
console.log('[nightingale] no logger for > error level.', {
|
|
151
150
|
key: record.key,
|
|
@@ -158,7 +157,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
158
157
|
|
|
159
158
|
if (processors) {
|
|
160
159
|
processors.forEach(function (process) {
|
|
161
|
-
|
|
160
|
+
process(record, record.context);
|
|
162
161
|
});
|
|
163
162
|
}
|
|
164
163
|
|
|
@@ -173,10 +172,10 @@ var Logger = /*#__PURE__*/function () {
|
|
|
173
172
|
|
|
174
173
|
_proto.log = function log(message, metadata, level, options) {
|
|
175
174
|
if (level === void 0) {
|
|
176
|
-
level =
|
|
175
|
+
level = nightingaleLevels.Level.INFO;
|
|
177
176
|
}
|
|
178
177
|
|
|
179
|
-
var context = metadata
|
|
178
|
+
var context = metadata == null ? void 0 : metadata.context;
|
|
180
179
|
|
|
181
180
|
if (metadata) {
|
|
182
181
|
delete metadata.context;
|
|
@@ -201,7 +200,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
201
200
|
;
|
|
202
201
|
|
|
203
202
|
_proto.trace = function trace(message, metadata, metadataStyles) {
|
|
204
|
-
this.log(message, metadata,
|
|
203
|
+
this.log(message, metadata, nightingaleLevels.Level.TRACE, {
|
|
205
204
|
metadataStyles
|
|
206
205
|
});
|
|
207
206
|
}
|
|
@@ -211,7 +210,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
211
210
|
;
|
|
212
211
|
|
|
213
212
|
_proto.debug = function debug(message, metadata, metadataStyles) {
|
|
214
|
-
this.log(message, metadata,
|
|
213
|
+
this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
|
|
215
214
|
metadataStyles
|
|
216
215
|
});
|
|
217
216
|
}
|
|
@@ -221,7 +220,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
221
220
|
;
|
|
222
221
|
|
|
223
222
|
_proto.notice = function notice(message, metadata, metadataStyles) {
|
|
224
|
-
this.log(message, metadata,
|
|
223
|
+
this.log(message, metadata, nightingaleLevels.Level.NOTICE, {
|
|
225
224
|
metadataStyles
|
|
226
225
|
});
|
|
227
226
|
}
|
|
@@ -231,7 +230,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
231
230
|
;
|
|
232
231
|
|
|
233
232
|
_proto.info = function info(message, metadata, metadataStyles) {
|
|
234
|
-
this.log(message, metadata,
|
|
233
|
+
this.log(message, metadata, nightingaleLevels.Level.INFO, {
|
|
235
234
|
metadataStyles
|
|
236
235
|
});
|
|
237
236
|
}
|
|
@@ -241,7 +240,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
241
240
|
;
|
|
242
241
|
|
|
243
242
|
_proto.warn = function warn(message, metadata, metadataStyles) {
|
|
244
|
-
this.log(message, metadata,
|
|
243
|
+
this.log(message, metadata, nightingaleLevels.Level.WARN, {
|
|
245
244
|
metadataStyles
|
|
246
245
|
});
|
|
247
246
|
}
|
|
@@ -267,11 +266,11 @@ var Logger = /*#__PURE__*/function () {
|
|
|
267
266
|
});
|
|
268
267
|
|
|
269
268
|
message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;
|
|
270
|
-
this.log(message, extendedMetadata,
|
|
269
|
+
this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, {
|
|
271
270
|
metadataStyles
|
|
272
271
|
});
|
|
273
272
|
} else {
|
|
274
|
-
this.log(message, metadata,
|
|
273
|
+
this.log(message, metadata, nightingaleLevels.Level.ERROR, {
|
|
275
274
|
metadataStyles
|
|
276
275
|
});
|
|
277
276
|
}
|
|
@@ -282,7 +281,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
282
281
|
;
|
|
283
282
|
|
|
284
283
|
_proto.critical = function critical(message, metadata, metadataStyles) {
|
|
285
|
-
this.log(message, metadata,
|
|
284
|
+
this.log(message, metadata, nightingaleLevels.Level.CRITICAL, {
|
|
286
285
|
metadataStyles
|
|
287
286
|
});
|
|
288
287
|
}
|
|
@@ -302,7 +301,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
302
301
|
;
|
|
303
302
|
|
|
304
303
|
_proto.fatal = function fatal(message, metadata, metadataStyles) {
|
|
305
|
-
this.log(message, metadata,
|
|
304
|
+
this.log(message, metadata, nightingaleLevels.Level.FATAL, {
|
|
306
305
|
metadataStyles
|
|
307
306
|
});
|
|
308
307
|
}
|
|
@@ -312,7 +311,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
312
311
|
;
|
|
313
312
|
|
|
314
313
|
_proto.alert = function alert(message, metadata, metadataStyles) {
|
|
315
|
-
this.log(message, metadata,
|
|
314
|
+
this.log(message, metadata, nightingaleLevels.Level.ALERT, {
|
|
316
315
|
metadataStyles
|
|
317
316
|
});
|
|
318
317
|
}
|
|
@@ -346,7 +345,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
346
345
|
;
|
|
347
346
|
|
|
348
347
|
_proto.infoSuccess = function infoSuccess(message, metadata, metadataStyles) {
|
|
349
|
-
this.log(message, metadata,
|
|
348
|
+
this.log(message, metadata, nightingaleLevels.Level.INFO, {
|
|
350
349
|
metadataStyles,
|
|
351
350
|
symbol: '✔',
|
|
352
351
|
styles: ['green', 'bold']
|
|
@@ -358,7 +357,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
358
357
|
;
|
|
359
358
|
|
|
360
359
|
_proto.debugSuccess = function debugSuccess(message, metadata, metadataStyles) {
|
|
361
|
-
this.log(message, metadata,
|
|
360
|
+
this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
|
|
362
361
|
metadataStyles,
|
|
363
362
|
symbol: '✔',
|
|
364
363
|
styles: ['green']
|
|
@@ -378,7 +377,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
378
377
|
;
|
|
379
378
|
|
|
380
379
|
_proto.infoFail = function infoFail(message, metadata, metadataStyles) {
|
|
381
|
-
this.log(message, metadata,
|
|
380
|
+
this.log(message, metadata, nightingaleLevels.Level.INFO, {
|
|
382
381
|
metadataStyles,
|
|
383
382
|
symbol: '✖',
|
|
384
383
|
styles: ['red', 'bold']
|
|
@@ -390,7 +389,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
390
389
|
;
|
|
391
390
|
|
|
392
391
|
_proto.debugFail = function debugFail(message, metadata, metadataStyles) {
|
|
393
|
-
this.log(message, metadata,
|
|
392
|
+
this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
|
|
394
393
|
metadataStyles,
|
|
395
394
|
symbol: '✖',
|
|
396
395
|
styles: ['red']
|
|
@@ -403,7 +402,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
403
402
|
|
|
404
403
|
_proto.time = function time(message, metadata, metadataStyles, level) {
|
|
405
404
|
if (level === void 0) {
|
|
406
|
-
level =
|
|
405
|
+
level = nightingaleLevels.Level.DEBUG;
|
|
407
406
|
}
|
|
408
407
|
|
|
409
408
|
if (message) {
|
|
@@ -416,7 +415,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
416
415
|
};
|
|
417
416
|
|
|
418
417
|
_proto.infoTime = function infoTime(message, metadata, metadataStyles) {
|
|
419
|
-
return this.time(message, metadata, metadataStyles,
|
|
418
|
+
return this.time(message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
|
|
420
419
|
}
|
|
421
420
|
/**
|
|
422
421
|
* Finds difference between when this method
|
|
@@ -428,7 +427,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
428
427
|
|
|
429
428
|
_proto.timeEnd = function timeEnd(startTime, message, metadata, metadataStyles, level, options) {
|
|
430
429
|
if (level === void 0) {
|
|
431
|
-
level =
|
|
430
|
+
level = nightingaleLevels.Level.DEBUG;
|
|
432
431
|
}
|
|
433
432
|
|
|
434
433
|
var now = Date.now();
|
|
@@ -457,7 +456,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
457
456
|
;
|
|
458
457
|
|
|
459
458
|
_proto.infoTimeEnd = function infoTimeEnd(time, message, metadata, metadataStyles) {
|
|
460
|
-
this.timeEnd(time, message, metadata, metadataStyles,
|
|
459
|
+
this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
|
|
461
460
|
}
|
|
462
461
|
/**
|
|
463
462
|
* Like timeEnd, but with INFO level
|
|
@@ -465,7 +464,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
465
464
|
;
|
|
466
465
|
|
|
467
466
|
_proto.infoSuccessTimeEnd = function infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
|
|
468
|
-
this.timeEnd(time, message, metadata, metadataStyles,
|
|
467
|
+
this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO, {
|
|
469
468
|
symbol: '✔',
|
|
470
469
|
styles: ['green', 'bold']
|
|
471
470
|
});
|
|
@@ -491,7 +490,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
491
490
|
functionName: fn.name
|
|
492
491
|
});
|
|
493
492
|
|
|
494
|
-
this.log('enter', extendedMetadata,
|
|
493
|
+
this.log('enter', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
495
494
|
metadataStyles
|
|
496
495
|
});
|
|
497
496
|
}
|
|
@@ -516,7 +515,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
516
515
|
functionName: fn.name
|
|
517
516
|
});
|
|
518
517
|
|
|
519
|
-
this.log('exit', extendedMetadata,
|
|
518
|
+
this.log('exit', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
520
519
|
metadataStyles
|
|
521
520
|
});
|
|
522
521
|
}
|
|
@@ -561,7 +560,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
561
560
|
return Logger;
|
|
562
561
|
}();
|
|
563
562
|
|
|
564
|
-
exports.Level =
|
|
563
|
+
exports.Level = nightingaleLevels.Level;
|
|
565
564
|
exports.Logger = Logger;
|
|
566
|
-
exports
|
|
565
|
+
exports["default"] = Logger;
|
|
567
566
|
//# sourceMappingURL=index-browser-dev.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport Level from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const {\n handlers,\n processors,\n }: ComputedConfigForKey = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => process(record, record.context));\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles as MetadataStyles<T>);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles!);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":";;;;;;;;;;;AA4DA,IAAI,CAACA,MAAM,CAACC,mCAAZ,EAAiD;AAC/CD,EAAAA,MAAM,CAACC,mCAAP,GAA6C;AAAA,WAA6B;AACxEC,MAAAA,QAAQ,EAAE,EAD8D;AAExEC,MAAAA,UAAU,EAAE;AAF4D,KAA7B;AAAA,GAA7C;AAID;;AAED,IAAI,CAACH,MAAM,CAACI,0CAAZ,EAAwD;AACtDJ,EAAAA,MAAM,CAACI,0CAAP,GAAoD,UAClDC,GADkD,EAElDC,KAFkD,EAGzB;AACzB,gCACEN,MAAM,CAACC,mCAAP,CAA2CI,GAA3C,CADF;AAAA,QAAQH,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAGA,WAAO;AACLD,MAAAA,QAAQ,EAAEA,QAAQ,CAACK,MAAT,CACR,UAACC,OAAD;AAAA,eACEF,KAAK,IAAIE,OAAO,CAACC,QAAjB,KACC,CAACD,OAAO,CAACE,UAAT,IAAuBF,OAAO,CAACE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CADxB,CADF;AAAA,OADQ,CADL;AAMLF,MAAAA;AANK,KAAP;AAQD,GAfD;AAgBD;AAED;;;AACA,SAASQ,wBAAT,CACEN,GADF,EAEEO,WAFF,EAGwB;AACtB,SAAOZ,MAAM,CAACI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;AAED;AACA;AACA;AACA;;;IACaC,MAAb;AAOE;AACF;AACA;AACA;AACA;AACA;AACE,kBAAYR,GAAZ,EAAyBS,WAAzB,EAA+C;AAC7C,SAAKT,GAAL,GAAWA,GAAX;AACA,SAAKS,WAAL,GAAmBA,WAAnB;;AAEA,QAAmBT,GAAG,CAACU,QAAJ,CAAa,GAAb,CAAnB,EAAsC;AACpC,YAAM,IAAIC,KAAJ,CACH,6EAA4EX,GAAI,GAD7E,CAAN;AAGD;AACF;AAED;;;AAxBF;;AAAA,SAyBYY,wBAzBZ,GAyBE,kCACEL,WADF,EAEwB;AACtB,WAAOD,wBAAwB,CAAC,KAAKN,GAAN,EAAWO,WAAX,CAA/B;AACD;AAED;AA/BF;;AAAA,SAgCEM,SAhCF,GAgCE,qBAA4C;AAC1C,WAAOlB,MAAM,CAACC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;AAED;AACF;AACA;AAtCA;;AAAA,SAuCEc,KAvCF,GAuCE,eAAMC,cAAN,EAA8BC,gBAA9B,EAAiE;AAC/D,WAAO,IAAIR,MAAJ,CAAY,GAAE,KAAKR,GAAI,IAAGe,cAAe,EAAzC,EAA4CC,gBAA5C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3DA;;AAAA,SA4DEC,OA5DF,GA4DE,iBAAQA,QAAR,EAAkD;AAChD,QAAMC,MAAM,GAAG,IAAIV,MAAJ,CAAW,KAAKR,GAAhB,CAAf;AACAkB,IAAAA,MAAM,CAACC,UAAP,CAAkBF,QAAlB;AACA,WAAOC,MAAP;AACD;AAED;AACF;AACA;AApEA;;AAAA,SAqEEE,gBArEF,GAqEE,4BAAkE;AAChE,WAAO,KAAKC,aAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AA7EA;;AAAA,SA8EEF,UA9EF,GA8EE,oBAAWF,OAAX,EAAmD;AACjD,SAAKI,aAAL,GAAqBJ,OAArB;AACD;AAED;AACF;AACA;AApFA;;AAAA,SAqFEK,cArFF,GAqFE,wBAAeC,eAAf,EAA+D;AAC7DC,IAAAA,MAAM,CAACC,MAAP,CAAc,KAAKJ,aAAnB,EAAkCE,eAAlC;AACD;AAED;AACF;AACA;AACA;AACA;AA7FA;;AAAA,SA8FEG,SA9FF,GA8FE,mBAA8BC,MAA9B,EAAoE;AAClE,gCAAiC,KAAKf,wBAAL,CAC/Be,MAAM,CAAC1B,KADwB,CAAjC;AAAA,QAAQJ,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAIA,QAAID,QAAQ,CAAC+B,MAAT,KAAoB,CAAxB,EAA2B;AACzB,UAAID,MAAM,CAAC1B,KAAP,GAAe4B,uBAAK,CAACC,KAAzB,EAAgC;AAC9B;AACAC,QAAAA,OAAO,CAACC,GAAR,CAAY,4CAAZ,EAA0D;AACxDhC,UAAAA,GAAG,EAAE2B,MAAM,CAAC3B,GAD4C;AAExDiC,UAAAA,OAAO,EAAEN,MAAM,CAACM;AAFwC,SAA1D;AAID;;AACD;AACD;;AAED,QAAInC,UAAJ,EAAgB;AACdA,MAAAA,UAAU,CAACoC,OAAX,CAAmB,UAACC,OAAD,EAAa;AAC9BA,QAAAA,OAAO,CAACR,MAAD,EAASA,MAAM,CAACV,OAAhB,CAAP;AACD,OAFD;AAGD;;AAEDpB,IAAAA,QAAQ,CAACuC,IAAT,CAAc,UAACjC,OAAD;AAAA,aAAaA,OAAO,CAACkC,MAAR,CAAeV,MAAf,MAA2B,KAAxC;AAAA,KAAd;AACD;AAED;AACF;AACA;AAzHA;;AAAA,SA0HEK,GA1HF,GA0HE,aACEC,OADF,EAEEK,QAFF,EAGErC,KAHF,EAIEsC,OAJF,EAKQ;AAAA,QAFNtC,KAEM;AAFNA,MAAAA,KAEM,GAFS4B,uBAAK,CAACW,IAEf;AAAA;;AACN,QAAMvB,OAAO,GAAGqB,QAAH,oBAAGA,QAAQ,CAAErB,OAA1B;;AACA,QAAIqB,QAAJ,EAAc;AACZ,aAAOA,QAAQ,CAACrB,OAAhB;AACD;;AAED,QAAMU,MAAoB;AACxB1B,MAAAA,KADwB;AAExBD,MAAAA,GAAG,EAAE,KAAKA,GAFc;AAGxBS,MAAAA,WAAW,EAAE,KAAKA,WAHM;AAIxBgC,MAAAA,QAAQ,EAAE,IAAIC,IAAJ,EAJc;AAKxBT,MAAAA,OALwB;AAMxBhB,MAAAA,OAAO,EAAEA,OAAO,IAAI,KAAKI,aAND;AAOxBiB,MAAAA,QAPwB;AAQxBK,MAAAA,KAAK,EAAE;AARiB,OASrBJ,OATqB,CAA1B;;AAWA,SAAKb,SAAL,CAAeC,MAAf;AACD;AAED;AACF;AACA;AArJA;;AAAA,SAsJEiB,KAtJF,GAsJE,eACEX,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACiB,KAAlC,EAAyC;AAAED,MAAAA;AAAF,KAAzC;AACD;AAED;AACF;AACA;AAhKA;;AAAA,SAiKEE,KAjKF,GAiKE,eACEd,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACmB,KAAlC,EAAyC;AAAEH,MAAAA;AAAF,KAAzC;AACD;AAED;AACF;AACA;AA3KA;;AAAA,SA4KEI,MA5KF,GA4KE,gBACEhB,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACqB,MAAlC,EAA0C;AAAEL,MAAAA;AAAF,KAA1C;AACD;AAED;AACF;AACA;AAtLA;;AAAA,SAuLEM,IAvLF,GAuLE,cACElB,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACW,IAAlC,EAAwC;AAAEK,MAAAA;AAAF,KAAxC;AACD;AAED;AACF;AACA;AAjMA;;AAAA,SAkMEO,IAlMF,GAkME,cACEnB,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACwB,IAAlC,EAAwC;AAAER,MAAAA;AAAF,KAAxC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtNA;;AAAA,SAuNES,KAvNF,GAuNE,eACErB,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,QAAIZ,OAAO,YAAYtB,KAAvB,EAA8B;AAC5B,UAAM4C,gBAAgB,yBACjBjB,QADiB;AAEpBgB,QAAAA,KAAK,EAAErB;AAFa,QAAtB;;AAIAA,MAAAA,OAAO,GAAI,GAAEsB,gBAAgB,CAACD,KAAjB,CAAuBE,IAAK,KAAID,gBAAgB,CAACD,KAAjB,CAAuBrB,OAAQ,EAA5E;AACA,WAAKD,GAAL,CAASC,OAAT,EAAkBsB,gBAAlB,EAAoC1B,uBAAK,CAACC,KAA1C,EAAiD;AAAEe,QAAAA;AAAF,OAAjD;AACD,KAPD,MAOO;AACL,WAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACC,KAAlC,EAAyC;AAAEe,QAAAA;AAAF,OAAzC;AACD;AACF;AAED;AACF;AACA;AA1OA;;AAAA,SA2OEY,QA3OF,GA2OE,kBACExB,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAAC6B,QAAlC,EAA4C;AAAEb,MAAAA;AAAF,KAA5C;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/PA;;AAAA,SAgQEc,KAhQF,GAgQE,eACE1B,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAAC+B,KAAlC,EAAyC;AAAEf,MAAAA;AAAF,KAAzC;AACD;AAED;AACF;AACA;AA1QA;;AAAA,SA2QEgB,KA3QF,GA2QE,eACE5B,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACiC,KAAlC,EAAyC;AAAEjB,MAAAA;AAAF,KAAzC;AACD;AAED;AACF;AACA;AArRA;;AAAA,SAsREkB,YAtRF,GAsRE,wBAIQ;AAEJ,UAAM,IAAIpD,KAAJ,CAAU,mDAAV,CAAN;AAUH;AAED;AACF;AACA;AA1SA;;AAAA,SA2SEqD,UA3SF,GA2SE,sBAKQ;AAEJ,UAAM,IAAIrD,KAAJ,CAAU,mDAAV,CAAN;AAQH;AAED;AACF;AACA;AA9TA;;AAAA,SA+TEsD,OA/TF,GA+TE,iBACEhC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKqB,WAAL,CAAiBjC,OAAjB,EAA0BK,QAA1B,EAAoCO,cAApC;AACD;AAED;AACF;AACA;AAzUA;;AAAA,SA0UEqB,WA1UF,GA0UE,qBACEjC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACW,IAAlC,EAAwC;AACtCK,MAAAA,cADsC;AAEtCsB,MAAAA,MAAM,EAAE,GAF8B;AAGtCC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAH8B,KAAxC;AAKD;AAED;AACF;AACA;AAxVA;;AAAA,SAyVEC,YAzVF,GAyVE,sBACEpC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACmB,KAAlC,EAAyC;AACvCH,MAAAA,cADuC;AAEvCsB,MAAAA,MAAM,EAAE,GAF+B;AAGvCC,MAAAA,MAAM,EAAE,CAAC,OAAD;AAH+B,KAAzC;AAKD;AAED;AACF;AACA;AAvWA;;AAAA,SAwWEE,IAxWF,GAwWE,cACErC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAK0B,QAAL,CAActC,OAAd,EAAuBK,QAAvB,EAAiCO,cAAjC;AACD;AAED;AACF;AACA;AAlXA;;AAAA,SAmXE0B,QAnXF,GAmXE,kBACEtC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACW,IAAlC,EAAwC;AACtCK,MAAAA,cADsC;AAEtCsB,MAAAA,MAAM,EAAE,GAF8B;AAGtCC,MAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,MAAR;AAH8B,KAAxC;AAKD;AAED;AACF;AACA;AAjYA;;AAAA,SAkYEI,SAlYF,GAkYE,mBACEvC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIQ;AACN,SAAKb,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,uBAAK,CAACmB,KAAlC,EAAyC;AACvCH,MAAAA,cADuC;AAEvCsB,MAAAA,MAAM,EAAE,GAF+B;AAGvCC,MAAAA,MAAM,EAAE,CAAC,KAAD;AAH+B,KAAzC;AAKD;AAED;AACF;AACA;AAhZA;;AAAA,SAiZEK,IAjZF,GAiZE,cACExC,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIE5C,KAJF,EAKU;AAAA,QADRA,KACQ;AADRA,MAAAA,KACQ,GADQ4B,uBAAK,CAACmB,KACd;AAAA;;AACR,QAAIf,OAAJ,EAAa;AACX,WAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BrC,KAA5B,EAAmC;AAAE4C,QAAAA;AAAF,OAAnC;AACD;;AAED,WAAOH,IAAI,CAACgC,GAAL,EAAP;AACD,GA5ZH;;AAAA,SA8ZEC,QA9ZF,GA8ZE,kBACE1C,OADF,EAEEK,QAFF,EAGEO,cAHF,EAIU;AACR,WAAO,KAAK4B,IAAL,CAAUxC,OAAV,EAAmBK,QAAnB,EAA6BO,cAA7B,EAA6ChB,uBAAK,CAACW,IAAnD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AA3aA;;AAAA,SA4aEoC,OA5aF,GA4aE,iBACEC,SADF,EAEE5C,OAFF,EAGEK,QAHF,EAIEO,cAJF,EAKE5C,KALF,EAMEsC,OANF,EAOQ;AAAA,QAFNtC,KAEM;AAFNA,MAAAA,KAEM,GAFU4B,uBAAK,CAACmB,KAEhB;AAAA;;AACN,QAAM0B,GAAG,GAAGhC,IAAI,CAACgC,GAAL,EAAZ;AAEA,QAAMI,QAAQ,GAAGJ,GAAG,GAAGG,SAAvB;AACA,QAAIE,YAAJ;;AAEA,QAAID,QAAQ,GAAG,IAAf,EAAqB;AACnBC,MAAAA,YAAY,GAAI,GAAED,QAAS,IAA3B;AACD,KAFD,MAEO;AACL,UAAME,OAAO,GAAGF,QAAQ,GAAG,IAAX,GAAkBG,IAAI,CAACC,KAAL,CAAWJ,QAAQ,GAAG,IAAtB,CAAlB,GAAgD,CAAhE;AAEAC,MAAAA,YAAY,GAAI,GAAEC,OAAO,GAAI,GAAEA,OAAQ,QAAd,GAAwB,EAAG,GADzCF,QAAQ,GAAGE,OAAO,GAAG,IACyB,IAAzD;AACD;;AAED,QAAMzB,gBAAgB,yBACjBjB,QADiB;AAEpByC,MAAAA,YAFoB;AAGpBI,MAAAA,MAAM,EAAEL;AAHY,MAAtB;;AAMA,SAAK9C,GAAL,CAASC,OAAT,EAAkBsB,gBAAlB,EAAoCtD,KAApC,wBAAgDsC,OAAhD;AAAyDM,MAAAA;AAAzD;AACD;AAED;AACF;AACA;AA5cA;;AAAA,SA6cEuC,WA7cF,GA6cE,qBACEX,IADF,EAEExC,OAFF,EAGEK,QAHF,EAIEO,cAJF,EAKQ;AACN,SAAK+B,OAAL,CAAaH,IAAb,EAAmBxC,OAAnB,EAA4BK,QAA5B,EAAsCO,cAAtC,EAAsDhB,uBAAK,CAACW,IAA5D;AACD;AAED;AACF;AACA;AAxdA;;AAAA,SAydE6C,kBAzdF,GAydE,4BACEZ,IADF,EAEExC,OAFF,EAGEK,QAHF,EAIEO,cAJF,EAKQ;AACN,SAAK+B,OAAL,CAAaH,IAAb,EAAmBxC,OAAnB,EAA4BK,QAA5B,EAAsCO,cAAtC,EAAsDhB,uBAAK,CAACW,IAA5D,EAAkE;AAChE2B,MAAAA,MAAM,EAAE,GADwD;AAEhEC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAFwD,KAAlE;AAID;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlfA;;AAAA,SAmfEkB,KAnfF,GAmfE,eACEC,EADF,EAEEjD,QAFF,EAGEO,cAHF,EAIQ;AACN,QAAMU,gBAAgB,yBACjBjB,QADiB;AAEpBkD,MAAAA,YAAY,EAAED,EAAE,CAAC/B;AAFG,MAAtB;;AAIA,SAAKxB,GAAL,CAAS,OAAT,EAAkBuB,gBAAlB,EAAoC1B,uBAAK,CAACiB,KAA1C,EAAiD;AAAED,MAAAA;AAAF,KAAjD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA5gBA;;AAAA,SA6gBE4C,IA7gBF,GA6gBE,cACEF,EADF,EAEEjD,QAFF,EAGEO,cAHF,EAIQ;AACN,QAAMU,gBAAgB,yBACjBjB,QADiB;AAEpBkD,MAAAA,YAAY,EAAED,EAAE,CAAC/B;AAFG,MAAtB;;AAIA,SAAKxB,GAAL,CAAS,MAAT,EAAiBuB,gBAAjB,EAAmC1B,uBAAK,CAACiB,KAAzC,EAAgD;AAAED,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAviBA;;AAAA,SA0jBE6C,IA1jBF,GA0jBE,cACEH,EADF,EAEEI,OAFF,EAGEC,OAHF,EAIEC,QAJF,EAKQ;AACN,QAAIvD,QAAJ;AACA,QAAIO,cAAJ;;AAEA,QAAI,OAAO8C,OAAP,KAAmB,UAAvB,EAAmC;AACjCE,MAAAA,QAAQ,GAAGF,OAAX;AACD,KAFD,MAEO;AACLrD,MAAAA,QAAQ,GAAGqD,OAAX;;AAEA,UAAI,OAAOC,OAAP,KAAmB,UAAvB,EAAmC;AACjCC,QAAAA,QAAQ,GAAGD,OAAX;AACD,OAFD,MAEO;AACL/C,QAAAA,cAAc,GAAG+C,OAAjB;AACD;AACF;;AAED,SAAKN,KAAL,CAAWC,EAAX,EAAejD,QAAf,EAAyBO,cAAzB;AACCgD,IAAAA,QAAD;AACA,SAAKJ,IAAL,CAAUF,EAAV;AACD,GAllBH;;AAAA;AAAA;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import Level from 'nightingale-levels';
|
|
3
|
-
export {
|
|
2
|
+
import { Level } from 'nightingale-levels';
|
|
3
|
+
export { Level } from 'nightingale-levels';
|
|
4
4
|
|
|
5
5
|
if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
|
|
6
6
|
global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
|
|
@@ -150,7 +150,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
150
150
|
|
|
151
151
|
if (processors) {
|
|
152
152
|
processors.forEach(function (process) {
|
|
153
|
-
|
|
153
|
+
process(record, record.context);
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
|
|
@@ -168,7 +168,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
168
168
|
level = Level.INFO;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
var context = metadata
|
|
171
|
+
var context = metadata == null ? void 0 : metadata.context;
|
|
172
172
|
|
|
173
173
|
if (metadata) {
|
|
174
174
|
delete metadata.context;
|
|
@@ -553,6 +553,5 @@ var Logger = /*#__PURE__*/function () {
|
|
|
553
553
|
return Logger;
|
|
554
554
|
}();
|
|
555
555
|
|
|
556
|
-
export default
|
|
557
|
-
export { Logger };
|
|
556
|
+
export { Logger, Logger as default };
|
|
558
557
|
//# sourceMappingURL=index-browser-dev.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport Level from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const {\n handlers,\n processors,\n }: ComputedConfigForKey = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => process(record, record.context));\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles as MetadataStyles<T>);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level };\n\nexport interface Options<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly<ComputedConfigForKey> {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord<T extends Metadata>(record: Readonly<LogRecord<T>>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach((process) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error<T extends Metadata>(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles!);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
|