@iamnnort/nestjs-logger 1.1.3 → 1.1.5
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/README.md +1 -5
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,11 +21,7 @@ import { LoggerModule, LoggerService } from '@iamnnort/nestjs-logger';
|
|
|
21
21
|
LoggerModule,
|
|
22
22
|
],
|
|
23
23
|
})
|
|
24
|
-
class AppModule
|
|
25
|
-
configure(consumer: MiddlewareConsumer) {
|
|
26
|
-
consumer.apply(LoggerMiddleware).forRoutes('*');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
24
|
+
class AppModule {}
|
|
29
25
|
|
|
30
26
|
const app = await NestFactory.create<NestExpressApplication>(AppModule);
|
|
31
27
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConsoleLogger, NestMiddleware } from '@nestjs/common';
|
|
1
|
+
import { ConsoleLogger, NestMiddleware, NestModule, MiddlewareConsumer } from '@nestjs/common';
|
|
2
2
|
import { Request, Response, NextFunction } from 'express';
|
|
3
3
|
import { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
|
|
4
4
|
|
|
@@ -15,7 +15,8 @@ declare class LoggerMiddleware implements NestMiddleware {
|
|
|
15
15
|
use(request: Request, response: Response, next: NextFunction): void;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
declare class LoggerModule {
|
|
18
|
+
declare class LoggerModule implements NestModule {
|
|
19
|
+
configure(consumer: MiddlewareConsumer): void;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export { LoggerMiddleware, LoggerModule, LoggerService };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConsoleLogger, NestMiddleware } from '@nestjs/common';
|
|
1
|
+
import { ConsoleLogger, NestMiddleware, NestModule, MiddlewareConsumer } from '@nestjs/common';
|
|
2
2
|
import { Request, Response, NextFunction } from 'express';
|
|
3
3
|
import { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
|
|
4
4
|
|
|
@@ -15,7 +15,8 @@ declare class LoggerMiddleware implements NestMiddleware {
|
|
|
15
15
|
use(request: Request, response: Response, next: NextFunction): void;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
declare class LoggerModule {
|
|
18
|
+
declare class LoggerModule implements NestModule {
|
|
19
|
+
configure(consumer: MiddlewareConsumer): void;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export { LoggerMiddleware, LoggerModule, LoggerService };
|
package/dist/index.js
CHANGED
|
@@ -190,6 +190,9 @@ LoggerService = __decorateClass([
|
|
|
190
190
|
|
|
191
191
|
// src/module.ts
|
|
192
192
|
var LoggerModule = class {
|
|
193
|
+
configure(consumer) {
|
|
194
|
+
consumer.apply(LoggerMiddleware).forRoutes("*");
|
|
195
|
+
}
|
|
193
196
|
};
|
|
194
197
|
LoggerModule = __decorateClass([
|
|
195
198
|
(0, import_common3.Global)(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/middleware.ts","../src/module.ts","../src/service.ts","../src/message/builder.ts"],"sourcesContent":["export * from './middleware';\nexport * from './module';\nexport * from './service';\n","import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerContexts } from './types';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {\n this.loggerService.setContext(LoggerContexts.SYSTEM);\n }\n\n use(request: Request, response: Response, next: NextFunction) {\n this.loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n this.loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n","import { Global, Module } from '@nestjs/common';\nimport { LoggerService } from './service';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule {}\n","import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';\nimport { LoggerContexts } from './types';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class LoggerService extends ConsoleLogger {\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTER_EXPLORER,\n LoggerContexts.ROUTES_RESOLVER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const ctxMessage = ctxMessageMap[ctx];\n\n if (ctxMessage) {\n return console.log(`[${LoggerContexts.SYSTEM}] ${ctxMessage}`);\n }\n\n return console.log(`[${ctx}] ${message}`);\n }\n\n logRequest(request: InternalAxiosRequestConfig & Request) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse & Response) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig & Request;\n private response!: AxiosResponse & Response;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig & Request) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse & Response) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url =\n this.request?.originalUrl ||\n this.response?.req?.originalUrl ||\n this.request?.url ||\n this.response?.config?.url ||\n this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params)].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethod() {\n const method =\n this.request?.method ||\n this.response?.req?.method ||\n this.response?.config?.method ||\n this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data =\n this.request?.body ||\n this.response?.req?.body ||\n this.request?.data ||\n this.response?.config?.data ||\n this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatus() {\n const status = this.response?.statusCode || this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusMessage || this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n}\n"],"mappings":"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","names":["import_common","import_common"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/middleware.ts","../src/module.ts","../src/service.ts","../src/message/builder.ts"],"sourcesContent":["export * from './middleware';\nexport * from './module';\nexport * from './service';\n","import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerContexts } from './types';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {\n this.loggerService.setContext(LoggerContexts.SYSTEM);\n }\n\n use(request: Request, response: Response, next: NextFunction) {\n this.loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n this.loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n","import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from '.';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule implements NestModule {\n configure(consumer: MiddlewareConsumer) {\n consumer.apply(LoggerMiddleware).forRoutes('*');\n }\n}\n","import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';\nimport { LoggerContexts } from './types';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class LoggerService extends ConsoleLogger {\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTER_EXPLORER,\n LoggerContexts.ROUTES_RESOLVER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const ctxMessage = ctxMessageMap[ctx];\n\n if (ctxMessage) {\n return console.log(`[${LoggerContexts.SYSTEM}] ${ctxMessage}`);\n }\n\n return console.log(`[${ctx}] ${message}`);\n }\n\n logRequest(request: InternalAxiosRequestConfig & Request) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse & Response) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig & Request;\n private response!: AxiosResponse & Response;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig & Request) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse & Response) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url =\n this.request?.originalUrl ||\n this.response?.req?.originalUrl ||\n this.request?.url ||\n this.response?.config?.url ||\n this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params)].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethod() {\n const method =\n this.request?.method ||\n this.response?.req?.method ||\n this.response?.config?.method ||\n this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data =\n this.request?.body ||\n this.response?.req?.body ||\n this.request?.data ||\n this.response?.config?.data ||\n this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatus() {\n const status = this.response?.statusCode || this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusMessage || this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n}\n"],"mappings":"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","names":["import_common","import_common"]}
|
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/middleware.ts","../src/module.ts","../src/service.ts","../src/message/builder.ts"],"sourcesContent":["import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerContexts } from './types';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {\n this.loggerService.setContext(LoggerContexts.SYSTEM);\n }\n\n use(request: Request, response: Response, next: NextFunction) {\n this.loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n this.loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n","import { Global, Module } from '@nestjs/common';\nimport { LoggerService } from './service';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule {}\n","import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';\nimport { LoggerContexts } from './types';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class LoggerService extends ConsoleLogger {\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTER_EXPLORER,\n LoggerContexts.ROUTES_RESOLVER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const ctxMessage = ctxMessageMap[ctx];\n\n if (ctxMessage) {\n return console.log(`[${LoggerContexts.SYSTEM}] ${ctxMessage}`);\n }\n\n return console.log(`[${ctx}] ${message}`);\n }\n\n logRequest(request: InternalAxiosRequestConfig & Request) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse & Response) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig & Request;\n private response!: AxiosResponse & Response;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig & Request) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse & Response) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url =\n this.request?.originalUrl ||\n this.response?.req?.originalUrl ||\n this.request?.url ||\n this.response?.config?.url ||\n this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params)].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethod() {\n const method =\n this.request?.method ||\n this.response?.req?.method ||\n this.response?.config?.method ||\n this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data =\n this.request?.body ||\n this.response?.req?.body ||\n this.request?.data ||\n this.response?.config?.data ||\n this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatus() {\n const status = this.response?.statusCode || this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusMessage || this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n}\n"],"mappings":"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","names":["Injectable","Injectable"]}
|
|
1
|
+
{"version":3,"sources":["../src/middleware.ts","../src/module.ts","../src/service.ts","../src/message/builder.ts"],"sourcesContent":["import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerContexts } from './types';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {\n this.loggerService.setContext(LoggerContexts.SYSTEM);\n }\n\n use(request: Request, response: Response, next: NextFunction) {\n this.loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n this.loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n","import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from '.';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule implements NestModule {\n configure(consumer: MiddlewareConsumer) {\n consumer.apply(LoggerMiddleware).forRoutes('*');\n }\n}\n","import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';\nimport { LoggerContexts } from './types';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class LoggerService extends ConsoleLogger {\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTER_EXPLORER,\n LoggerContexts.ROUTES_RESOLVER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const ctxMessage = ctxMessageMap[ctx];\n\n if (ctxMessage) {\n return console.log(`[${LoggerContexts.SYSTEM}] ${ctxMessage}`);\n }\n\n return console.log(`[${ctx}] ${message}`);\n }\n\n logRequest(request: InternalAxiosRequestConfig & Request) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse & Response) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethod()\n .makeUrl()\n .makeRequestData()\n .makeStatus()\n .makeResponseData()\n .build();\n\n return this.log(message);\n }\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig & Request;\n private response!: AxiosResponse & Response;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig & Request) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse & Response) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url =\n this.request?.originalUrl ||\n this.response?.req?.originalUrl ||\n this.request?.url ||\n this.response?.config?.url ||\n this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params)].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethod() {\n const method =\n this.request?.method ||\n this.response?.req?.method ||\n this.response?.config?.method ||\n this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data =\n this.request?.body ||\n this.response?.req?.body ||\n this.request?.data ||\n this.response?.config?.data ||\n this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatus() {\n const status = this.response?.statusCode || this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusMessage || this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n}\n"],"mappings":"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","names":["Injectable","Injectable"]}
|