@polygonlabs/servercore 1.0.0-dev.7 → 1.0.0-dev.8
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/consumers/abstract_event_consumer.d.ts +1 -0
- package/dist/consumers/abstract_event_consumer.js +3 -0
- package/dist/consumers/abstract_event_consumer.js.map +1 -1
- package/dist/consumers/event_consumer.js +1 -1
- package/dist/consumers/event_consumer.js.map +1 -1
- package/dist/logger/logger.d.ts +2 -0
- package/dist/logger/logger.js +33 -20
- package/dist/logger/logger.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/consumers/abstract_event_consumer.ts"],"sourcesContent":["import type { ConsumerError } from \"../errors\";\nimport { EventEmitter } from \"events\";\n\nexport class AbstractEventConsumer extends EventEmitter {\n /**\n * @public\n *\n * Method to register listener for events. The Abstract Event Consumer emits fatalError\n * event.\n *\n * @param {\"fatalError\"} eventName - Event name to register listener for.\n * @param listener - Listener to be called when emitting the event.\n *\n * @returns {this} - Returns an instance of the class.\n */\n on(\n eventName: \"fatalError\",\n listener: (error: Error | ConsumerError) => void\n ): this {\n return super.on(eventName, listener);\n }\n /**\n * @public\n *\n * Method to register listener for events that will be called only once. The Abstract Event Consumer emits fatalError\n * event.\n *\n * @param {\"fatalError\"} eventName - Event name to register listener for.\n * @param listener - Listener to be called when emitting the event.\n *\n * @returns {this} - Returns an instance of the class.\n */\n once(\n eventName: \"fatalError\",\n listener: (error: Error | ConsumerError) => void\n ): this {\n return super.on(eventName, listener);\n }\n\n protected onFatalError(error: Error | ConsumerError): void {\n this.emit(\"fatalError\", error);\n }\n}\n"],"mappings":"AACA,SAAS,oBAAoB;AAEtB,MAAM,8BAA8B,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/consumers/abstract_event_consumer.ts"],"sourcesContent":["import type { ConsumerError } from \"../errors\";\nimport { EventEmitter } from \"events\";\n\nexport class AbstractEventConsumer extends EventEmitter {\n constructor() {\n super();\n }\n\n /**\n * @public\n *\n * Method to register listener for events. The Abstract Event Consumer emits fatalError\n * event.\n *\n * @param {\"fatalError\"} eventName - Event name to register listener for.\n * @param listener - Listener to be called when emitting the event.\n *\n * @returns {this} - Returns an instance of the class.\n */\n on(\n eventName: \"fatalError\",\n listener: (error: Error | ConsumerError) => void\n ): this {\n return super.on(eventName, listener);\n }\n /**\n * @public\n *\n * Method to register listener for events that will be called only once. The Abstract Event Consumer emits fatalError\n * event.\n *\n * @param {\"fatalError\"} eventName - Event name to register listener for.\n * @param listener - Listener to be called when emitting the event.\n *\n * @returns {this} - Returns an instance of the class.\n */\n once(\n eventName: \"fatalError\",\n listener: (error: Error | ConsumerError) => void\n ): this {\n return super.on(eventName, listener);\n }\n\n protected onFatalError(error: Error | ConsumerError): void {\n this.emit(\"fatalError\", error);\n }\n}\n"],"mappings":"AACA,SAAS,oBAAoB;AAEtB,MAAM,8BAA8B,aAAa;AAAA,EACpD,cAAc;AACV,UAAM;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,GACI,WACA,UACI;AACJ,WAAO,MAAM,GAAG,WAAW,QAAQ;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,KACI,WACA,UACI;AACJ,WAAO,MAAM,GAAG,WAAW,QAAQ;AAAA,EACvC;AAAA,EAEU,aAAa,OAAoC;AACvD,SAAK,KAAK,cAAc,KAAK;AAAA,EACjC;AACJ;","names":[]}
|
@@ -1,8 +1,8 @@
|
|
1
|
+
import { Logger } from "../logger";
|
1
2
|
import { createPublicClient, http } from "viem";
|
2
3
|
import { ConsumerError, ExternalDependencyError } from "../errors";
|
3
4
|
import { AbstractEventConsumer } from "./abstract_event_consumer";
|
4
5
|
import { errorCodes } from "../constants";
|
5
|
-
import { Logger } from "../logger";
|
6
6
|
class EventConsumer extends AbstractEventConsumer {
|
7
7
|
constructor(config) {
|
8
8
|
super();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/consumers/event_consumer.ts"],"sourcesContent":["import { createPublicClient, http, type PublicClient } from \"viem\";\nimport { ConsumerError, ExternalDependencyError } from \"../errors\";\nimport type { IEventConsumerConfig, IObserver } from \"../types\";\nimport { AbstractEventConsumer } from \"./abstract_event_consumer\";\nimport { errorCodes } from \"../constants\";\
|
1
|
+
{"version":3,"sources":["../../src/consumers/event_consumer.ts"],"sourcesContent":["import { Logger } from \"../logger\";\nimport { createPublicClient, http, type PublicClient } from \"viem\";\nimport { ConsumerError, ExternalDependencyError } from \"../errors\";\nimport type { IEventConsumerConfig, IObserver } from \"../types\";\nimport { AbstractEventConsumer } from \"./abstract_event_consumer\";\nimport { errorCodes } from \"../constants\";\n\nexport class EventConsumer<T, U> extends AbstractEventConsumer {\n private consumerRunning: boolean = false;\n protected client: PublicClient | null = null;\n protected observer: IObserver<T, ConsumerError, U> | null = null;\n\n constructor(private config: IEventConsumerConfig) {\n super();\n this.client = createPublicClient({\n chain: {\n id: config.chainId,\n name: \"custom\",\n rpcUrls: { default: { http: [config.rpcUrl] } },\n nativeCurrency: config.nativeCurrency,\n },\n transport: http(config.rpcUrl),\n });\n }\n\n private async _backfillEvents(\n fromBlock: bigint,\n toBlock: bigint,\n step: bigint\n ): Promise<void> {\n Logger.info({\n location: \"event_consumer\",\n functon: \"_backfillEvents\",\n status: `[Backfill] Starting backfill from block ${fromBlock} to ${toBlock}`,\n });\n\n for (let start = fromBlock; start <= toBlock; start += step) {\n const end =\n start + step - 1n > toBlock ? toBlock : start + step - 1n;\n Logger.debug({\n location: \"event_consumer\",\n functon: \"_backfillEvents\",\n status: `[Backfill] Fetching logs from block ${start} to ${end}`,\n });\n const getLogsConfig: any = {\n address: this.config.contractAddress,\n fromBlock: start,\n toBlock: end,\n };\n if (this.config.events.length > 1) {\n getLogsConfig.event = this.config.events[0];\n } else {\n getLogsConfig.events = this.config.events;\n }\n const logs = await this.client?.getLogs(getLogsConfig);\n Logger.debug({\n location: \"event_consumer\",\n functon: \"_backfillEvents\",\n status: `[Backfill] ${logs?.length} logs from block ${start} to ${end}`,\n });\n await this.observer?.next(logs as T);\n }\n }\n\n public async start(\n observer: IObserver<T, ConsumerError, U>\n ): Promise<void> {\n try {\n this.observer = observer;\n const latestBlock: bigint =\n (await this.client?.getBlockNumber()) ?? BigInt(0);\n Logger.debug({\n location: \"event_consumer\",\n functon: \"start\",\n data: {\n latestBlock,\n startBlock: this.config.startBlock,\n pollBatchSize: this.config.pollBatchSize,\n },\n });\n if (\n latestBlock - this.config.startBlock >\n this.config.pollBatchSize\n ) {\n await this._backfillEvents(\n this.config.startBlock,\n latestBlock,\n this.config.pollBatchSize\n );\n }\n\n Logger.debug({\n location: \"event_consumer\",\n functon: \"start\",\n status: `Starting event subscription`,\n });\n\n this.client?.watchEvent({\n address: this.config.contractAddress,\n events: this.config.events,\n fromBlock: this.config.startBlock,\n onLogs: (logs) => {\n const transformedLogs = logs as T;\n this.observer?.next(transformedLogs);\n },\n onError: (error) => {\n this.onDisconnect();\n this.onFatalError(\n new ConsumerError(error.name, {\n name: \"CONSUMER_ERROR\",\n code: 1001,\n isFatal: true,\n origin: \"EventConsumer\",\n context: { eventName: this.config.events },\n })\n );\n },\n });\n\n Logger.debug({\n location: \"event_consumer\",\n functon: \"start\",\n status: `Subscribed to event`,\n });\n } catch (error) {\n this.onDisconnect();\n this.onFatalError(\n new ExternalDependencyError(\n this.config.rpcUrl,\n \"Failed to start the event consumer\",\n {\n externalCode:\n errorCodes.external\n .UNKNOWN_EXTERNAL_DEPENDENCY_ERROR,\n rawError: error as Error,\n origin: \"EventConsumer\",\n context: { eventName: this.config.events },\n }\n )\n );\n }\n }\n\n /**\n * Private method which updates the connection status of consumer to disconnected, and removes all listeners.\n *\n * @returns {void}\n */\n private onDisconnect(): void {\n if (this.consumerRunning) {\n this.consumerRunning = false;\n this.observer?.closed();\n this.removeAllListeners();\n }\n }\n}\n"],"mappings":"AAAA,SAAS,cAAc;AACvB,SAAS,oBAAoB,YAA+B;AAC5D,SAAS,eAAe,+BAA+B;AAEvD,SAAS,6BAA6B;AACtC,SAAS,kBAAkB;AAEpB,MAAM,sBAA4B,sBAAsB;AAAA,EAK3D,YAAoB,QAA8B;AAC9C,UAAM;AADU;AAEhB,SAAK,SAAS,mBAAmB;AAAA,MAC7B,OAAO;AAAA,QACH,IAAI,OAAO;AAAA,QACX,MAAM;AAAA,QACN,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,EAAE,EAAE;AAAA,QAC9C,gBAAgB,OAAO;AAAA,MAC3B;AAAA,MACA,WAAW,KAAK,OAAO,MAAM;AAAA,IACjC,CAAC;AAAA,EACL;AAAA,EAfQ,kBAA2B;AAAA,EACzB,SAA8B;AAAA,EAC9B,WAAkD;AAAA,EAe5D,MAAc,gBACV,WACA,SACA,MACa;AACb,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ,2CAA2C,SAAS,OAAO,OAAO;AAAA,IAC9E,CAAC;AAED,aAAS,QAAQ,WAAW,SAAS,SAAS,SAAS,MAAM;AACzD,YAAM,MACF,QAAQ,OAAO,KAAK,UAAU,UAAU,QAAQ,OAAO;AAC3D,aAAO,MAAM;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ,uCAAuC,KAAK,OAAO,GAAG;AAAA,MAClE,CAAC;AACD,YAAM,gBAAqB;AAAA,QACvB,SAAS,KAAK,OAAO;AAAA,QACrB,WAAW;AAAA,QACX,SAAS;AAAA,MACb;AACA,UAAI,KAAK,OAAO,OAAO,SAAS,GAAG;AAC/B,sBAAc,QAAQ,KAAK,OAAO,OAAO,CAAC;AAAA,MAC9C,OAAO;AACH,sBAAc,SAAS,KAAK,OAAO;AAAA,MACvC;AACA,YAAM,OAAO,MAAM,KAAK,QAAQ,QAAQ,aAAa;AACrD,aAAO,MAAM;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ,cAAc,MAAM,MAAM,oBAAoB,KAAK,OAAO,GAAG;AAAA,MACzE,CAAC;AACD,YAAM,KAAK,UAAU,KAAK,IAAS;AAAA,IACvC;AAAA,EACJ;AAAA,EAEA,MAAa,MACT,UACa;AACb,QAAI;AACA,WAAK,WAAW;AAChB,YAAM,cACD,MAAM,KAAK,QAAQ,eAAe,KAAM,OAAO,CAAC;AACrD,aAAO,MAAM;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,UACF;AAAA,UACA,YAAY,KAAK,OAAO;AAAA,UACxB,eAAe,KAAK,OAAO;AAAA,QAC/B;AAAA,MACJ,CAAC;AACD,UACI,cAAc,KAAK,OAAO,aAC1B,KAAK,OAAO,eACd;AACE,cAAM,KAAK;AAAA,UACP,KAAK,OAAO;AAAA,UACZ;AAAA,UACA,KAAK,OAAO;AAAA,QAChB;AAAA,MACJ;AAEA,aAAO,MAAM;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,MACZ,CAAC;AAED,WAAK,QAAQ,WAAW;AAAA,QACpB,SAAS,KAAK,OAAO;AAAA,QACrB,QAAQ,KAAK,OAAO;AAAA,QACpB,WAAW,KAAK,OAAO;AAAA,QACvB,QAAQ,CAAC,SAAS;AACd,gBAAM,kBAAkB;AACxB,eAAK,UAAU,KAAK,eAAe;AAAA,QACvC;AAAA,QACA,SAAS,CAAC,UAAU;AAChB,eAAK,aAAa;AAClB,eAAK;AAAA,YACD,IAAI,cAAc,MAAM,MAAM;AAAA,cAC1B,MAAM;AAAA,cACN,MAAM;AAAA,cACN,SAAS;AAAA,cACT,QAAQ;AAAA,cACR,SAAS,EAAE,WAAW,KAAK,OAAO,OAAO;AAAA,YAC7C,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ,CAAC;AAED,aAAO,MAAM;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,WAAK,aAAa;AAClB,WAAK;AAAA,QACD,IAAI;AAAA,UACA,KAAK,OAAO;AAAA,UACZ;AAAA,UACA;AAAA,YACI,cACI,WAAW,SACN;AAAA,YACT,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,SAAS,EAAE,WAAW,KAAK,OAAO,OAAO;AAAA,UAC7C;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,eAAqB;AACzB,QAAI,KAAK,iBAAiB;AACtB,WAAK,kBAAkB;AACvB,WAAK,UAAU,OAAO;AACtB,WAAK,mBAAmB;AAAA,IAC5B;AAAA,EACJ;AACJ;","names":[]}
|
package/dist/logger/logger.d.ts
CHANGED
@@ -2,12 +2,14 @@ import { ILoggerConfig } from '../types/logger_config.js';
|
|
2
2
|
import 'winston';
|
3
3
|
|
4
4
|
declare class Logger {
|
5
|
+
private static logger;
|
5
6
|
/**
|
6
7
|
* @static
|
7
8
|
* Create method must first be called before using the logger. It creates a singleton, which will then
|
8
9
|
* be referred to throughout the application.
|
9
10
|
*/
|
10
11
|
static create(config: ILoggerConfig): void;
|
12
|
+
static ensureInitialized(): void;
|
11
13
|
/**
|
12
14
|
* @static
|
13
15
|
* Method to log for level - "info", this should not be called if it has been custom levels are
|
package/dist/logger/logger.js
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
import winston from "winston";
|
2
2
|
import * as SentryImport from "winston-transport-sentry-node";
|
3
|
+
import { BaseError } from "../../dist";
|
4
|
+
import { errorCodes } from "../constants";
|
3
5
|
const Sentry = SentryImport.default;
|
4
|
-
let logger;
|
5
6
|
class Logger {
|
7
|
+
static logger;
|
6
8
|
/**
|
7
9
|
* @static
|
8
10
|
* Create method must first be called before using the logger. It creates a singleton, which will then
|
9
11
|
* be referred to throughout the application.
|
10
12
|
*/
|
11
13
|
static create(config) {
|
12
|
-
if (!logger) {
|
13
|
-
logger = winston.createLogger(
|
14
|
+
if (!this.logger) {
|
15
|
+
this.logger = winston.createLogger(
|
14
16
|
Object.assign(
|
15
17
|
{
|
16
18
|
format: winston.format.combine(
|
@@ -18,13 +20,7 @@ class Logger {
|
|
18
20
|
format: "YYYY-MM-DD HH:mm:ss:ms"
|
19
21
|
}),
|
20
22
|
winston.format.colorize({
|
21
|
-
all: true
|
22
|
-
colors: {
|
23
|
-
error: "red",
|
24
|
-
warn: "yellow",
|
25
|
-
info: "green",
|
26
|
-
debug: "white"
|
27
|
-
}
|
23
|
+
all: true
|
28
24
|
}),
|
29
25
|
winston.format.printf(
|
30
26
|
(info) => `${info.timestamp} ${info.level}: ${info.message}`
|
@@ -47,6 +43,18 @@ class Logger {
|
|
47
43
|
);
|
48
44
|
}
|
49
45
|
}
|
46
|
+
static ensureInitialized() {
|
47
|
+
if (!this.logger) {
|
48
|
+
throw new BaseError(
|
49
|
+
"LOGGER_ERROR",
|
50
|
+
errorCodes.base.BASE_ERROR,
|
51
|
+
"Logger not initialized. Please call Logger.create() first.",
|
52
|
+
true,
|
53
|
+
"Logger",
|
54
|
+
void 0
|
55
|
+
);
|
56
|
+
}
|
57
|
+
}
|
50
58
|
/**
|
51
59
|
* @static
|
52
60
|
* Method to log for level - "info", this should not be called if it has been custom levels are
|
@@ -55,10 +63,11 @@ class Logger {
|
|
55
63
|
* @param {string|object} message - String or object to log.
|
56
64
|
*/
|
57
65
|
static info(message) {
|
66
|
+
this.ensureInitialized();
|
58
67
|
if (typeof message === "string") {
|
59
|
-
logger
|
68
|
+
this.logger.info(message);
|
60
69
|
} else {
|
61
|
-
logger
|
70
|
+
this.logger.info(JSON.stringify(message));
|
62
71
|
}
|
63
72
|
}
|
64
73
|
/**
|
@@ -69,10 +78,11 @@ class Logger {
|
|
69
78
|
* @param {string|object} message - String or object to log.
|
70
79
|
*/
|
71
80
|
static debug(message) {
|
81
|
+
this.ensureInitialized();
|
72
82
|
if (typeof message === "string") {
|
73
|
-
logger?.debug(message);
|
83
|
+
this.logger?.debug(message);
|
74
84
|
} else {
|
75
|
-
logger?.debug(JSON.stringify(message));
|
85
|
+
this.logger?.debug(JSON.stringify(message));
|
76
86
|
}
|
77
87
|
}
|
78
88
|
/**
|
@@ -83,10 +93,11 @@ class Logger {
|
|
83
93
|
* @param {string|object} error - String or object to log.
|
84
94
|
*/
|
85
95
|
static error(error) {
|
96
|
+
this.ensureInitialized();
|
86
97
|
if (typeof error === "string") {
|
87
|
-
logger?.error(error);
|
98
|
+
this.logger?.error(error);
|
88
99
|
} else {
|
89
|
-
logger?.error(
|
100
|
+
this.logger?.error(
|
90
101
|
`${error.message ? `${error.message} : ` : ""}${JSON.stringify(error)}`
|
91
102
|
);
|
92
103
|
}
|
@@ -99,10 +110,11 @@ class Logger {
|
|
99
110
|
* @param {string|object} message - String or object to log.
|
100
111
|
*/
|
101
112
|
static warn(message) {
|
113
|
+
this.ensureInitialized();
|
102
114
|
if (typeof message === "string") {
|
103
|
-
logger?.warn(message);
|
115
|
+
this.logger?.warn(message);
|
104
116
|
} else {
|
105
|
-
logger?.warn(JSON.stringify(message));
|
117
|
+
this.logger?.warn(JSON.stringify(message));
|
106
118
|
}
|
107
119
|
}
|
108
120
|
/**
|
@@ -112,10 +124,11 @@ class Logger {
|
|
112
124
|
* @param {string|object} message - String or object to log.
|
113
125
|
*/
|
114
126
|
static log(level, message) {
|
127
|
+
this.ensureInitialized();
|
115
128
|
if (typeof message === "string") {
|
116
|
-
logger?.log(level, message);
|
129
|
+
this.logger?.log(level, message);
|
117
130
|
} else {
|
118
|
-
logger?.log(level, JSON.stringify(message));
|
131
|
+
this.logger?.log(level, JSON.stringify(message));
|
119
132
|
}
|
120
133
|
}
|
121
134
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/logger/logger.ts"],"sourcesContent":["import winston from \"winston\";\nimport type { ILoggerConfig } from \"../types\";\nimport * as SentryImport from \"winston-transport-sentry-node\";\nconst Sentry = SentryImport.default;\n\
|
1
|
+
{"version":3,"sources":["../../src/logger/logger.ts"],"sourcesContent":["import winston from \"winston\";\nimport type { ILoggerConfig } from \"../types\";\nimport * as SentryImport from \"winston-transport-sentry-node\";\nimport { BaseError } from \"../../dist\";\nimport { errorCodes } from \"../constants\";\nconst Sentry = SentryImport.default;\n\nexport class Logger {\n private static logger: winston.Logger;\n\n /**\n * @static\n * Create method must first be called before using the logger. It creates a singleton, which will then\n * be referred to throughout the application.\n */\n static create(config: ILoggerConfig) {\n if (!this.logger) {\n this.logger = winston.createLogger(\n Object.assign(\n {\n format: winston.format.combine(\n winston.format.timestamp({\n format: \"YYYY-MM-DD HH:mm:ss:ms\",\n }),\n winston.format.colorize({\n all: true,\n }),\n winston.format.printf(\n (info) =>\n `${info.timestamp} ${info.level}: ${info.message}`\n )\n ),\n transports: [\n new winston.transports.Console({\n level: config.console?.level || \"info\",\n }),\n new Sentry({\n sentry: {\n dsn: config.sentry?.dsn,\n },\n level: config.sentry?.level || \"error\",\n }),\n ],\n },\n config.winston\n )\n );\n }\n }\n\n static ensureInitialized(): void {\n if (!this.logger) {\n throw new BaseError(\n \"LOGGER_ERROR\",\n errorCodes.base.BASE_ERROR,\n \"Logger not initialized. Please call Logger.create() first.\",\n true,\n \"Logger\",\n undefined\n );\n }\n }\n\n /**\n * @static\n * Method to log for level - \"info\", this should not be called if it has been custom levels are\n * set which does not include \"info\"\n *\n * @param {string|object} message - String or object to log.\n */\n static info(message: string | object) {\n this.ensureInitialized();\n if (typeof message === \"string\") {\n this.logger.info(message);\n } else {\n this.logger.info(JSON.stringify(message));\n }\n }\n\n /**\n * @static\n * Method to log for level - \"debug\", this should not be called if it has been custom levels are\n * set which does not include \"debug\"\n *\n * @param {string|object} message - String or object to log.\n */\n static debug(message: string | object) {\n this.ensureInitialized();\n if (typeof message === \"string\") {\n this.logger?.debug(message);\n } else {\n this.logger?.debug(JSON.stringify(message));\n }\n }\n\n /**\n * @static\n * Method to log for level - \"error\", this should not be called if it has been custom levels are\n * set which does not include \"error\"\n *\n * @param {string|object} error - String or object to log.\n */\n static error(error: string | object) {\n this.ensureInitialized();\n if (typeof error === \"string\") {\n this.logger?.error(error);\n } else {\n this.logger?.error(\n `${\n (error as Error).message\n ? `${(error as Error).message} : `\n : \"\"\n }${JSON.stringify(error)}`\n );\n }\n }\n\n /**\n * @static\n * Method to log for level - \"warn\", this should not be called if it has been custom levels are\n * set which does not include \"warn\"\n *\n * @param {string|object} message - String or object to log.\n */\n static warn(message: string | object) {\n this.ensureInitialized();\n if (typeof message === \"string\") {\n this.logger?.warn(message);\n } else {\n this.logger?.warn(JSON.stringify(message));\n }\n }\n\n /**\n * @static\n * Method to log for any level, which should be used to log all custom levels that may be added.\n *\n * @param {string|object} message - String or object to log.\n */\n static log(level: string, message: string | object) {\n this.ensureInitialized();\n if (typeof message === \"string\") {\n this.logger?.log(level, message);\n } else {\n this.logger?.log(level, JSON.stringify(message));\n }\n }\n}\n"],"mappings":"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","names":[]}
|