@punks/backend-core 0.0.48 → 0.0.50

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/dist/cjs/index.js CHANGED
@@ -296,9 +296,22 @@ const mergeDeep = (a, b) => {
296
296
  }
297
297
  return c;
298
298
  };
299
+ const isSerializable = (obj) => {
300
+ try {
301
+ JSON.stringify(obj);
302
+ return true;
303
+ }
304
+ catch (e) {
305
+ return false;
306
+ }
307
+ };
299
308
  const jsonSerialize = (obj, options) => {
300
- const { removeCircularReferences = true, stripBinaryData = true, prettify = false, maxStringsLength, } = options ?? {};
309
+ const { removeNonSerializableObjects = true, removeCircularReferences = true, stripBinaryData = true, prettify = false, maxStringsLength, } = options ?? {};
301
310
  const replacer = (key, value) => {
311
+ // remove non serializable objects
312
+ if (removeNonSerializableObjects && !isSerializable(value)) {
313
+ return `<non serializable property ${typeof value}>`;
314
+ }
302
315
  // remove circular references
303
316
  const seen = new WeakSet();
304
317
  if (removeCircularReferences &&
@@ -28402,138 +28415,58 @@ const excelParse = (file, options) => {
28402
28415
  .map((x) => aggregateRow(header, x, options));
28403
28416
  };
28404
28417
 
28405
- class DefaultLogger {
28406
- constructor(loggerName) {
28418
+ class InternalLogger {
28419
+ constructor(loggerName, container) {
28407
28420
  this.loggerName = loggerName;
28421
+ this.container = container;
28408
28422
  }
28409
28423
  debug(message, meta) {
28410
- if (meta) {
28411
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28412
- }
28413
- else {
28414
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28415
- }
28424
+ this.getEnabledInstances(exports.LogLevel.Debug).forEach((x) => x.provider.debug(this.loggerName, message, this.serializeMeta(x.options, meta)));
28416
28425
  }
28417
28426
  info(message, meta) {
28418
- if (meta) {
28419
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28420
- }
28421
- else {
28422
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28423
- }
28427
+ this.getEnabledInstances(exports.LogLevel.Info).forEach((x) => x.provider.info(this.loggerName, message, this.serializeMeta(x.options, meta)));
28424
28428
  }
28425
28429
  warn(message, meta) {
28426
- if (meta) {
28427
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28428
- }
28429
- else {
28430
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28431
- }
28430
+ this.getEnabledInstances(exports.LogLevel.Warn).forEach((x) => x.provider.warn(this.loggerName, message, this.serializeMeta(x.options, meta)));
28432
28431
  }
28433
28432
  error(message, meta) {
28434
- if (meta) {
28435
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28436
- }
28437
- else {
28438
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28439
- }
28433
+ this.getEnabledInstances(exports.LogLevel.Error).forEach((x) => x.provider.error(this.loggerName, message, this.serializeMeta(x.options, meta)));
28440
28434
  }
28441
28435
  fatal(message, meta) {
28442
- if (meta) {
28443
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28444
- }
28445
- else {
28446
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28447
- }
28436
+ this.getEnabledInstances(exports.LogLevel.Fatal).forEach((x) => x.provider.fatal(this.loggerName, message, this.serializeMeta(x.options, meta)));
28448
28437
  }
28449
28438
  exception(message, error, meta) {
28450
- if (meta) {
28451
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error, meta);
28452
- }
28453
- else {
28454
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error);
28455
- }
28439
+ this.getEnabledInstances(exports.LogLevel.Error).forEach((x) => x.provider.exception(this.loggerName, message, error, this.serializeMeta(x.options, meta)));
28456
28440
  }
28457
- }
28458
-
28459
- class InternalLogger {
28460
- constructor(options, provider) {
28461
- this.options = options;
28462
- this.provider = provider;
28463
- }
28464
- debug(message, meta) {
28465
- if (this.options.enabled && this.options.level === exports.LogLevel.Debug) {
28466
- this.provider.debug(message, this.serializeMeta(meta));
28467
- }
28468
- }
28469
- info(message, meta) {
28470
- if (this.options.enabled && this.options.level <= exports.LogLevel.Info) {
28471
- this.provider.info(message, this.serializeMeta(meta));
28472
- }
28473
- }
28474
- warn(message, meta) {
28475
- if (this.options.enabled && this.options.level <= exports.LogLevel.Warn) {
28476
- this.provider.warn(message, this.serializeMeta(meta));
28477
- }
28478
- }
28479
- error(message, meta) {
28480
- if (this.options.enabled && this.options.level <= exports.LogLevel.Error) {
28481
- this.provider.error(message, this.serializeMeta(meta));
28482
- }
28441
+ getEnabledInstances(level) {
28442
+ return this.container.instances.filter((x) => x.options.enabled && x.options.level <= level);
28483
28443
  }
28484
- fatal(message, meta) {
28485
- if (this.options.enabled && this.options.level <= exports.LogLevel.Fatal) {
28486
- this.provider.fatal(message, this.serializeMeta(meta));
28487
- }
28488
- }
28489
- exception(message, error, meta) {
28490
- if (this.options.enabled && this.options.level <= exports.LogLevel.Error) {
28491
- this.provider.exception(message, error, this.serializeMeta(meta));
28492
- }
28493
- }
28494
- serializeMeta(meta) {
28495
- const serializedMeta = jsonSerialize(meta, {
28496
- prettify: true,
28497
- stripBinaryData: true,
28498
- });
28499
- switch (this.options.serialization) {
28444
+ serializeMeta(options, meta) {
28445
+ const serializedMeta = meta
28446
+ ? jsonSerialize(meta, {
28447
+ prettify: true,
28448
+ stripBinaryData: true,
28449
+ })
28450
+ : undefined;
28451
+ switch (options.serialization) {
28500
28452
  case exports.MetaSerializationType.JSON:
28501
28453
  return serializedMeta;
28502
28454
  case exports.MetaSerializationType.None:
28503
28455
  default:
28504
- return JSON.parse(serializedMeta);
28456
+ return serializedMeta ? JSON.parse(serializedMeta) : undefined;
28505
28457
  }
28506
28458
  }
28507
28459
  }
28508
- const getLogger = ({ options, loggerName, }) => {
28509
- return new InternalLogger(options, new DefaultLogger(loggerName));
28510
- };
28511
28460
  class Log {
28512
- static setSerializationType(type) {
28513
- this.options.serialization = type;
28514
- }
28515
- static setLevel(level) {
28516
- this.options.level = level;
28517
- this.options.level = level;
28518
- this.options.enabled = true;
28519
- }
28520
- static enable() {
28521
- this.options.enabled = true;
28522
- }
28523
- static disable() {
28524
- this.options.enabled = false;
28461
+ static configure(instance) {
28462
+ this.container.instances.push(instance);
28525
28463
  }
28526
28464
  static getLogger(loggerName) {
28527
- return getLogger({
28528
- options: this.options,
28529
- loggerName,
28530
- });
28465
+ return new InternalLogger(loggerName, this.container);
28531
28466
  }
28532
28467
  }
28533
- Log.options = {
28534
- enabled: true,
28535
- level: exports.LogLevel.Debug,
28536
- serialization: exports.MetaSerializationType.None,
28468
+ Log.container = {
28469
+ instances: [],
28537
28470
  };
28538
28471
 
28539
28472
  const logMemoryUsage = () => {