nightingale-logger 14.2.1 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
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
+ ## [15.0.0](https://github.com/christophehurpeau/nightingale/compare/v14.2.1...v15.0.0) (2023-12-25)
7
+
8
+
9
+ ### ⚠ BREAKING CHANGES
10
+
11
+ * update babel and drop browser modern version
12
+
13
+ ### Features
14
+
15
+ * update babel and drop browser modern version ([5c76abc](https://github.com/christophehurpeau/nightingale/commit/5c76abc8bfb595a617fc4c8b795dae7e674ea664))
16
+
17
+ Version bump for dependency: nightingale-levels
18
+ Version bump for dependency: nightingale-types
19
+
20
+
6
21
  ## [14.2.1](https://github.com/christophehurpeau/nightingale/compare/v14.2.0...v14.2.1) (2023-11-05)
7
22
 
8
23
  Note: no notable changes
@@ -1,26 +1,24 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
1
  import { Level } from 'nightingale-levels';
3
2
  export { Level } from 'nightingale-levels';
4
3
 
5
- var globalOrWindow = typeof global !== 'undefined' ? global : window;
4
+ /* eslint-disable max-lines */
5
+
6
+ const globalOrWindow = typeof global !== 'undefined' ? global : window;
6
7
  if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
7
- globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {
8
- return {
9
- handlers: [],
10
- processors: []
11
- };
12
- };
8
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
9
+ handlers: [],
10
+ processors: []
11
+ });
13
12
  }
14
13
  if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
15
- globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {
16
- var _globalOrWindow$__NIG = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key),
17
- handlers = _globalOrWindow$__NIG.handlers,
18
- processors = _globalOrWindow$__NIG.processors;
14
+ globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
15
+ const {
16
+ handlers,
17
+ processors
18
+ } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
19
19
  return {
20
- handlers: handlers.filter(function (handler) {
21
- return level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key));
22
- }),
23
- processors: processors
20
+ handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
21
+ processors
24
22
  };
25
23
  };
26
24
  }
