@punks/backend-core 0.0.49 → 0.0.51

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.
@@ -10,12 +10,12 @@ export declare enum MetaSerializationType {
10
10
  JSON = 1
11
11
  }
12
12
  export interface ILoggerProvider {
13
- debug(message: string, meta?: any): void;
14
- info(message: string, meta?: any): void;
15
- warn(message: string, meta?: any): void;
16
- error(message: string, meta?: any): void;
17
- fatal(message: string, meta?: any): void;
18
- exception(message: string, error: Error, meta?: any): void;
13
+ debug(loggerName: string, message: string, meta?: any): void;
14
+ info(loggerName: string, message: string, meta?: any): void;
15
+ warn(loggerName: string, message: string, meta?: any): void;
16
+ error(loggerName: string, message: string, meta?: any): void;
17
+ fatal(loggerName: string, message: string, meta?: any): void;
18
+ exception(loggerName: string, message: string, error: Error, meta?: any): void;
19
19
  }
20
20
  export interface ILogger {
21
21
  debug(message: string, meta?: any): void;
@@ -0,0 +1,9 @@
1
+ import { ILoggerProvider } from "../../abstractions";
2
+ export declare class ConsoleLogger implements ILoggerProvider {
3
+ debug(loggerName: string, message: string, meta?: any): void;
4
+ info(loggerName: string, message: string, meta?: any): void;
5
+ warn(loggerName: string, message: string, meta?: any): void;
6
+ error(loggerName: string, message: string, meta?: any): void;
7
+ fatal(loggerName: string, message: string, meta?: any): void;
8
+ exception(loggerName: string, message: string, error: Error, meta?: any): void;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { ILoggerProvider } from "../../abstractions";
2
+ export type DatadogLoggingSettings = {
3
+ service: string;
4
+ apiKey: string;
5
+ appName: string;
6
+ roleName: string;
7
+ environmentName: string;
8
+ };
9
+ export declare class DatadogLogger implements ILoggerProvider {
10
+ private readonly settings;
11
+ private readonly logger;
12
+ constructor(settings: DatadogLoggingSettings);
13
+ debug(loggerName: string, message: string, meta?: any): void;
14
+ info(loggerName: string, message: string, meta?: any): void;
15
+ warn(loggerName: string, message: string, meta?: any): void;
16
+ error(loggerName: string, message: string, meta?: any): void;
17
+ fatal(loggerName: string, message: string, meta?: any): void;
18
+ exception(loggerName: string, message: string, error: Error, meta?: any): void;
19
+ }
@@ -0,0 +1,2 @@
1
+ export { ConsoleLogger } from "./consoleLogger";
2
+ export { DatadogLogger } from "./datadogLogger";
@@ -1 +1,2 @@
1
1
  export { Log } from "./service";
2
+ export * from "./concrete";
@@ -1,9 +1,17 @@
1
- import { ILogger, LogLevel, MetaSerializationType } from "../abstractions";
1
+ import { ILogger, ILoggerProvider, LogLevel, MetaSerializationType } from "../abstractions";
2
+ export type LoggerInstance = {
3
+ options: LoggerOptions;
4
+ provider: ILoggerProvider;
5
+ };
6
+ type LoggerOptions = {
7
+ enabled: boolean;
8
+ level: LogLevel;
9
+ loggerName?: string;
10
+ serialization: MetaSerializationType;
11
+ };
2
12
  export declare class Log {
3
- private static readonly options;
4
- static setSerializationType(type: MetaSerializationType): void;
5
- static setLevel(level: LogLevel): void;
6
- static enable(): void;
7
- static disable(): void;
13
+ private static readonly container;
14
+ static configure(instance: LoggerInstance): void;
8
15
  static getLogger(loggerName: string): ILogger;
9
16
  }
17
+ export {};
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { readdirSync, statSync, existsSync, mkdirSync } from 'fs';
2
2
  import path, { join } from 'path';
3
3
  import require$$1 from 'stream';
4
+ import * as winston from 'winston';
4
5
 
5
6
  var LogLevel;
6
7
  (function (LogLevel) {
@@ -28406,141 +28407,160 @@ const excelParse = (file, options) => {
28406
28407
  .map((x) => aggregateRow(header, x, options));
28407
28408
  };
28408
28409
 
28409
- class DefaultLogger {
28410
- constructor(loggerName) {
28410
+ class InternalLogger {
28411
+ constructor(loggerName, container) {
28411
28412
  this.loggerName = loggerName;
28413
+ this.container = container;
28412
28414
  }
28413
28415
  debug(message, meta) {
28416
+ this.getEnabledInstances(LogLevel.Debug).forEach((x) => x.provider.debug(this.loggerName, message, this.serializeMeta(x.options, meta)));
28417
+ }
28418
+ info(message, meta) {
28419
+ this.getEnabledInstances(LogLevel.Info).forEach((x) => x.provider.info(this.loggerName, message, this.serializeMeta(x.options, meta)));
28420
+ }
28421
+ warn(message, meta) {
28422
+ this.getEnabledInstances(LogLevel.Warn).forEach((x) => x.provider.warn(this.loggerName, message, this.serializeMeta(x.options, meta)));
28423
+ }
28424
+ error(message, meta) {
28425
+ this.getEnabledInstances(LogLevel.Error).forEach((x) => x.provider.error(this.loggerName, message, this.serializeMeta(x.options, meta)));
28426
+ }
28427
+ fatal(message, meta) {
28428
+ this.getEnabledInstances(LogLevel.Fatal).forEach((x) => x.provider.fatal(this.loggerName, message, this.serializeMeta(x.options, meta)));
28429
+ }
28430
+ exception(message, error, meta) {
28431
+ this.getEnabledInstances(LogLevel.Error).forEach((x) => x.provider.exception(this.loggerName, message, error, this.serializeMeta(x.options, meta)));
28432
+ }
28433
+ getEnabledInstances(level) {
28434
+ return this.container.instances.filter((x) => x.options.enabled && x.options.level <= level);
28435
+ }
28436
+ serializeMeta(options, meta) {
28437
+ const serializedMeta = meta
28438
+ ? jsonSerialize(meta, {
28439
+ prettify: true,
28440
+ stripBinaryData: true,
28441
+ })
28442
+ : undefined;
28443
+ switch (options.serialization) {
28444
+ case MetaSerializationType.JSON:
28445
+ return serializedMeta;
28446
+ case MetaSerializationType.None:
28447
+ default:
28448
+ return serializedMeta ? JSON.parse(serializedMeta) : undefined;
28449
+ }
28450
+ }
28451
+ }
28452
+ class Log {
28453
+ static configure(instance) {
28454
+ this.container.instances.push(instance);
28455
+ }
28456
+ static getLogger(loggerName) {
28457
+ return new InternalLogger(loggerName, this.container);
28458
+ }
28459
+ }
28460
+ Log.container = {
28461
+ instances: [],
28462
+ };
28463
+
28464
+ class ConsoleLogger {
28465
+ debug(loggerName, message, meta) {
28414
28466
  if (meta) {
28415
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28467
+ console.log(`${loggerName ? `[${loggerName}] ` : ""}${message}`, meta);
28416
28468
  }
28417
28469
  else {
28418
- console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28470
+ console.log(`${loggerName ? `[${loggerName}] ` : ""}${message}`);
28419
28471
  }
28420
28472
  }
28421
- info(message, meta) {
28473
+ info(loggerName, message, meta) {
28422
28474
  if (meta) {
28423
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28475
+ console.info(`${loggerName ? `[${loggerName}] ` : ""}${message}`, meta);
28424
28476
  }
28425
28477
  else {
28426
- console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28478
+ console.info(`${loggerName ? `[${loggerName}] ` : ""}${message}`);
28427
28479
  }
28428
28480
  }
28429
- warn(message, meta) {
28481
+ warn(loggerName, message, meta) {
28430
28482
  if (meta) {
28431
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28483
+ console.warn(`${loggerName ? `[${loggerName}] ` : ""}${message}`, meta);
28432
28484
  }
28433
28485
  else {
28434
- console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28486
+ console.warn(`${loggerName ? `[${loggerName}] ` : ""}${message}`);
28435
28487
  }
28436
28488
  }
28437
- error(message, meta) {
28489
+ error(loggerName, message, meta) {
28438
28490
  if (meta) {
28439
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28491
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`, meta);
28440
28492
  }
28441
28493
  else {
28442
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28494
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`);
28443
28495
  }
28444
28496
  }
28445
- fatal(message, meta) {
28497
+ fatal(loggerName, message, meta) {
28446
28498
  if (meta) {
28447
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
28499
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`, meta);
28448
28500
  }
28449
28501
  else {
28450
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
28502
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`);
28451
28503
  }
28452
28504
  }
28453
- exception(message, error, meta) {
28505
+ exception(loggerName, message, error, meta) {
28454
28506
  if (meta) {
28455
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error, meta);
28507
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`, error, meta);
28456
28508
  }
28457
28509
  else {
28458
- console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error);
28510
+ console.error(`${loggerName ? `[${loggerName}] ` : ""}${message}`, error);
28459
28511
  }
28460
28512
  }
28461
28513
  }
28462
28514
 
28463
- class InternalLogger {
28464
- constructor(options, provider) {
28465
- this.options = options;
28466
- this.provider = provider;
28467
- }
28468
- debug(message, meta) {
28469
- if (this.options.enabled && this.options.level === LogLevel.Debug) {
28470
- this.provider.debug(message, this.serializeMeta(meta));
28471
- }
28472
- }
28473
- info(message, meta) {
28474
- if (this.options.enabled && this.options.level <= LogLevel.Info) {
28475
- this.provider.info(message, this.serializeMeta(meta));
28476
- }
28477
- }
28478
- warn(message, meta) {
28479
- if (this.options.enabled && this.options.level <= LogLevel.Warn) {
28480
- this.provider.warn(message, this.serializeMeta(meta));
28481
- }
28482
- }
28483
- error(message, meta) {
28484
- if (this.options.enabled && this.options.level <= LogLevel.Error) {
28485
- this.provider.error(message, this.serializeMeta(meta));
28486
- }
28487
- }
28488
- fatal(message, meta) {
28489
- if (this.options.enabled && this.options.level <= LogLevel.Fatal) {
28490
- this.provider.fatal(message, this.serializeMeta(meta));
28491
- }
28492
- }
28493
- exception(message, error, meta) {
28494
- if (this.options.enabled && this.options.level <= LogLevel.Error) {
28495
- this.provider.exception(message, error, this.serializeMeta(meta));
28496
- }
28515
+ const createHttpTransportOptions = (settings) => ({
28516
+ host: "http-intake.logs.datadoghq.eu",
28517
+ path: `/v1/input/${settings.apiKey}?ddsource=nodejs&service=${settings.service}`,
28518
+ ssl: true,
28519
+ });
28520
+ const createLoggerInstance = (settings) => {
28521
+ const logger = winston.createLogger({
28522
+ level: "debug",
28523
+ format: winston.format.combine(winston.format.timestamp({
28524
+ format: "YYYY-MM-DD HH:mm:ss",
28525
+ }), winston.format.errors({ stack: true }), winston.format.splat(), winston.format.json()),
28526
+ defaultMeta: {
28527
+ service: settings.service,
28528
+ app: settings.appName,
28529
+ role: settings.roleName,
28530
+ environment: settings.environmentName,
28531
+ },
28532
+ transports: [
28533
+ new winston.transports.Http(createHttpTransportOptions(settings)),
28534
+ ],
28535
+ });
28536
+ logger.exceptions.handle(new winston.transports.Http(createHttpTransportOptions(settings)));
28537
+ return logger;
28538
+ };
28539
+ const formatMessage = (loggerName, message) => `${loggerName ? `[${loggerName}] ` : ""}${message}`;
28540
+ class DatadogLogger {
28541
+ constructor(settings) {
28542
+ this.settings = settings;
28543
+ this.logger = createLoggerInstance(this.settings);
28497
28544
  }
28498
- serializeMeta(meta) {
28499
- const serializedMeta = meta
28500
- ? jsonSerialize(meta, {
28501
- prettify: true,
28502
- stripBinaryData: true,
28503
- })
28504
- : undefined;
28505
- switch (this.options.serialization) {
28506
- case MetaSerializationType.JSON:
28507
- return serializedMeta;
28508
- case MetaSerializationType.None:
28509
- default:
28510
- return serializedMeta ? JSON.parse(serializedMeta) : undefined;
28511
- }
28545
+ debug(loggerName, message, meta) {
28546
+ this.logger.debug(formatMessage(loggerName, message), meta);
28512
28547
  }
28513
- }
28514
- const getLogger = ({ options, loggerName, }) => {
28515
- return new InternalLogger(options, new DefaultLogger(loggerName));
28516
- };
28517
- class Log {
28518
- static setSerializationType(type) {
28519
- this.options.serialization = type;
28548
+ info(loggerName, message, meta) {
28549
+ this.logger.info(formatMessage(loggerName, message), meta);
28520
28550
  }
28521
- static setLevel(level) {
28522
- this.options.level = level;
28523
- this.options.level = level;
28524
- this.options.enabled = true;
28551
+ warn(loggerName, message, meta) {
28552
+ this.logger.warn(formatMessage(loggerName, message), meta);
28525
28553
  }
28526
- static enable() {
28527
- this.options.enabled = true;
28554
+ error(loggerName, message, meta) {
28555
+ this.logger.error(formatMessage(loggerName, message), meta);
28528
28556
  }
28529
- static disable() {
28530
- this.options.enabled = false;
28557
+ fatal(loggerName, message, meta) {
28558
+ this.logger.error(formatMessage(loggerName, message), meta);
28531
28559
  }
28532
- static getLogger(loggerName) {
28533
- return getLogger({
28534
- options: this.options,
28535
- loggerName,
28536
- });
28560
+ exception(loggerName, message, error, meta) {
28561
+ this.logger.error(formatMessage(loggerName, message), error, meta);
28537
28562
  }
28538
28563
  }
28539
- Log.options = {
28540
- enabled: true,
28541
- level: LogLevel.Debug,
28542
- serialization: MetaSerializationType.None,
28543
- };
28544
28564
 
28545
28565
  const logMemoryUsage = () => {
28546
28566
  const usedMemory = process.memoryUsage();
@@ -28581,5 +28601,5 @@ const processArrayItemMove = (items, input) => {
28581
28601
  }));
28582
28602
  };
28583
28603
 
28584
- export { ExcelKeyTransform, Log, LogLevel, MetaSerializationType, addTime, buildObject, buildTree, byField, byFieldDesc, camelToKebabCase, camelToSnakeCase, csvBuild, csvParse, distinct, distinctElements, ensureDirectory, ensureStartSlash, ensureTailingSlash, excelBuild, excelParse, first, flatten, getDirectoryFilePaths, getDirectoryPath, groupBy, indexes, isNullOrUndefined, iterate, joinPath, jsonDistinct, jsonSerialize, last, logMemoryUsage, mapOrThrow, mergeDeep, newUuid, notNull, notUndefined, pluralize, processArrayDifferences, processArrayItemMove, range, removeUndefinedProps, selectMany, sleep, sort, splitPath, subArrays, subtractTime, toCamelCase, toDict, toItemsDict, toItemsMap, toMap, toTitleCase, trim$1 as trim, trimEnd, trimStart };
28604
+ export { ConsoleLogger, DatadogLogger, ExcelKeyTransform, Log, LogLevel, MetaSerializationType, addTime, buildObject, buildTree, byField, byFieldDesc, camelToKebabCase, camelToSnakeCase, csvBuild, csvParse, distinct, distinctElements, ensureDirectory, ensureStartSlash, ensureTailingSlash, excelBuild, excelParse, first, flatten, getDirectoryFilePaths, getDirectoryPath, groupBy, indexes, isNullOrUndefined, iterate, joinPath, jsonDistinct, jsonSerialize, last, logMemoryUsage, mapOrThrow, mergeDeep, newUuid, notNull, notUndefined, pluralize, processArrayDifferences, processArrayItemMove, range, removeUndefinedProps, selectMany, sleep, sort, splitPath, subArrays, subtractTime, toCamelCase, toDict, toItemsDict, toItemsMap, toMap, toTitleCase, trim$1 as trim, trimEnd, trimStart };
28585
28605
  //# sourceMappingURL=index.js.map