nightingale-logger 11.7.1 → 11.8.1
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 +41 -0
- package/babel.config.cjs +14 -0
- package/dist/index-browser-dev.cjs.js +80 -82
- package/dist/index-browser-dev.cjs.js.map +1 -1
- package/dist/index-browser-dev.es.js +68 -70
- package/dist/index-browser-dev.es.js.map +1 -1
- package/dist/index-browser.cjs.js +79 -81
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +67 -69
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern-dev.es.js +44 -45
- package/dist/index-browsermodern-dev.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +44 -45
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/index-node12-dev.cjs.js +60 -63
- package/dist/index-node12-dev.cjs.js.map +1 -1
- package/dist/index-node12-dev.mjs +44 -45
- package/dist/index-node12-dev.mjs.map +1 -1
- package/dist/index-node12.cjs.js +60 -63
- package/dist/index-node12.cjs.js.map +1 -1
- package/dist/index-node12.mjs +44 -45
- package/dist/index-node12.mjs.map +1 -1
- package/dist/index.d.ts +15 -15
- package/dist/index.d.ts.map +1 -1
- package/package.json +19 -27
- package/rollup.config.mjs +3 -0
- package/src/index.test.ts +18 -0
- package/src/index.ts +52 -46
- package/index.js +0 -6
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
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.8.1](https://github.com/christophehurpeau/nightingale/compare/v11.8.0...v11.8.1) (2021-11-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **nightingale-logger:** fix build ([fe7e3c9](https://github.com/christophehurpeau/nightingale/commit/fe7e3c9ef54a6c6957b244112af5f5438ed1950b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [11.8.0](https://github.com/christophehurpeau/nightingale/compare/v11.7.4...v11.8.0) (2021-11-27)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **nightingale-logger:** support passing Error to any of the basic methods ([c1fda3e](https://github.com/christophehurpeau/nightingale/commit/c1fda3e5686f4c86f96d2cb2581239d2394bcf39))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [11.7.4](https://github.com/christophehurpeau/nightingale/compare/v11.7.3...v11.7.4) (2021-11-27)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
* build all packages ([dbb4785](https://github.com/christophehurpeau/nightingale/commit/dbb4785cbb8c75942935c4a5935df32fd2e93690))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## [11.7.2](https://github.com/christophehurpeau/nightingale/compare/v11.7.1...v11.7.2) (2021-11-27)
|
|
40
|
+
|
|
41
|
+
**Note:** Version bump only for package nightingale-logger
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
6
47
|
## [11.7.1](https://github.com/christophehurpeau/nightingale/compare/v11.7.0...v11.7.1) (2021-06-29)
|
|
7
48
|
|
|
8
49
|
|
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 () {
|
|
@@ -29,7 +28,7 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
|
|
|
29
28
|
handlers: handlers.filter(function (handler) {
|
|
30
29
|
return level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key));
|
|
31
30
|
}),
|
|
32
|
-
processors
|
|
31
|
+
processors
|
|
33
32
|
};
|
|
34
33
|
};
|
|
35
34
|
}
|
|
@@ -39,6 +38,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
|
|
|
39
38
|
function getConfigForLoggerRecord(key, recordLevel) {
|
|
40
39
|
return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
|
|
41
40
|
}
|
|
41
|
+
|
|
42
|
+
function isError(messageOrError) {
|
|
43
|
+
return messageOrError instanceof Error;
|
|
44
|
+
}
|
|
42
45
|
/**
|
|
43
46
|
* Interface that allows you to log records.
|
|
44
47
|
* This records are treated by handlers
|
|
@@ -57,7 +60,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
57
60
|
this.displayName = displayName;
|
|
58
61
|
|
|
59
62
|
if (key.includes('.')) {
|
|
60
|
-
throw new Error(
|
|
63
|
+
throw new Error(`nightingale: \`.\` in key is no longer supported, use \`:\` instead (key: ${key})`);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
/** @private */
|
|
@@ -80,7 +83,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
80
83
|
;
|
|
81
84
|
|
|
82
85
|
_proto.child = function child(childSuffixKey, childDisplayName) {
|
|
83
|
-
return new Logger(this.key
|
|
86
|
+
return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);
|
|
84
87
|
}
|
|
85
88
|
/**
|
|
86
89
|
* Create a new Logger with the same key a this attached context
|
|
@@ -145,7 +148,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
145
148
|
processors = _this$getHandlersAndP.processors;
|
|
146
149
|
|
|
147
150
|
if (handlers.length === 0) {
|
|
148
|
-
if (record.level >
|
|
151
|
+
if (record.level > nightingaleLevels.Level.ERROR) {
|
|
149
152
|
// eslint-disable-next-line no-console
|
|
150
153
|
console.log('[nightingale] no logger for > error level.', {
|
|
151
154
|
key: record.key,
|
|
@@ -171,25 +174,31 @@ var Logger = /*#__PURE__*/function () {
|
|
|
171
174
|
*/
|
|
172
175
|
;
|
|
173
176
|
|
|
174
|
-
_proto.log = function log(
|
|
177
|
+
_proto.log = function log(messageOrError, metadata, level, options) {
|
|
175
178
|
if (level === void 0) {
|
|
176
|
-
level =
|
|
179
|
+
level = nightingaleLevels.Level.INFO;
|
|
177
180
|
}
|
|
178
181
|
|
|
179
|
-
var
|
|
182
|
+
var isMessageError = isError(messageOrError);
|
|
183
|
+
var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
|
|
184
|
+
var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own
|
|
185
|
+
!(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends__default({}, metadata, {
|
|
186
|
+
error: messageOrError
|
|
187
|
+
}) : metadata;
|
|
188
|
+
var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
|
|
180
189
|
|
|
181
|
-
if (
|
|
182
|
-
delete
|
|
190
|
+
if (extendedMetadata) {
|
|
191
|
+
delete extendedMetadata.context;
|
|
183
192
|
}
|
|
184
193
|
|
|
185
194
|
var record = _extends__default({
|
|
186
|
-
level
|
|
195
|
+
level,
|
|
187
196
|
key: this.key,
|
|
188
197
|
displayName: this.displayName,
|
|
189
198
|
datetime: new Date(),
|
|
190
|
-
message
|
|
199
|
+
message,
|
|
191
200
|
context: context || this.contextObject,
|
|
192
|
-
metadata:
|
|
201
|
+
metadata: extendedMetadata,
|
|
193
202
|
extra: {}
|
|
194
203
|
}, options);
|
|
195
204
|
|
|
@@ -200,9 +209,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
200
209
|
*/
|
|
201
210
|
;
|
|
202
211
|
|
|
203
|
-
_proto.trace = function trace(
|
|
204
|
-
this.log(
|
|
205
|
-
metadataStyles
|
|
212
|
+
_proto.trace = function trace(messageOrError, metadata, metadataStyles) {
|
|
213
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, {
|
|
214
|
+
metadataStyles
|
|
206
215
|
});
|
|
207
216
|
}
|
|
208
217
|
/**
|
|
@@ -210,9 +219,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
210
219
|
*/
|
|
211
220
|
;
|
|
212
221
|
|
|
213
|
-
_proto.debug = function debug(
|
|
214
|
-
this.log(
|
|
215
|
-
metadataStyles
|
|
222
|
+
_proto.debug = function debug(messageOrError, metadata, metadataStyles) {
|
|
223
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
|
|
224
|
+
metadataStyles
|
|
216
225
|
});
|
|
217
226
|
}
|
|
218
227
|
/**
|
|
@@ -220,9 +229,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
220
229
|
*/
|
|
221
230
|
;
|
|
222
231
|
|
|
223
|
-
_proto.notice = function notice(
|
|
224
|
-
this.log(
|
|
225
|
-
metadataStyles
|
|
232
|
+
_proto.notice = function notice(messageOrError, metadata, metadataStyles) {
|
|
233
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, {
|
|
234
|
+
metadataStyles
|
|
226
235
|
});
|
|
227
236
|
}
|
|
228
237
|
/**
|
|
@@ -230,9 +239,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
230
239
|
*/
|
|
231
240
|
;
|
|
232
241
|
|
|
233
|
-
_proto.info = function info(
|
|
234
|
-
this.log(
|
|
235
|
-
metadataStyles
|
|
242
|
+
_proto.info = function info(messageOrError, metadata, metadataStyles) {
|
|
243
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
|
|
244
|
+
metadataStyles
|
|
236
245
|
});
|
|
237
246
|
}
|
|
238
247
|
/**
|
|
@@ -240,9 +249,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
240
249
|
*/
|
|
241
250
|
;
|
|
242
251
|
|
|
243
|
-
_proto.warn = function warn(
|
|
244
|
-
this.log(
|
|
245
|
-
metadataStyles
|
|
252
|
+
_proto.warn = function warn(messageOrError, metadata, metadataStyles) {
|
|
253
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, {
|
|
254
|
+
metadataStyles
|
|
246
255
|
});
|
|
247
256
|
}
|
|
248
257
|
/**
|
|
@@ -260,30 +269,19 @@ var Logger = /*#__PURE__*/function () {
|
|
|
260
269
|
*/
|
|
261
270
|
;
|
|
262
271
|
|
|
263
|
-
_proto.error = function error(
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
message = extendedMetadata.error.name + ": " + extendedMetadata.error.message;
|
|
270
|
-
this.log(message, extendedMetadata, Level__default.ERROR, {
|
|
271
|
-
metadataStyles: metadataStyles
|
|
272
|
-
});
|
|
273
|
-
} else {
|
|
274
|
-
this.log(message, metadata, Level__default.ERROR, {
|
|
275
|
-
metadataStyles: metadataStyles
|
|
276
|
-
});
|
|
277
|
-
}
|
|
272
|
+
_proto.error = function error(messageOrError, metadata, metadataStyles) {
|
|
273
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, {
|
|
274
|
+
metadataStyles
|
|
275
|
+
});
|
|
278
276
|
}
|
|
279
277
|
/**
|
|
280
278
|
* Log an critical message
|
|
281
279
|
*/
|
|
282
280
|
;
|
|
283
281
|
|
|
284
|
-
_proto.critical = function critical(
|
|
285
|
-
this.log(
|
|
286
|
-
metadataStyles
|
|
282
|
+
_proto.critical = function critical(messageOrError, metadata, metadataStyles) {
|
|
283
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, {
|
|
284
|
+
metadataStyles
|
|
287
285
|
});
|
|
288
286
|
}
|
|
289
287
|
/**
|
|
@@ -301,9 +299,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
301
299
|
*/
|
|
302
300
|
;
|
|
303
301
|
|
|
304
|
-
_proto.fatal = function fatal(
|
|
305
|
-
this.log(
|
|
306
|
-
metadataStyles
|
|
302
|
+
_proto.fatal = function fatal(messageOrError, metadata, metadataStyles) {
|
|
303
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, {
|
|
304
|
+
metadataStyles
|
|
307
305
|
});
|
|
308
306
|
}
|
|
309
307
|
/**
|
|
@@ -311,9 +309,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
311
309
|
*/
|
|
312
310
|
;
|
|
313
311
|
|
|
314
|
-
_proto.alert = function alert(
|
|
315
|
-
this.log(
|
|
316
|
-
metadataStyles
|
|
312
|
+
_proto.alert = function alert(messageOrError, metadata, metadataStyles) {
|
|
313
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, {
|
|
314
|
+
metadataStyles
|
|
317
315
|
});
|
|
318
316
|
}
|
|
319
317
|
/**
|
|
@@ -346,8 +344,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
346
344
|
;
|
|
347
345
|
|
|
348
346
|
_proto.infoSuccess = function infoSuccess(message, metadata, metadataStyles) {
|
|
349
|
-
this.log(message, metadata,
|
|
350
|
-
metadataStyles
|
|
347
|
+
this.log(message, metadata, nightingaleLevels.Level.INFO, {
|
|
348
|
+
metadataStyles,
|
|
351
349
|
symbol: '✔',
|
|
352
350
|
styles: ['green', 'bold']
|
|
353
351
|
});
|
|
@@ -358,8 +356,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
358
356
|
;
|
|
359
357
|
|
|
360
358
|
_proto.debugSuccess = function debugSuccess(message, metadata, metadataStyles) {
|
|
361
|
-
this.log(message, metadata,
|
|
362
|
-
metadataStyles
|
|
359
|
+
this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
|
|
360
|
+
metadataStyles,
|
|
363
361
|
symbol: '✔',
|
|
364
362
|
styles: ['green']
|
|
365
363
|
});
|
|
@@ -369,17 +367,17 @@ var Logger = /*#__PURE__*/function () {
|
|
|
369
367
|
*/
|
|
370
368
|
;
|
|
371
369
|
|
|
372
|
-
_proto.fail = function fail(
|
|
373
|
-
this.infoFail(
|
|
370
|
+
_proto.fail = function fail(messageOrError, metadata, metadataStyles) {
|
|
371
|
+
this.infoFail(messageOrError, metadata, metadataStyles);
|
|
374
372
|
}
|
|
375
373
|
/**
|
|
376
374
|
* Log an info fail message
|
|
377
375
|
*/
|
|
378
376
|
;
|
|
379
377
|
|
|
380
|
-
_proto.infoFail = function infoFail(
|
|
381
|
-
this.log(
|
|
382
|
-
metadataStyles
|
|
378
|
+
_proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) {
|
|
379
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
|
|
380
|
+
metadataStyles,
|
|
383
381
|
symbol: '✖',
|
|
384
382
|
styles: ['red', 'bold']
|
|
385
383
|
});
|
|
@@ -389,9 +387,9 @@ var Logger = /*#__PURE__*/function () {
|
|
|
389
387
|
*/
|
|
390
388
|
;
|
|
391
389
|
|
|
392
|
-
_proto.debugFail = function debugFail(
|
|
393
|
-
this.log(
|
|
394
|
-
metadataStyles
|
|
390
|
+
_proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) {
|
|
391
|
+
this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
|
|
392
|
+
metadataStyles,
|
|
395
393
|
symbol: '✖',
|
|
396
394
|
styles: ['red']
|
|
397
395
|
});
|
|
@@ -403,12 +401,12 @@ var Logger = /*#__PURE__*/function () {
|
|
|
403
401
|
|
|
404
402
|
_proto.time = function time(message, metadata, metadataStyles, level) {
|
|
405
403
|
if (level === void 0) {
|
|
406
|
-
level =
|
|
404
|
+
level = nightingaleLevels.Level.DEBUG;
|
|
407
405
|
}
|
|
408
406
|
|
|
409
407
|
if (message) {
|
|
410
408
|
this.log(message, metadata, level, {
|
|
411
|
-
metadataStyles
|
|
409
|
+
metadataStyles
|
|
412
410
|
});
|
|
413
411
|
}
|
|
414
412
|
|
|
@@ -416,7 +414,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
416
414
|
};
|
|
417
415
|
|
|
418
416
|
_proto.infoTime = function infoTime(message, metadata, metadataStyles) {
|
|
419
|
-
return this.time(message, metadata, metadataStyles,
|
|
417
|
+
return this.time(message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
|
|
420
418
|
}
|
|
421
419
|
/**
|
|
422
420
|
* Finds difference between when this method
|
|
@@ -428,7 +426,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
428
426
|
|
|
429
427
|
_proto.timeEnd = function timeEnd(startTime, message, metadata, metadataStyles, level, options) {
|
|
430
428
|
if (level === void 0) {
|
|
431
|
-
level =
|
|
429
|
+
level = nightingaleLevels.Level.DEBUG;
|
|
432
430
|
}
|
|
433
431
|
|
|
434
432
|
var now = Date.now();
|
|
@@ -436,19 +434,19 @@ var Logger = /*#__PURE__*/function () {
|
|
|
436
434
|
var readableTime;
|
|
437
435
|
|
|
438
436
|
if (diffTime < 1000) {
|
|
439
|
-
readableTime = diffTime
|
|
437
|
+
readableTime = `${diffTime}ms`;
|
|
440
438
|
} else {
|
|
441
439
|
var seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;
|
|
442
|
-
readableTime =
|
|
440
|
+
readableTime = `${seconds ? `${seconds}s and ` : ''}${diffTime - seconds * 1000}ms`;
|
|
443
441
|
}
|
|
444
442
|
|
|
445
443
|
var extendedMetadata = _extends__default({}, metadata, {
|
|
446
|
-
readableTime
|
|
444
|
+
readableTime,
|
|
447
445
|
timeMs: diffTime
|
|
448
446
|
});
|
|
449
447
|
|
|
450
448
|
this.log(message, extendedMetadata, level, _extends__default({}, options, {
|
|
451
|
-
metadataStyles
|
|
449
|
+
metadataStyles
|
|
452
450
|
}));
|
|
453
451
|
}
|
|
454
452
|
/**
|
|
@@ -457,7 +455,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
457
455
|
;
|
|
458
456
|
|
|
459
457
|
_proto.infoTimeEnd = function infoTimeEnd(time, message, metadata, metadataStyles) {
|
|
460
|
-
this.timeEnd(time, message, metadata, metadataStyles,
|
|
458
|
+
this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO);
|
|
461
459
|
}
|
|
462
460
|
/**
|
|
463
461
|
* Like timeEnd, but with INFO level
|
|
@@ -465,7 +463,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
465
463
|
;
|
|
466
464
|
|
|
467
465
|
_proto.infoSuccessTimeEnd = function infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
|
|
468
|
-
this.timeEnd(time, message, metadata, metadataStyles,
|
|
466
|
+
this.timeEnd(time, message, metadata, metadataStyles, nightingaleLevels.Level.INFO, {
|
|
469
467
|
symbol: '✔',
|
|
470
468
|
styles: ['green', 'bold']
|
|
471
469
|
});
|
|
@@ -491,8 +489,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
491
489
|
functionName: fn.name
|
|
492
490
|
});
|
|
493
491
|
|
|
494
|
-
this.log('enter', extendedMetadata,
|
|
495
|
-
metadataStyles
|
|
492
|
+
this.log('enter', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
493
|
+
metadataStyles
|
|
496
494
|
});
|
|
497
495
|
}
|
|
498
496
|
/**
|
|
@@ -516,8 +514,8 @@ var Logger = /*#__PURE__*/function () {
|
|
|
516
514
|
functionName: fn.name
|
|
517
515
|
});
|
|
518
516
|
|
|
519
|
-
this.log('exit', extendedMetadata,
|
|
520
|
-
metadataStyles
|
|
517
|
+
this.log('exit', extendedMetadata, nightingaleLevels.Level.TRACE, {
|
|
518
|
+
metadataStyles
|
|
521
519
|
});
|
|
522
520
|
}
|
|
523
521
|
/**
|
|
@@ -561,7 +559,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
561
559
|
return Logger;
|
|
562
560
|
}();
|
|
563
561
|
|
|
564
|
-
exports.Level =
|
|
562
|
+
exports.Level = nightingaleLevels.Level;
|
|
565
563
|
exports.Logger = Logger;
|
|
566
|
-
exports
|
|
564
|
+
exports["default"] = Logger;
|
|
567
565
|
//# 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) => {\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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"}
|
|
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 } 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 (!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 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\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\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","isError","messageOrError","Error","Logger","displayName","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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"}
|