@@ -35,37 +33,36 @@ function isError(messageOrError) {
35
33
  * Interface that allows you to log records.
36
34
  * This records are treated by handlers
37
35
  */
38
- var Logger = /*#__PURE__*/function () {
36
+ class Logger {
39
37
  /**
40
38
  * Create a new Logger
41
39
  *
42
40
  * @param {string} key
43
41
  * @param {string} [displayName]
44
42
  */
45
- function Logger(key, displayName) {
43
+ constructor(key, displayName) {
46
44
  this.key = key;
47
45
  this.displayName = displayName;
48
46
  if (process.env.NODE_ENV !== 'production' && key.includes('.')) {
49
- throw new Error("nightingale: `.` in key is no longer supported, use `:` instead (key: " + key + ")");
47
+ throw new Error(`nightingale: \`.\` in key is no longer supported, use \`:\` instead (key: ${key})`);
50
48
  }
51
49
  }
52
50
 
53
51
  /** @private */
54
- var _proto = Logger.prototype;
55
- _proto.getHandlersAndProcessors = function getHandlersAndProcessors(recordLevel) {
52
+ getHandlersAndProcessors(recordLevel) {
56
53
  return getConfigForLoggerRecord(this.key, recordLevel);
57
54
  }
58
55
 
59
- /** @private */;
60
- _proto.getConfig = function getConfig() {
56
+ /** @private */
57
+ getConfig() {
61
58
  return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
62
59
  }
63
60
 
64
61
  /**
65
62
  * Create a child logger
66
- */;
67
- _proto.child = function child(childSuffixKey, childDisplayName) {
68
- return new Logger(this.key + ":" + childSuffixKey, childDisplayName);
63
+ */
64
+ child(childSuffixKey, childDisplayName) {
65
+ return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);
69
66
  }
70
67
 
71
68
  /**
@@ -84,17 +81,17 @@ var Logger = /*#__PURE__*/function () {
84
81
  * }
85
82
  * ```
86
83
  *
87
- */;
88
- _proto.context = function context(_context) {
89
- var logger = new Logger(this.key);
90
- logger.setContext(_context);
84
+ */
85
+ context(context) {
86
+ const logger = new Logger(this.key);
87
+ logger.setContext(context);
91
88
  return logger;
92
89
  }
93
90
 
94
91
  /**
95
92
  * Get the context of this logger
96
- */;
97
- _proto.getContextObject = function getContextObject() {
93
+ */
94
+ getContextObject() {
98
95
  return this.contextObject;
99
96
  }
100
97
 
@@ -102,15 +99,15 @@ var Logger = /*#__PURE__*/function () {
102
99
  * Set the context of this logger
103
100
  *
104
101
  * @param {Object} context
105
- */;
106
- _proto.setContext = function setContext(context) {
102
+ */
103
+ setContext(context) {
107
104
  this.contextObject = context;
108
105
  }
109
106
 
110
107
  /**
111
108
  * Extends existing context of this logger
112
- */;
113
- _proto.extendsContext = function extendsContext(extendedContext) {
109
+ */
110
+ extendsContext(extendedContext) {
114
111
  if (this.contextObject === undefined) {
115
112
  throw new Error('Cannot extends context that does not exists. Use setContext(context) first.');
116
113
  }
@@ -121,11 +118,12 @@ var Logger = /*#__PURE__*/function () {
121
118
  * Handle a record
122
119
  *
123
120
  * Use this only if you know what you are doing.
124
- */;
125
- _proto.addRecord = function addRecord(record) {
126
- var _this$getHandlersAndP = this.getHandlersAndProcessors(record.level),
127
- handlers = _this$getHandlersAndP.handlers,
128
- processors = _this$getHandlersAndP.processors;
121
+ */
122
+ addRecord(record) {
123
+ const {
124
+ handlers,
125
+ processors
126
+ } = this.getHandlersAndProcessors(record.level);
129
127
  if (handlers.length === 0) {
130
128
  if (record.level > Level.ERROR) {
131
129
  // eslint-disable-next-line no-console
@@ -137,86 +135,83 @@ var Logger = /*#__PURE__*/function () {
137
135
  return;
138
136
  }
139
137
  if (processors) {
140
- processors.forEach(function (process) {
138
+ processors.forEach(process => {
141
139
  process(record, record.context);
142
140
  });
143
141
  }
144
- handlers.some(function (handler) {
145
- return handler.handle(record) === false;
146
- });
142
+ handlers.some(handler => handler.handle(record) === false);
147
143
  }
148
144
 
149
145
  /**
150
146
  * Log a message
151
- */;
152
- _proto.log = function log(messageOrError, metadata, level, options) {
153
- if (level === void 0) {
154
- level = Level.INFO;
155
- }
156
- var isMessageError = isError(messageOrError);
157
- var message = isMessageError ? messageOrError.name + ": " + messageOrError.message : messageOrError;
158
- var extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? _extends({}, metadata, {
147
+ */
148
+ log(messageOrError, metadata, level = Level.INFO, options) {
149
+ const isMessageError = isError(messageOrError);
150
+ const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
151
+ const extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? {
152
+ ...metadata,
159
153
  error: messageOrError
160
- }) : metadata;
161
- var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
154
+ } : metadata;
155
+ const context = extendedMetadata == null ? void 0 : extendedMetadata.context;
162
156
  if (extendedMetadata) {
163
157
  delete extendedMetadata.context;
164
158
  }
165
- var record = _extends({
166
- level: level,
159
+ const record = {
160
+ level,
167
161
  key: this.key,
168
162
  displayName: this.displayName,
169
163
  datetime: new Date(),
170
- message: message,
164
+ message,
171
165
  context: context || this.contextObject,
172
166
  metadata: extendedMetadata,
173
- extra: {}
174
- }, options);
167
+ extra: {},
168
+ ...options
169
+ };
175
170
  this.addRecord(record);
176
171
  }
177
172
 
178
173
  /**
179
174
  * Log a trace message
180
- */;
181
- _proto.trace = function trace(messageOrError, metadata, metadataStyles) {
175
+ */
176
+ trace(messageOrError, metadata, metadataStyles) {
182
177
  this.log(messageOrError, metadata, Level.TRACE, {
183
- metadataStyles: metadataStyles
178
+ metadataStyles
184
179
  });
185
180
  }
186
181
 
187
182
  /**
188
183
  * Log a debug message
189
- */;
190
- _proto.debug = function debug(messageOrError, metadata, metadataStyles) {
184
+ */
185
+ debug(messageOrError, metadata, metadataStyles) {
191
186
  this.log(messageOrError, metadata, Level.DEBUG, {
192
- metadataStyles: metadataStyles
187
+ metadataStyles
193
188
  });
194
189
  }
195
190
 
196
191
  /**
197
192
  * Notice an info message
198
- */;
199
- _proto.notice = function notice(messageOrError, metadata, metadataStyles) {
193
+ */
194
+ notice(messageOrError, metadata, metadataStyles) {
200
195
  this.log(messageOrError, metadata, Level.NOTICE, {
201
- metadataStyles: metadataStyles
196
+ metadataStyles
202
197
  });
203
198
  }
204
199
 
205
200
  /**
206
201
  * Log an info message
207
- */;
208
- _proto.info = function info(messageOrError, metadata, metadataStyles) {
202
+ */
203
+ info(messageOrError, metadata, metadataStyles) {
209
204
  this.log(messageOrError, metadata, Level.INFO, {
210
- metadataStyles: metadataStyles
205
+ metadataStyles
211
206
  });
212
207
  }
213
208
 
214
209
  /**
215
210
  * Log a warn message
216
- */;
217
- _proto.warn = function warn(messageOrError, metadata, metadataStyles) {
211
+ */
212
+ warn(messageOrError, metadata, metadataStyles) {
218
213
  this.log(messageOrError, metadata, Level.WARN, {
219
- metadataStyles: metadataStyles
214
+ metadataStyles
220
215
  });
221
216
  }
222
217
 
@@ -232,19 +227,19 @@ var Logger = /*#__PURE__*/function () {
232
227
  * logger.error('caught error', { error });
233
228
  * }
234
229
  * ```
235
- */;
236
- _proto.error = function error(messageOrError, metadata, metadataStyles) {
230
+ */
231
+ error(messageOrError, metadata, metadataStyles) {
237
232
  this.log(messageOrError, metadata, Level.ERROR, {
238
- metadataStyles: metadataStyles
233
+ metadataStyles
239
234
  });
240
235
  }
241
236
 
242
237
  /**
243
238
  * Log an critical message
244
- */;
245
- _proto.critical = function critical(messageOrError, metadata, metadataStyles) {
239
+ */
240
+ critical(messageOrError, metadata, metadataStyles) {
246
241
  this.log(messageOrError, metadata, Level.CRITICAL, {
247
- metadataStyles: metadataStyles
242
+ metadataStyles
248
243
  });
249
244
  }
250
245
 
@@ -260,49 +255,49 @@ var Logger = /*#__PURE__*/function () {
260
255
  * logger.error('caught error', { error });
261
256
  * process.exit(1);
262
257
  * }
263
- */;
264
- _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) {
258
+ */
259
+ fatal(messageOrError, metadata, metadataStyles) {
265
260
  this.log(messageOrError, metadata, Level.FATAL, {
266
- metadataStyles: metadataStyles
261
+ metadataStyles
267
262
  });
268
263
  }
269
264
 
270
265
  /**
271
266
  * Log an alert message
272
- */;
273
- _proto.alert = function alert(messageOrError, metadata, metadataStyles) {
267
+ */
268
+ alert(messageOrError, metadata, metadataStyles) {
274
269
  this.log(messageOrError, metadata, Level.ALERT, {
275
- metadataStyles: metadataStyles
270
+ metadataStyles
276
271
  });
277
272
  }
278
273
 
279
274
  /**
280
275
  * Log an inspected value
281
- */;
282
- _proto.inspectValue = function inspectValue() {
276
+ */
277
+ inspectValue() {
283
278
  throw new Error('Not supported for the browser. Prefer `debugger;`');
284
279
  }
285
280
 
286
281
  /**
287
282
  * Log a debugged var
288
- */;
289
- _proto.inspectVar = function inspectVar() {
283
+ */
284
+ inspectVar() {
290
285
  throw new Error('Not supported for the browser. Prefer `debugger;`');
291
286
  }
292
287
 
293
288
  /**
294
289
  * Alias for infoSuccess
295
- */;
296
- _proto.success = function success(message, metadata, metadataStyles) {
290
+ */
291
+ success(message, metadata, metadataStyles) {
297
292
  this.infoSuccess(message, metadata, metadataStyles);
298
293
  }
299
294
 
300
295
  /**
301
296
  * Log an info success message
302
- */;
303
- _proto.infoSuccess = function infoSuccess(message, metadata, metadataStyles) {
297
+ */
298
+ infoSuccess(message, metadata, metadataStyles) {
304
299
  this.log(message, metadata, Level.INFO, {
305
- metadataStyles: metadataStyles,
300
+ metadataStyles,
306
301
  symbol: '✔',
307
302
  styles: ['green', 'bold']
308
303
  });
@@ -310,10 +305,10 @@ var Logger = /*#__PURE__*/function () {
310
305
 
311
306
  /**
312
307
  * Log an debug success message
313
- */;
314
- _proto.debugSuccess = function debugSuccess(message, metadata, metadataStyles) {
308
+ */
309
+ debugSuccess(message, metadata, metadataStyles) {
315
310
  this.log(message, metadata, Level.DEBUG, {
316
- metadataStyles: metadataStyles,
311
+ metadataStyles,
317
312
  symbol: '✔',
318
313
  styles: ['green']
319
314
  });
@@ -321,17 +316,17 @@ var Logger = /*#__PURE__*/function () {
321
316
 
322
317
  /**
323
318
  * Alias for infoFail
324
- */;
325
- _proto.fail = function fail(messageOrError, metadata, metadataStyles) {
319
+ */
320
+ fail(messageOrError, metadata, metadataStyles) {
326
321
  this.infoFail(messageOrError, metadata, metadataStyles);
327
322
  }
328
323
 
329
324
  /**
330
325
  * Log an info fail message
331
- */;
332
- _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) {
326
+ */
327
+ infoFail(messageOrError, metadata, metadataStyles) {
333
328
  this.log(messageOrError, metadata, Level.INFO, {
334
- metadataStyles: metadataStyles,
329
+ metadataStyles,
335
330
  symbol: '✖',
336
331
  styles: ['red', 'bold']
337
332
  });
@@ -339,10 +334,10 @@ var Logger = /*#__PURE__*/function () {
339
334
 
340
335
  /**
341
336
  * Log an debug fail message
342
- */;
343
- _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) {
337
+ */
338
+ debugFail(messageOrError, metadata, metadataStyles) {
344
339
  this.log(messageOrError, metadata, Level.DEBUG, {
345
- metadataStyles: metadataStyles,
340
+ metadataStyles,
346
341
  symbol: '✖',
347
342
  styles: ['red']
348
343
  });
@@ -350,19 +345,16 @@ var Logger = /*#__PURE__*/function () {
350
345
 
351
346
  /**
352
347
  * @returns {number} time to pass to timeEnd
353
- */;
354
- _proto.time = function time(message, metadata, metadataStyles, level) {
355
- if (level === void 0) {
356
- level = Level.DEBUG;
357
- }
348
+ */
349
+ time(message, metadata, metadataStyles, level = Level.DEBUG) {
358
350
  if (message) {
359
351
  this.log(message, metadata, level, {
360
- metadataStyles: metadataStyles
352
+ metadataStyles
361
353
  });
362
354
  }
363
355
  return Date.now();
364
- };
365
- _proto.infoTime = function infoTime(message, metadata, metadataStyles) {
356
+ }
357
+ infoTime(message, metadata, metadataStyles) {
366
358
  return this.time(message, metadata, metadataStyles, Level.INFO);
367
359
  }
368
360
 
@@ -371,41 +363,39 @@ var Logger = /*#__PURE__*/function () {
371
363
  * was called and when the respective time method
372
364
  * was called, then logs out the difference
373
365
  * and deletes the original record
374
- */;
375
- _proto.timeEnd = function timeEnd(startTime, message, metadata, metadataStyles, level, options) {
376
- if (level === void 0) {
377
- level = Level.DEBUG;
378
- }
379
- var now = Date.now(),
380
- seconds;
381
- var diffTime = now - startTime;
382
- var readableTime;
366
+ */
367
+ timeEnd(startTime, message, metadata, metadataStyles, level = Level.DEBUG, options) {
368
+ const now = Date.now();
369
+ const diffTime = now - startTime;
370
+ let readableTime;
383
371
  if (diffTime < 1000) {
384
- readableTime = diffTime + "ms";
372
+ readableTime = `${diffTime}ms`;
385
373
  } else {
386
- seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;
387
- readableTime = "" + (seconds ? seconds + "s and " : '') + (diffTime - seconds * 1000) + "ms";
374
+ const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;
375
+ readableTime = `${seconds ? `${seconds}s and ` : ''}${diffTime - seconds * 1000}ms`;
388
376
  }
389
- var extendedMetadata = _extends({}, metadata, {
390
- readableTime: readableTime,
377
+ const extendedMetadata = {
378
+ ...metadata,
379
+ readableTime,
391
380
  timeMs: diffTime
381
+ };
382
+ this.log(message, extendedMetadata, level, {
383
+ ...options,
384
+ metadataStyles
392
385
  });
393
- this.log(message, extendedMetadata, level, _extends({}, options, {
394
- metadataStyles: metadataStyles
395
- }));
396
386
  }
397
387
 
398
388
  /**
399
389
  * Like timeEnd, but with INFO level
400
- */;
401
- _proto.infoTimeEnd = function infoTimeEnd(time, message, metadata, metadataStyles) {
390
+ */
391
+ infoTimeEnd(time, message, metadata, metadataStyles) {
402
392
  this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);
403
393
  }
404
394
 
405
395
  /**
406
396
  * Like timeEnd, but with INFO level
407
- */;
408
- _proto.infoSuccessTimeEnd = function infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
397
+ */
398
+ infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
409
399
  this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {
410
400
  symbol: '✔',
411
401
  styles: ['green', 'bold']
@@ -425,13 +415,14 @@ var Logger = /*#__PURE__*/function () {
425
415
  * }
426
416
  * ```
427
417
  *
428
- */;
429
- _proto.enter = function enter(fn, metadata, metadataStyles) {
430
- var extendedMetadata = _extends({}, metadata, {
418
+ */
419
+ enter(fn, metadata, metadataStyles) {
420
+ const extendedMetadata = {
421
+ ...metadata,
431
422
  functionName: fn.name
432
- });
423
+ };
433
424
  this.log('enter', extendedMetadata, Level.TRACE, {
434
- metadataStyles: metadataStyles
425
+ metadataStyles
435
426
  });
436
427
  }
437
428
 
@@ -448,13 +439,14 @@ var Logger = /*#__PURE__*/function () {
448
439
  * }
449
440
  * }
450
441
  * ```
451
- */;
452
- _proto.exit = function exit(fn, metadata, metadataStyles) {
453
- var extendedMetadata = _extends({}, metadata, {
442
+ */
443
+ exit(fn, metadata, metadataStyles) {
444
+ const extendedMetadata = {
445
+ ...metadata,
454
446
  functionName: fn.name
455
- });
447
+ };
456
448
  this.log('exit', extendedMetadata, Level.TRACE, {
457
- metadataStyles: metadataStyles
449
+ metadataStyles
458
450
  });
459
451
  }
460
452
 
@@ -472,10 +464,11 @@ var Logger = /*#__PURE__*/function () {
472
464
  * }
473
465
  * }
474
466
  * ```
475
- */;
476
- _proto.wrap = function wrap(fn, option1, option2, callback) {
477
- var metadata;
478
- var metadataStyles;
467
+ */
468
+
469
+ wrap(fn, option1, option2, callback) {
470
+ let metadata;
471
+ let metadataStyles;
479
472
  if (typeof option1 === 'function') {
480
473
  callback = option1;
481
474
  } else {
@@ -489,9 +482,8 @@ var Logger = /*#__PURE__*/function () {
489
482
  this.enter(fn, metadata, metadataStyles);
490
483
  callback();
491
484
  this.exit(fn);
492
- };
493
- return Logger;
494
- }();
485
+ }
486
+ }
495
487
 
496
488
  export { Logger };
497
489
  //# sourceMappingURL=index-browser.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport * as util from 'node:util';\nimport { POB_TARGET } from 'pob-babel';\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\nexport interface 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 vars-on-top, no-var\n var __NIGHTINGALE_CONFIG: Config[];\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== '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 globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n 'Cannot extends context that does not exists. Use setContext(context) first.',\n );\n }\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: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error'))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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<ExtendedFunctionNameMetadata & T>,\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<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","_globalOrWindow$__NIG","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","process","env","NODE_ENV","includes","_proto","prototype","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","undefined","Object","assign","addRecord","record","_this$getHandlersAndP","length","Level","ERROR","console","log","message","forEach","some","handle","metadata","options","INFO","isMessageError","name","extendedMetadata","hasOwnProperty","call","_extends","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","seconds","diffTime","readableTime","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport * as util from 'node:util';\nimport { POB_TARGET } from 'pob-babel';\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\nexport interface 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 vars-on-top, no-var\n var __NIGHTINGALE_CONFIG: Config[];\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== '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 globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n 'Cannot extends context that does not exists. Use setContext(context) first.',\n );\n }\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: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error'))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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<ExtendedFunctionNameMetadata & T>,\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<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","process","env","NODE_ENV","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","undefined","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale-logger",
3
- "version": "14.2.1",
3
+ "version": "15.0.0",
4
4
  "description": "Logger for browser and node",
5
5
  "keywords": [
6
6
  "nightingale"
@@ -38,9 +38,6 @@
38
38
  "import": "./dist/index-node18.mjs"
39
39
  },
40
40
  "browser": {
41
- "browser:modern": {
42
- "import": "./dist/index-browsermodern.es.js"
43
- },
44
41
  "import": "./dist/index-browser.es.js"
45
42
  }
46
43
  }
@@ -67,10 +64,6 @@
67
64
  "target": "node",
68
65
  "version": "18"
69
66
  },
70
- {
71
- "target": "browser",
72
- "version": "modern"
73
- },
74
67
  {
75
68
  "target": "browser"
76
69
  }
@@ -81,13 +74,13 @@
81
74
  },
82
75
  "dependencies": {
83
76
  "@types/node": ">=18.0.0",
84
- "nightingale-levels": "14.2.1",
85
- "nightingale-types": "14.2.1"
77
+ "nightingale-levels": "15.0.0",
78
+ "nightingale-types": "15.0.0"
86
79
  },
87
80
  "devDependencies": {
88
- "@babel/core": "7.23.2",
89
- "@babel/preset-env": "7.23.2",
90
- "pob-babel": "36.6.1",
91
- "typescript": "5.2.2"
81
+ "@babel/core": "7.23.6",
82
+ "@babel/preset-env": "7.23.6",
83
+ "pob-babel": "38.0.0",
84
+ "typescript": "5.3.3"
92
85
  }
93
86
  }
@@ -1,489 +0,0 @@
1
- import { Level } from 'nightingale-levels';
2
- export { Level } from 'nightingale-levels';
3
-
4
- /* eslint-disable max-lines */
5
-
6
- const globalOrWindow = typeof global !== 'undefined' ? global : window;
7
- if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {
8
- globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = () => ({
9
- handlers: [],
10
- processors: []
11
- });
12
- }
13
- if (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
14
- globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (key, level) => {
15
- const {
16
- handlers,
17
- processors
18
- } = globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);
19
- return {
20
- handlers: handlers.filter(handler => level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))),
21
- processors
22
- };
23
- };
24
- }
25
- function getConfigForLoggerRecord(key, recordLevel) {
26
- return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
27
- }
28
- function isError(messageOrError) {
29
- return messageOrError instanceof Error;
30
- }
31
-
32
- /**
33
- * Interface that allows you to log records.
34
- * This records are treated by handlers
35
- */
36
- class Logger {
37
- /**
38
- * Create a new Logger
39
- *
40
- * @param {string} key
41
- * @param {string} [displayName]
42
- */
43
- constructor(key, displayName) {
44
- this.key = key;
45
- this.displayName = displayName;
46
- if (process.env.NODE_ENV !== 'production' && key.includes('.')) {
47
- throw new Error(`nightingale: \`.\` in key is no longer supported, use \`:\` instead (key: ${key})`);
48
- }
49
- }
50
-
51
- /** @private */
52
- getHandlersAndProcessors(recordLevel) {
53
- return getConfigForLoggerRecord(this.key, recordLevel);
54
- }
55
-
56
- /** @private */
57
- getConfig() {
58
- return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);
59
- }
60
-
61
- /**
62
- * Create a child logger
63
- */
64
- child(childSuffixKey, childDisplayName) {
65
- return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);
66
- }
67
-
68
- /**
69
- * Create a new Logger with the same key a this attached context
70
- *
71
- * @example
72
- * ```typescript
73
- * const loggerMyService = new Logger('app:myService');
74
- * function someAction(arg1) {
75
- * const logger = loggerMyService.context({ arg1 });
76
- * logger.enter(someAction);
77
- * // do stuff
78
- * logger.info('info');
79
- * // do stuff
80
- * logger.exit(someAction);
81
- * }
82
- * ```
83
- *
84
- */
85
- context(context) {
86
- const logger = new Logger(this.key);
87
- logger.setContext(context);
88
- return logger;
89
- }
90
-
91
- /**
92
- * Get the context of this logger
93
- */
94
- getContextObject() {
95
- return this.contextObject;
96
- }
97
-
98
- /**
99
- * Set the context of this logger
100
- *
101
- * @param {Object} context
102
- */
103
- setContext(context) {
104
- this.contextObject = context;
105
- }
106
-
107
- /**
108
- * Extends existing context of this logger
109
- */
110
- extendsContext(extendedContext) {
111
- if (this.contextObject === undefined) {
112
- throw new Error('Cannot extends context that does not exists. Use setContext(context) first.');
113
- }
114
- Object.assign(this.contextObject, extendedContext);
115
- }
116
-
117
- /**
118
- * Handle a record
119
- *
120
- * Use this only if you know what you are doing.
121
- */
122
- addRecord(record) {
123
- const {
124
- handlers,
125
- processors
126
- } = this.getHandlersAndProcessors(record.level);
127
- if (handlers.length === 0) {
128
- if (record.level > Level.ERROR) {
129
- // eslint-disable-next-line no-console
130
- console.log('[nightingale] no logger for > error level.', {
131
- key: record.key,
132
- message: record.message
133
- });
134
- }
135
- return;
136
- }
137
- if (processors) {
138
- processors.forEach(process => {
139
- process(record, record.context);
140
- });
141
- }
142
- handlers.some(handler => handler.handle(record) === false);
143
- }
144
-
145
- /**
146
- * Log a message
147
- */
148
- log(messageOrError, metadata, level = Level.INFO, options) {
149
- const isMessageError = isError(messageOrError);
150
- const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
151
- const extendedMetadata = isMessageError && !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) ? {
152
- ...metadata,
153
- error: messageOrError
154
- } : metadata;
155
- const context = extendedMetadata?.context;
156
- if (extendedMetadata) {
157
- delete extendedMetadata.context;
158
- }
159
- const record = {
160
- level,
161
- key: this.key,
162
- displayName: this.displayName,
163
- datetime: new Date(),
164
- message,
165
- context: context || this.contextObject,
166
- metadata: extendedMetadata,
167
- extra: {},
168
- ...options
169
- };
170
- this.addRecord(record);
171
- }
172
-
173
- /**
174
- * Log a trace message
175
- */
176
- trace(messageOrError, metadata, metadataStyles) {
177
- this.log(messageOrError, metadata, Level.TRACE, {
178
- metadataStyles
179
- });
180
- }
181
-
182
- /**
183
- * Log a debug message
184
- */
185
- debug(messageOrError, metadata, metadataStyles) {
186
- this.log(messageOrError, metadata, Level.DEBUG, {
187
- metadataStyles
188
- });
189
- }
190
-
191
- /**
192
- * Notice an info message
193
- */
194
- notice(messageOrError, metadata, metadataStyles) {
195
- this.log(messageOrError, metadata, Level.NOTICE, {
196
- metadataStyles
197
- });
198
- }
199
-
200
- /**
201
- * Log an info message
202
- */
203
- info(messageOrError, metadata, metadataStyles) {
204
- this.log(messageOrError, metadata, Level.INFO, {
205
- metadataStyles
206
- });
207
- }
208
-
209
- /**
210
- * Log a warn message
211
- */
212
- warn(messageOrError, metadata, metadataStyles) {
213
- this.log(messageOrError, metadata, Level.WARN, {
214
- metadataStyles
215
- });
216
- }
217
-
218
- /**
219
- * Log an error message
220
- *
221
- * @example
222
- * ```typescript
223
- * const logger = new Logger('something');
224
- * try {
225
- * throw new Error('Always throws here');
226
- * } catch (error) {
227
- * logger.error('caught error', { error });
228
- * }
229
- * ```
230
- */
231
- error(messageOrError, metadata, metadataStyles) {
232
- this.log(messageOrError, metadata, Level.ERROR, {
233
- metadataStyles
234
- });
235
- }
236
-
237
- /**
238
- * Log an critical message
239
- */
240
- critical(messageOrError, metadata, metadataStyles) {
241
- this.log(messageOrError, metadata, Level.CRITICAL, {
242
- metadataStyles
243
- });
244
- }
245
-
246
- /**
247
- * Log a fatal message
248
- *
249
- * @example
250
- * ```typescript
251
- * const logger = new Logger('something');
252
- * try {
253
- * throw new Error('Always throws here');
254
- * } catch (error) {
255
- * logger.error('caught error', { error });
256
- * process.exit(1);
257
- * }
258
- */
259
- fatal(messageOrError, metadata, metadataStyles) {
260
- this.log(messageOrError, metadata, Level.FATAL, {
261
- metadataStyles
262
- });
263
- }
264
-
265
- /**
266
- * Log an alert message
267
- */
268
- alert(messageOrError, metadata, metadataStyles) {
269
- this.log(messageOrError, metadata, Level.ALERT, {
270
- metadataStyles
271
- });
272
- }
273
-
274
- /**
275
- * Log an inspected value
276
- */
277
- inspectValue() {
278
- throw new Error('Not supported for the browser. Prefer `debugger;`');
279
- }
280
-
281
- /**
282
- * Log a debugged var
283
- */
284
- inspectVar() {
285
- throw new Error('Not supported for the browser. Prefer `debugger;`');
286
- }
287
-
288
- /**
289
- * Alias for infoSuccess
290
- */
291
- success(message, metadata, metadataStyles) {
292
- this.infoSuccess(message, metadata, metadataStyles);
293
- }
294
-
295
- /**
296
- * Log an info success message
297
- */
298
- infoSuccess(message, metadata, metadataStyles) {
299
- this.log(message, metadata, Level.INFO, {
300
- metadataStyles,
301
- symbol: '✔',
302
- styles: ['green', 'bold']
303
- });
304
- }
305
-
306
- /**
307
- * Log an debug success message
308
- */
309
- debugSuccess(message, metadata, metadataStyles) {
310
- this.log(message, metadata, Level.DEBUG, {
311
- metadataStyles,
312
- symbol: '✔',
313
- styles: ['green']
314
- });
315
- }
316
-
317
- /**
318
- * Alias for infoFail
319
- */
320
- fail(messageOrError, metadata, metadataStyles) {
321
- this.infoFail(messageOrError, metadata, metadataStyles);
322
- }
323
-
324
- /**
325
- * Log an info fail message
326
- */
327
- infoFail(messageOrError, metadata, metadataStyles) {
328
- this.log(messageOrError, metadata, Level.INFO, {
329
- metadataStyles,
330
- symbol: '✖',
331
- styles: ['red', 'bold']
332
- });
333
- }
334
-
335
- /**
336
- * Log an debug fail message
337
- */
338
- debugFail(messageOrError, metadata, metadataStyles) {
339
- this.log(messageOrError, metadata, Level.DEBUG, {
340
- metadataStyles,
341
- symbol: '✖',
342
- styles: ['red']
343
- });
344
- }
345
-
346
- /**
347
- * @returns {number} time to pass to timeEnd
348
- */
349
- time(message, metadata, metadataStyles, level = Level.DEBUG) {
350
- if (message) {
351
- this.log(message, metadata, level, {
352
- metadataStyles
353
- });
354
- }
355
- return Date.now();
356
- }
357
- infoTime(message, metadata, metadataStyles) {
358
- return this.time(message, metadata, metadataStyles, Level.INFO);
359
- }
360
-
361
- /**
362
- * Finds difference between when this method
363
- * was called and when the respective time method
364
- * was called, then logs out the difference
365
- * and deletes the original record
366
- */
367
- timeEnd(startTime, message, metadata, metadataStyles, level = Level.DEBUG, options) {
368
- const now = Date.now();
369
- const diffTime = now - startTime;
370
- let readableTime;
371
- if (diffTime < 1000) {
372
- readableTime = `${diffTime}ms`;
373
- } else {
374
- const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;
375
- readableTime = `${seconds ? `${seconds}s and ` : ''}${diffTime - seconds * 1000}ms`;
376
- }
377
- const extendedMetadata = {
378
- ...metadata,
379
- readableTime,
380
- timeMs: diffTime
381
- };
382
- this.log(message, extendedMetadata, level, {
383
- ...options,
384
- metadataStyles
385
- });
386
- }
387
-
388
- /**
389
- * Like timeEnd, but with INFO level
390
- */
391
- infoTimeEnd(time, message, metadata, metadataStyles) {
392
- this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);
393
- }
394
-
395
- /**
396
- * Like timeEnd, but with INFO level
397
- */
398
- infoSuccessTimeEnd(time, message, metadata, metadataStyles) {
399
- this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {
400
- symbol: '✔',
401
- styles: ['green', 'bold']
402
- });
403
- }
404
-
405
- /**
406
- * Log an enter in a function
407
- *
408
- * @example
409
- * ```typescript
410
- * class A {
411
- * method(arg1) {
412
- * logger.enter(method, { arg1 });
413
- * // Do your stuff
414
- * }
415
- * }
416
- * ```
417
- *
418
- */
419
- enter(fn, metadata, metadataStyles) {
420
- const extendedMetadata = {
421
- ...metadata,
422
- functionName: fn.name
423
- };
424
- this.log('enter', extendedMetadata, Level.TRACE, {
425
- metadataStyles
426
- });
427
- }
428
-
429
- /**
430
- * Log an exit in a function
431
- *
432
- * @example
433
- * ```typescript
434
- * const logger = new Logger('myNamespace:A');
435
- * class A {
436
- * method(arg1) {
437
- * // Do your stuff
438
- * logger.exit(method, { arg1 });
439
- * }
440
- * }
441
- * ```
442
- */
443
- exit(fn, metadata, metadataStyles) {
444
- const extendedMetadata = {
445
- ...metadata,
446
- functionName: fn.name
447
- };
448
- this.log('exit', extendedMetadata, Level.TRACE, {
449
- metadataStyles
450
- });
451
- }
452
-
453
- /**
454
- * Wrap around a function to log enter and exit of a function
455
- *
456
- * @example
457
- * ```typescript
458
- * const logger = new Logger('myNamespace:A');
459
- * class A {
460
- * method() {
461
- * logger.wrap(method, () => {
462
- * // Do your stuff
463
- * });
464
- * }
465
- * }
466
- * ```
467
- */
468
-
469
- wrap(fn, option1, option2, callback) {
470
- let metadata;
471
- let metadataStyles;
472
- if (typeof option1 === 'function') {
473
- callback = option1;
474
- } else {
475
- metadata = option1;
476
- if (typeof option2 === 'function') {
477
- callback = option2;
478
- } else {
479
- metadataStyles = option2;
480
- }
481
- }
482
- this.enter(fn, metadata, metadataStyles);
483
- callback();
484
- this.exit(fn);
485
- }
486
- }
487
-
488
- export { Logger };
489
- //# sourceMappingURL=index-browsermodern.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport * as util from 'node:util';\nimport { POB_TARGET } from 'pob-babel';\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\nexport interface 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 vars-on-top, no-var\n var __NIGHTINGALE_CONFIG: Config[];\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_LOGGER_MAP_CACHE: Map<string, ComputedConfigForKey>;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n // eslint-disable-next-line vars-on-top, no-var\n var __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n}\n\nconst globalOrWindow: typeof global =\n typeof global !== 'undefined' ? global : (window as typeof global);\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER =\n (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: Level,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(\n key,\n recordLevel,\n );\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record<string, unknown>;\n\n readonly key: string;\n\n readonly displayName?: string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName?: string) {\n this.key = key;\n this.displayName = displayName;\n\n if (process.env.NODE_ENV !== '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 globalOrWindow.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record<string, unknown>): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly<Record<string, unknown>> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): void {\n if (this.contextObject === undefined) {\n throw new Error(\n 'Cannot extends context that does not exists. Use setContext(context) first.',\n );\n }\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: Error | string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error'))\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord<NonNullable<typeof extendedMetadata>> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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: Error | string,\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<ExtendedFunctionNameMetadata & T>,\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<ExtendedFunctionNameMetadata & T>,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n"],"names":["globalOrWindow","global","window","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","process","env","NODE_ENV","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","undefined","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"}