@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 +39 -106
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/logging.d.ts +6 -6
- package/dist/cjs/types/logging/concrete/consoleLogger.d.ts +9 -0
- package/dist/cjs/types/logging/concrete/datadogLogger.d.ts +19 -0
- package/dist/cjs/types/logging/concrete/index.d.ts +2 -0
- package/dist/cjs/types/logging/service.d.ts +14 -6
- package/dist/cjs/types/utils/objects/index.d.ts +1 -0
- package/dist/esm/index.js +39 -106
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/logging.d.ts +6 -6
- package/dist/esm/types/logging/concrete/consoleLogger.d.ts +9 -0
- package/dist/esm/types/logging/concrete/datadogLogger.d.ts +19 -0
- package/dist/esm/types/logging/concrete/index.d.ts +2 -0
- package/dist/esm/types/logging/service.d.ts +14 -6
- package/dist/esm/types/utils/objects/index.d.ts +1 -0
- package/dist/index.d.ts +19 -11
- package/package.json +5 -3
- package/dist/cjs/types/logging/concrete/defaultLogger.d.ts +0 -11
- package/dist/esm/types/logging/concrete/defaultLogger.d.ts +0 -11
|
@@ -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
|
+
}
|
|
@@ -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
|
|
4
|
-
static
|
|
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 {};
|
|
@@ -8,6 +8,7 @@ export declare const buildObject: <T>(...props: {
|
|
|
8
8
|
}[]) => T;
|
|
9
9
|
export declare const mergeDeep: <T>(a: any, b: any) => T;
|
|
10
10
|
export declare const jsonSerialize: (obj: any, options?: {
|
|
11
|
+
removeNonSerializableObjects?: boolean;
|
|
11
12
|
removeCircularReferences?: boolean;
|
|
12
13
|
stripBinaryData?: boolean;
|
|
13
14
|
maxStringsLength?: number;
|
package/dist/esm/index.js
CHANGED
|
@@ -287,9 +287,22 @@ const mergeDeep = (a, b) => {
|
|
|
287
287
|
}
|
|
288
288
|
return c;
|
|
289
289
|
};
|
|
290
|
+
const isSerializable = (obj) => {
|
|
291
|
+
try {
|
|
292
|
+
JSON.stringify(obj);
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
catch (e) {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
290
299
|
const jsonSerialize = (obj, options) => {
|
|
291
|
-
const { removeCircularReferences = true, stripBinaryData = true, prettify = false, maxStringsLength, } = options ?? {};
|
|
300
|
+
const { removeNonSerializableObjects = true, removeCircularReferences = true, stripBinaryData = true, prettify = false, maxStringsLength, } = options ?? {};
|
|
292
301
|
const replacer = (key, value) => {
|
|
302
|
+
// remove non serializable objects
|
|
303
|
+
if (removeNonSerializableObjects && !isSerializable(value)) {
|
|
304
|
+
return `<non serializable property ${typeof value}>`;
|
|
305
|
+
}
|
|
293
306
|
// remove circular references
|
|
294
307
|
const seen = new WeakSet();
|
|
295
308
|
if (removeCircularReferences &&
|
|
@@ -28393,138 +28406,58 @@ const excelParse = (file, options) => {
|
|
|
28393
28406
|
.map((x) => aggregateRow(header, x, options));
|
|
28394
28407
|
};
|
|
28395
28408
|
|
|
28396
|
-
class
|
|
28397
|
-
constructor(loggerName) {
|
|
28409
|
+
class InternalLogger {
|
|
28410
|
+
constructor(loggerName, container) {
|
|
28398
28411
|
this.loggerName = loggerName;
|
|
28412
|
+
this.container = container;
|
|
28399
28413
|
}
|
|
28400
28414
|
debug(message, meta) {
|
|
28401
|
-
|
|
28402
|
-
console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
|
|
28403
|
-
}
|
|
28404
|
-
else {
|
|
28405
|
-
console.log(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
|
|
28406
|
-
}
|
|
28415
|
+
this.getEnabledInstances(LogLevel.Debug).forEach((x) => x.provider.debug(this.loggerName, message, this.serializeMeta(x.options, meta)));
|
|
28407
28416
|
}
|
|
28408
28417
|
info(message, meta) {
|
|
28409
|
-
|
|
28410
|
-
console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
|
|
28411
|
-
}
|
|
28412
|
-
else {
|
|
28413
|
-
console.info(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
|
|
28414
|
-
}
|
|
28418
|
+
this.getEnabledInstances(LogLevel.Info).forEach((x) => x.provider.info(this.loggerName, message, this.serializeMeta(x.options, meta)));
|
|
28415
28419
|
}
|
|
28416
28420
|
warn(message, meta) {
|
|
28417
|
-
|
|
28418
|
-
console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
|
|
28419
|
-
}
|
|
28420
|
-
else {
|
|
28421
|
-
console.warn(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
|
|
28422
|
-
}
|
|
28421
|
+
this.getEnabledInstances(LogLevel.Warn).forEach((x) => x.provider.warn(this.loggerName, message, this.serializeMeta(x.options, meta)));
|
|
28423
28422
|
}
|
|
28424
28423
|
error(message, meta) {
|
|
28425
|
-
|
|
28426
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
|
|
28427
|
-
}
|
|
28428
|
-
else {
|
|
28429
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
|
|
28430
|
-
}
|
|
28424
|
+
this.getEnabledInstances(LogLevel.Error).forEach((x) => x.provider.error(this.loggerName, message, this.serializeMeta(x.options, meta)));
|
|
28431
28425
|
}
|
|
28432
28426
|
fatal(message, meta) {
|
|
28433
|
-
|
|
28434
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, meta);
|
|
28435
|
-
}
|
|
28436
|
-
else {
|
|
28437
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`);
|
|
28438
|
-
}
|
|
28427
|
+
this.getEnabledInstances(LogLevel.Fatal).forEach((x) => x.provider.fatal(this.loggerName, message, this.serializeMeta(x.options, meta)));
|
|
28439
28428
|
}
|
|
28440
28429
|
exception(message, error, meta) {
|
|
28441
|
-
|
|
28442
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error, meta);
|
|
28443
|
-
}
|
|
28444
|
-
else {
|
|
28445
|
-
console.error(`${this.loggerName ? `[${this.loggerName}] ` : ""}${message}`, error);
|
|
28446
|
-
}
|
|
28430
|
+
this.getEnabledInstances(LogLevel.Error).forEach((x) => x.provider.exception(this.loggerName, message, error, this.serializeMeta(x.options, meta)));
|
|
28447
28431
|
}
|
|
28448
|
-
|
|
28449
|
-
|
|
28450
|
-
class InternalLogger {
|
|
28451
|
-
constructor(options, provider) {
|
|
28452
|
-
this.options = options;
|
|
28453
|
-
this.provider = provider;
|
|
28454
|
-
}
|
|
28455
|
-
debug(message, meta) {
|
|
28456
|
-
if (this.options.enabled && this.options.level === LogLevel.Debug) {
|
|
28457
|
-
this.provider.debug(message, this.serializeMeta(meta));
|
|
28458
|
-
}
|
|
28459
|
-
}
|
|
28460
|
-
info(message, meta) {
|
|
28461
|
-
if (this.options.enabled && this.options.level <= LogLevel.Info) {
|
|
28462
|
-
this.provider.info(message, this.serializeMeta(meta));
|
|
28463
|
-
}
|
|
28464
|
-
}
|
|
28465
|
-
warn(message, meta) {
|
|
28466
|
-
if (this.options.enabled && this.options.level <= LogLevel.Warn) {
|
|
28467
|
-
this.provider.warn(message, this.serializeMeta(meta));
|
|
28468
|
-
}
|
|
28469
|
-
}
|
|
28470
|
-
error(message, meta) {
|
|
28471
|
-
if (this.options.enabled && this.options.level <= LogLevel.Error) {
|
|
28472
|
-
this.provider.error(message, this.serializeMeta(meta));
|
|
28473
|
-
}
|
|
28432
|
+
getEnabledInstances(level) {
|
|
28433
|
+
return this.container.instances.filter((x) => x.options.enabled && x.options.level <= level);
|
|
28474
28434
|
}
|
|
28475
|
-
|
|
28476
|
-
|
|
28477
|
-
|
|
28478
|
-
|
|
28479
|
-
|
|
28480
|
-
|
|
28481
|
-
|
|
28482
|
-
|
|
28483
|
-
}
|
|
28484
|
-
}
|
|
28485
|
-
serializeMeta(meta) {
|
|
28486
|
-
const serializedMeta = jsonSerialize(meta, {
|
|
28487
|
-
prettify: true,
|
|
28488
|
-
stripBinaryData: true,
|
|
28489
|
-
});
|
|
28490
|
-
switch (this.options.serialization) {
|
|
28435
|
+
serializeMeta(options, meta) {
|
|
28436
|
+
const serializedMeta = meta
|
|
28437
|
+
? jsonSerialize(meta, {
|
|
28438
|
+
prettify: true,
|
|
28439
|
+
stripBinaryData: true,
|
|
28440
|
+
})
|
|
28441
|
+
: undefined;
|
|
28442
|
+
switch (options.serialization) {
|
|
28491
28443
|
case MetaSerializationType.JSON:
|
|
28492
28444
|
return serializedMeta;
|
|
28493
28445
|
case MetaSerializationType.None:
|
|
28494
28446
|
default:
|
|
28495
|
-
return JSON.parse(serializedMeta);
|
|
28447
|
+
return serializedMeta ? JSON.parse(serializedMeta) : undefined;
|
|
28496
28448
|
}
|
|
28497
28449
|
}
|
|
28498
28450
|
}
|
|
28499
|
-
const getLogger = ({ options, loggerName, }) => {
|
|
28500
|
-
return new InternalLogger(options, new DefaultLogger(loggerName));
|
|
28501
|
-
};
|
|
28502
28451
|
class Log {
|
|
28503
|
-
static
|
|
28504
|
-
this.
|
|
28505
|
-
}
|
|
28506
|
-
static setLevel(level) {
|
|
28507
|
-
this.options.level = level;
|
|
28508
|
-
this.options.level = level;
|
|
28509
|
-
this.options.enabled = true;
|
|
28510
|
-
}
|
|
28511
|
-
static enable() {
|
|
28512
|
-
this.options.enabled = true;
|
|
28513
|
-
}
|
|
28514
|
-
static disable() {
|
|
28515
|
-
this.options.enabled = false;
|
|
28452
|
+
static configure(instance) {
|
|
28453
|
+
this.container.instances.push(instance);
|
|
28516
28454
|
}
|
|
28517
28455
|
static getLogger(loggerName) {
|
|
28518
|
-
return
|
|
28519
|
-
options: this.options,
|
|
28520
|
-
loggerName,
|
|
28521
|
-
});
|
|
28456
|
+
return new InternalLogger(loggerName, this.container);
|
|
28522
28457
|
}
|
|
28523
28458
|
}
|
|
28524
|
-
Log.
|
|
28525
|
-
|
|
28526
|
-
level: LogLevel.Debug,
|
|
28527
|
-
serialization: MetaSerializationType.None,
|
|
28459
|
+
Log.container = {
|
|
28460
|
+
instances: [],
|
|
28528
28461
|
};
|
|
28529
28462
|
|
|
28530
28463
|
const logMemoryUsage = () => {
|