@iamnnort/nestjs-logger 1.2.7 → 1.3.2

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 CHANGED
@@ -31,7 +31,9 @@ async function bootstrap() {
31
31
  bufferLogs: true,
32
32
  });
33
33
 
34
- app.useLogger(new LoggerService());
34
+ const loggerService = await app.resolve(LoggerService);
35
+
36
+ app.useLogger(loggerService);
35
37
 
36
38
  await app.listen(3000);
37
39
  }
package/dist/index.d.mts CHANGED
@@ -1,26 +1,36 @@
1
- import { NestModule, MiddlewareConsumer, ConsoleLogger } from '@nestjs/common';
1
+ import * as _nestjs_common from '@nestjs/common';
2
+ import { MiddlewareConsumer, ConsoleLogger } from '@nestjs/common';
2
3
  import { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
3
4
  import { Request, Response } from 'express';
4
5
 
5
- declare class LoggerModule implements NestModule {
6
+ type LoggerConfig = {
7
+ context?: string;
8
+ serializer?: {
9
+ array?: 'indices' | 'brackets' | 'repeat' | 'comma';
10
+ };
11
+ };
12
+ declare enum LoggerContexts {
13
+ SYSTEM = "System",
14
+ INSTANCE_LOADER = "InstanceLoader",
15
+ ROUTER_EXPLORER = "RouterExplorer",
16
+ ROUTES_RESOLVER = "RoutesResolver",
17
+ NEST_FACTORY = "NestFactory",
18
+ NEST_APPLICATION = "NestApplication"
19
+ }
20
+
21
+ declare const ConfigurableModuleClass: _nestjs_common.ConfigurableModuleCls<LoggerConfig, "register", "create", {}>;
22
+
23
+ declare class LoggerModule extends ConfigurableModuleClass {
6
24
  configure(consumer: MiddlewareConsumer): void;
7
25
  }
8
26
 
9
27
  declare class LoggerService extends ConsoleLogger {
10
- constructor(context?: string);
28
+ private config;
29
+ constructor(config?: LoggerConfig);
11
30
  log(message: string, context?: string): void;
12
31
  logRequest(request: InternalAxiosRequestConfig & Request): void;
13
32
  logResponse(response: AxiosResponse & Response): void;
14
33
  logRequestError(error: AxiosError): void;
15
34
  }
16
35
 
17
- declare enum LoggerContexts {
18
- SYSTEM = "System",
19
- INSTANCE_LOADER = "InstanceLoader",
20
- ROUTER_EXPLORER = "RouterExplorer",
21
- ROUTES_RESOLVER = "RoutesResolver",
22
- NEST_FACTORY = "NestFactory",
23
- NEST_APPLICATION = "NestApplication"
24
- }
25
-
26
- export { LoggerContexts, LoggerModule, LoggerService };
36
+ export { type LoggerConfig, LoggerContexts, LoggerModule, LoggerService };
package/dist/index.d.ts CHANGED
@@ -1,26 +1,36 @@
1
- import { NestModule, MiddlewareConsumer, ConsoleLogger } from '@nestjs/common';
1
+ import * as _nestjs_common from '@nestjs/common';
2
+ import { MiddlewareConsumer, ConsoleLogger } from '@nestjs/common';
2
3
  import { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
3
4
  import { Request, Response } from 'express';
4
5
 
5
- declare class LoggerModule implements NestModule {
6
+ type LoggerConfig = {
7
+ context?: string;
8
+ serializer?: {
9
+ array?: 'indices' | 'brackets' | 'repeat' | 'comma';
10
+ };
11
+ };
12
+ declare enum LoggerContexts {
13
+ SYSTEM = "System",
14
+ INSTANCE_LOADER = "InstanceLoader",
15
+ ROUTER_EXPLORER = "RouterExplorer",
16
+ ROUTES_RESOLVER = "RoutesResolver",
17
+ NEST_FACTORY = "NestFactory",
18
+ NEST_APPLICATION = "NestApplication"
19
+ }
20
+
21
+ declare const ConfigurableModuleClass: _nestjs_common.ConfigurableModuleCls<LoggerConfig, "register", "create", {}>;
22
+
23
+ declare class LoggerModule extends ConfigurableModuleClass {
6
24
  configure(consumer: MiddlewareConsumer): void;
7
25
  }
8
26
 
9
27
  declare class LoggerService extends ConsoleLogger {
10
- constructor(context?: string);
28
+ private config;
29
+ constructor(config?: LoggerConfig);
11
30
  log(message: string, context?: string): void;
12
31
  logRequest(request: InternalAxiosRequestConfig & Request): void;
13
32
  logResponse(response: AxiosResponse & Response): void;
14
33
  logRequestError(error: AxiosError): void;
15
34
  }
16
35
 
17
- declare enum LoggerContexts {
18
- SYSTEM = "System",
19
- INSTANCE_LOADER = "InstanceLoader",
20
- ROUTER_EXPLORER = "RouterExplorer",
21
- ROUTES_RESOLVER = "RoutesResolver",
22
- NEST_FACTORY = "NestFactory",
23
- NEST_APPLICATION = "NestApplication"
24
- }
25
-
26
- export { LoggerContexts, LoggerModule, LoggerService };
36
+ export { type LoggerConfig, LoggerContexts, LoggerModule, LoggerService };
package/dist/index.js CHANGED
@@ -28,7 +28,9 @@ var MessageBuilder = class {
28
28
 
29
29
 
30
30
 
31
- constructor() {
31
+
32
+ constructor(config = {}) {
33
+ this.config = config;
32
34
  this.printQueue = [];
33
35
  }
34
36
  setRequest(request) {
@@ -55,7 +57,10 @@ var MessageBuilder = class {
55
57
  delete params["0"];
56
58
  this.printQueue.push([
57
59
  url,
58
- _qs.stringify.call(void 0, params)
60
+ _qs.stringify.call(void 0, params, {
61
+ arrayFormat: _optionalChain([this, 'access', _25 => _25.config, 'access', _26 => _26.serializer, 'optionalAccess', _27 => _27.array]) || "brackets",
62
+ skipNulls: true
63
+ })
59
64
  ].filter((_) => _).join("?"));
60
65
  } else {
61
66
  this.printQueue.push(url);
@@ -64,14 +69,14 @@ var MessageBuilder = class {
64
69
  return this;
65
70
  }
66
71
  makeMethod() {
67
- const method = _optionalChain([this, 'access', _25 => _25.request, 'optionalAccess', _26 => _26.method]) || _optionalChain([this, 'access', _27 => _27.response, 'optionalAccess', _28 => _28.req, 'optionalAccess', _29 => _29.method]) || _optionalChain([this, 'access', _30 => _30.response, 'optionalAccess', _31 => _31.config, 'optionalAccess', _32 => _32.method]) || _optionalChain([this, 'access', _33 => _33.error, 'optionalAccess', _34 => _34.response, 'optionalAccess', _35 => _35.config, 'access', _36 => _36.method]);
72
+ const method = _optionalChain([this, 'access', _28 => _28.request, 'optionalAccess', _29 => _29.method]) || _optionalChain([this, 'access', _30 => _30.response, 'optionalAccess', _31 => _31.req, 'optionalAccess', _32 => _32.method]) || _optionalChain([this, 'access', _33 => _33.response, 'optionalAccess', _34 => _34.config, 'optionalAccess', _35 => _35.method]) || _optionalChain([this, 'access', _36 => _36.error, 'optionalAccess', _37 => _37.response, 'optionalAccess', _38 => _38.config, 'access', _39 => _39.method]);
68
73
  if (method) {
69
74
  this.printQueue.push(method.toUpperCase());
70
75
  }
71
76
  return this;
72
77
  }
73
78
  makeRequestData() {
74
- const data = _optionalChain([this, 'access', _37 => _37.request, 'optionalAccess', _38 => _38.body]) || _optionalChain([this, 'access', _39 => _39.response, 'optionalAccess', _40 => _40.req, 'optionalAccess', _41 => _41.body]) || _optionalChain([this, 'access', _42 => _42.request, 'optionalAccess', _43 => _43.data]) || _optionalChain([this, 'access', _44 => _44.response, 'optionalAccess', _45 => _45.config, 'optionalAccess', _46 => _46.data]) || _optionalChain([this, 'access', _47 => _47.error, 'optionalAccess', _48 => _48.response, 'optionalAccess', _49 => _49.config, 'access', _50 => _50.data]);
79
+ const data = _optionalChain([this, 'access', _40 => _40.request, 'optionalAccess', _41 => _41.body]) || _optionalChain([this, 'access', _42 => _42.response, 'optionalAccess', _43 => _43.req, 'optionalAccess', _44 => _44.body]) || _optionalChain([this, 'access', _45 => _45.request, 'optionalAccess', _46 => _46.data]) || _optionalChain([this, 'access', _47 => _47.response, 'optionalAccess', _48 => _48.config, 'optionalAccess', _49 => _49.data]) || _optionalChain([this, 'access', _50 => _50.error, 'optionalAccess', _51 => _51.response, 'optionalAccess', _52 => _52.config, 'access', _53 => _53.data]);
75
80
  if (data) {
76
81
  if (typeof data === "string") {
77
82
  this.printQueue.push(data);
@@ -85,7 +90,7 @@ var MessageBuilder = class {
85
90
  return this;
86
91
  }
87
92
  makeResponseData() {
88
- const data = _optionalChain([this, 'access', _51 => _51.response, 'optionalAccess', _52 => _52.data]) || _optionalChain([this, 'access', _53 => _53.error, 'optionalAccess', _54 => _54.response, 'optionalAccess', _55 => _55.data]);
93
+ const data = _optionalChain([this, 'access', _54 => _54.response, 'optionalAccess', _55 => _55.data]) || _optionalChain([this, 'access', _56 => _56.error, 'optionalAccess', _57 => _57.response, 'optionalAccess', _58 => _58.data]);
89
94
  if (data) {
90
95
  if (typeof data === "string") {
91
96
  this.printQueue.push(data);
@@ -99,10 +104,10 @@ var MessageBuilder = class {
99
104
  return this;
100
105
  }
101
106
  makeStatus() {
102
- const status = _optionalChain([this, 'access', _56 => _56.response, 'optionalAccess', _57 => _57.statusCode]) || _optionalChain([this, 'access', _58 => _58.response, 'optionalAccess', _59 => _59.status]) || _optionalChain([this, 'access', _60 => _60.error, 'optionalAccess', _61 => _61.response, 'optionalAccess', _62 => _62.status]);
107
+ const status = _optionalChain([this, 'access', _59 => _59.response, 'optionalAccess', _60 => _60.statusCode]) || _optionalChain([this, 'access', _61 => _61.response, 'optionalAccess', _62 => _62.status]) || _optionalChain([this, 'access', _63 => _63.error, 'optionalAccess', _64 => _64.response, 'optionalAccess', _65 => _65.status]);
103
108
  if (status) {
104
109
  this.printQueue.push(`${status}`);
105
- const statusText = _optionalChain([this, 'access', _63 => _63.response, 'optionalAccess', _64 => _64.statusMessage]) || _optionalChain([this, 'access', _65 => _65.response, 'optionalAccess', _66 => _66.statusText]) || _optionalChain([this, 'access', _67 => _67.error, 'optionalAccess', _68 => _68.response, 'optionalAccess', _69 => _69.statusText]);
110
+ const statusText = _optionalChain([this, 'access', _66 => _66.response, 'optionalAccess', _67 => _67.statusMessage]) || _optionalChain([this, 'access', _68 => _68.response, 'optionalAccess', _69 => _69.statusText]) || _optionalChain([this, 'access', _70 => _70.error, 'optionalAccess', _71 => _71.response, 'optionalAccess', _72 => _72.statusText]);
106
111
  if (statusText) {
107
112
  this.printQueue.push(statusText);
108
113
  }
@@ -114,6 +119,10 @@ var MessageBuilder = class {
114
119
  }
115
120
  };
116
121
 
122
+ // src/module-definition.ts
123
+
124
+ var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new (0, _common.ConfigurableModuleBuilder)().build();
125
+
117
126
  // src/service.ts
118
127
  function _ts_decorate(decorators, target, key, desc) {
119
128
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -126,15 +135,23 @@ function _ts_metadata(k, v) {
126
135
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
127
136
  }
128
137
  __name(_ts_metadata, "_ts_metadata");
138
+ function _ts_param(paramIndex, decorator) {
139
+ return function(target, key) {
140
+ decorator(target, key, paramIndex);
141
+ };
142
+ }
143
+ __name(_ts_param, "_ts_param");
129
144
  var LoggerService = class extends _common.ConsoleLogger {
130
145
  static {
131
146
  __name(this, "LoggerService");
132
147
  }
133
- constructor(context) {
134
- super(context || LoggerContexts.SYSTEM);
148
+
149
+ constructor(config = {}) {
150
+ const ctx = config.context || LoggerContexts.SYSTEM;
151
+ super(ctx), this.config = config;
135
152
  }
136
153
  log(message, context) {
137
- const ctx = _optionalChain([context, 'optionalAccess', _70 => _70.replace, 'call', _71 => _71(/^_/, "")]) || this.context || "";
154
+ const ctx = _optionalChain([context, 'optionalAccess', _73 => _73.replace, 'call', _74 => _74(/^_/, "")]) || this.context || "";
138
155
  const ctxBlacklist = [
139
156
  LoggerContexts.INSTANCE_LOADER,
140
157
  LoggerContexts.ROUTER_EXPLORER,
@@ -154,17 +171,17 @@ var LoggerService = class extends _common.ConsoleLogger {
154
171
  return console.log(`[${ctx}] ${message}`);
155
172
  }
156
173
  logRequest(request) {
157
- const loggerMessageBuilder = new MessageBuilder();
174
+ const loggerMessageBuilder = new MessageBuilder(this.config);
158
175
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
159
176
  return this.log(message);
160
177
  }
161
178
  logResponse(response) {
162
- const loggerMessageBuilder = new MessageBuilder();
179
+ const loggerMessageBuilder = new MessageBuilder(this.config);
163
180
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
164
181
  return this.log(message);
165
182
  }
166
183
  logRequestError(error) {
167
- const loggerMessageBuilder = new MessageBuilder();
184
+ const loggerMessageBuilder = new MessageBuilder(this.config);
168
185
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
169
186
  return this.log(message);
170
187
  }
@@ -173,9 +190,10 @@ LoggerService = exports.LoggerService = _ts_decorate([
173
190
  _common.Injectable.call(void 0, {
174
191
  scope: _common.Scope.TRANSIENT
175
192
  }),
193
+ _ts_param(0, _common.Inject.call(void 0, MODULE_OPTIONS_TOKEN)),
176
194
  _ts_metadata("design:type", Function),
177
195
  _ts_metadata("design:paramtypes", [
178
- String
196
+ typeof LoggerConfig === "undefined" ? Object : LoggerConfig
179
197
  ])
180
198
  ], LoggerService);
181
199
 
@@ -188,22 +206,32 @@ function _ts_decorate2(decorators, target, key, desc) {
188
206
  return c > 3 && r && Object.defineProperty(target, key, r), r;
189
207
  }
190
208
  __name(_ts_decorate2, "_ts_decorate");
209
+ function _ts_metadata2(k, v) {
210
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
211
+ }
212
+ __name(_ts_metadata2, "_ts_metadata");
191
213
  var LoggerMiddleware = class {
192
214
  static {
193
215
  __name(this, "LoggerMiddleware");
194
216
  }
217
+
218
+ constructor(loggerService) {
219
+ this.loggerService = loggerService;
220
+ }
195
221
  use(request, response, next) {
196
- const loggerService = new LoggerService();
197
- loggerService.setContext(LoggerContexts.SYSTEM);
198
- loggerService.logRequest(request);
222
+ this.loggerService.logRequest(request);
199
223
  response.on("finish", () => {
200
- loggerService.logResponse(response);
224
+ this.loggerService.logResponse(response);
201
225
  });
202
226
  return next();
203
227
  }
204
228
  };
205
229
  LoggerMiddleware = _ts_decorate2([
206
- _common.Injectable.call(void 0, )
230
+ _common.Injectable.call(void 0, ),
231
+ _ts_metadata2("design:type", Function),
232
+ _ts_metadata2("design:paramtypes", [
233
+ typeof LoggerService === "undefined" ? Object : LoggerService
234
+ ])
207
235
  ], LoggerMiddleware);
208
236
 
209
237
  // src/module.ts
@@ -214,7 +242,7 @@ function _ts_decorate3(decorators, target, key, desc) {
214
242
  return c > 3 && r && Object.defineProperty(target, key, r), r;
215
243
  }
216
244
  __name(_ts_decorate3, "_ts_decorate");
217
- var LoggerModule = class {
245
+ var LoggerModule = class extends ConfigurableModuleClass {
218
246
  static {
219
247
  __name(this, "LoggerModule");
220
248
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","../src/module.ts","../src/service.ts","../src/types.ts","../src/message/builder.ts","../src/middleware.ts"],"names":["LoggerContexts","MessageBuilder","printQueue","request","response","error","constructor","setRequest","setResponse","setError","makeType","type","push","makeUrl","url","originalUrl","req","config","params","stringify","filter","_","join","makeMethod","method","toUpperCase","makeRequestData","data","body","Object","keys","length","JSON","makeResponseData","makeStatus","status","statusCode","ConsoleLogger","replace","INSTANCE_LOADER","ROUTER_EXPLORER","ROUTES_RESOLVER","includes","NEST_FACTORY","NEST_APPLICATION","ctxMessageMap","ctx","loggerMessageBuilder","message","TRANSIENT","Injectable","LoggerMiddleware","next","setContext","logRequest","logResponse","LoggerModule","LoggerService"],"mappings":"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","file":"/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","sourcesContent":[null,"import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from './middleware';\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 { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { LoggerContexts } from './types';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n constructor(context?: string) {\n super(context || LoggerContexts.SYSTEM);\n }\n\n log(message: string, context?: string) {\n const ctx = context?.replace(/^_/, '') || 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","export enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTER_EXPLORER = 'RouterExplorer',\n ROUTES_RESOLVER = 'RoutesResolver',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\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","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 use(request: Request, response: Response, next: NextFunction) {\n const loggerService = new LoggerService();\n\n loggerService.setContext(LoggerContexts.SYSTEM);\n\n loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","../src/module.ts","../src/service.ts","../src/types.ts","../src/message/builder.ts","../src/module-definition.ts","../src/middleware.ts"],"names":["LoggerContexts","MessageBuilder","printQueue","request","response","error","constructor","config","setRequest","setResponse","setError","makeType","type","push","makeUrl","url","originalUrl","req","params","stringify","arrayFormat","serializer","array","skipNulls","filter","_","join","makeMethod","method","toUpperCase","makeRequestData","data","body","Object","keys","length","JSON","makeResponseData","makeStatus","status","statusCode","ConfigurableModuleBuilder","ConfigurableModuleClass","ConsoleLogger","context","replace","INSTANCE_LOADER","ROUTER_EXPLORER","ROUTES_RESOLVER","includes","NEST_FACTORY","NEST_APPLICATION","ctxMessageMap","ctx","loggerMessageBuilder","message","TRANSIENT","Injectable","LoggerMiddleware","loggerService","next","logRequest","logResponse","LoggerService"],"mappings":"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","file":"/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","sourcesContent":[null,"import { Global, MiddlewareConsumer, Module } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from './middleware';\nimport { ConfigurableModuleClass } from './module-definition';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n configure(consumer: MiddlewareConsumer) {\n consumer.apply(LoggerMiddleware).forRoutes('*');\n }\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { type LoggerConfig, LoggerContexts } from './types';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\nimport { MODULE_OPTIONS_TOKEN } from './module-definition';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n constructor(@Inject(MODULE_OPTIONS_TOKEN) private config: LoggerConfig = {}) {\n const ctx = config.context || LoggerContexts.SYSTEM;\n\n super(ctx);\n }\n\n log(message: string, context?: string) {\n const ctx = context?.replace(/^_/, '') || 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(this.config);\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(this.config);\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(this.config);\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","export type LoggerConfig = {\n context?: string;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTER_EXPLORER = 'RouterExplorer',\n ROUTES_RESOLVER = 'RoutesResolver',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\nimport { LoggerConfig } from '@src/types';\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(private config: LoggerConfig = {}) {}\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(\n [\n url,\n stringify(params, {\n arrayFormat: this.config.serializer?.array || 'brackets',\n skipNulls: true,\n }),\n ]\n .filter((_) => _)\n .join('?'),\n );\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","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {}\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"]}
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
5
5
  import { Global, Module } from "@nestjs/common";
6
6
 
7
7
  // src/service.ts
8
- import { ConsoleLogger, Injectable, Scope } from "@nestjs/common";
8
+ import { ConsoleLogger, Inject, Injectable, Scope } from "@nestjs/common";
9
9
 
10
10
  // src/types.ts
11
11
  var LoggerContexts = /* @__PURE__ */ function(LoggerContexts2) {
@@ -24,11 +24,13 @@ var MessageBuilder = class {
24
24
  static {
25
25
  __name(this, "MessageBuilder");
26
26
  }
27
+ config;
27
28
  printQueue;
28
29
  request;
29
30
  response;
30
31
  error;
31
- constructor() {
32
+ constructor(config = {}) {
33
+ this.config = config;
32
34
  this.printQueue = [];
33
35
  }
34
36
  setRequest(request) {
@@ -55,7 +57,10 @@ var MessageBuilder = class {
55
57
  delete params["0"];
56
58
  this.printQueue.push([
57
59
  url,
58
- stringify(params)
60
+ stringify(params, {
61
+ arrayFormat: this.config.serializer?.array || "brackets",
62
+ skipNulls: true
63
+ })
59
64
  ].filter((_) => _).join("?"));
60
65
  } else {
61
66
  this.printQueue.push(url);
@@ -114,6 +119,10 @@ var MessageBuilder = class {
114
119
  }
115
120
  };
116
121
 
122
+ // src/module-definition.ts
123
+ import { ConfigurableModuleBuilder } from "@nestjs/common";
124
+ var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder().build();
125
+
117
126
  // src/service.ts
118
127
  function _ts_decorate(decorators, target, key, desc) {
119
128
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -126,12 +135,20 @@ function _ts_metadata(k, v) {
126
135
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
127
136
  }
128
137
  __name(_ts_metadata, "_ts_metadata");
138
+ function _ts_param(paramIndex, decorator) {
139
+ return function(target, key) {
140
+ decorator(target, key, paramIndex);
141
+ };
142
+ }
143
+ __name(_ts_param, "_ts_param");
129
144
  var LoggerService = class extends ConsoleLogger {
130
145
  static {
131
146
  __name(this, "LoggerService");
132
147
  }
133
- constructor(context) {
134
- super(context || LoggerContexts.SYSTEM);
148
+ config;
149
+ constructor(config = {}) {
150
+ const ctx = config.context || LoggerContexts.SYSTEM;
151
+ super(ctx), this.config = config;
135
152
  }
136
153
  log(message, context) {
137
154
  const ctx = context?.replace(/^_/, "") || this.context || "";
@@ -154,17 +171,17 @@ var LoggerService = class extends ConsoleLogger {
154
171
  return console.log(`[${ctx}] ${message}`);
155
172
  }
156
173
  logRequest(request) {
157
- const loggerMessageBuilder = new MessageBuilder();
174
+ const loggerMessageBuilder = new MessageBuilder(this.config);
158
175
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
159
176
  return this.log(message);
160
177
  }
161
178
  logResponse(response) {
162
- const loggerMessageBuilder = new MessageBuilder();
179
+ const loggerMessageBuilder = new MessageBuilder(this.config);
163
180
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
164
181
  return this.log(message);
165
182
  }
166
183
  logRequestError(error) {
167
- const loggerMessageBuilder = new MessageBuilder();
184
+ const loggerMessageBuilder = new MessageBuilder(this.config);
168
185
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
169
186
  return this.log(message);
170
187
  }
@@ -173,9 +190,10 @@ LoggerService = _ts_decorate([
173
190
  Injectable({
174
191
  scope: Scope.TRANSIENT
175
192
  }),
193
+ _ts_param(0, Inject(MODULE_OPTIONS_TOKEN)),
176
194
  _ts_metadata("design:type", Function),
177
195
  _ts_metadata("design:paramtypes", [
178
- String
196
+ typeof LoggerConfig === "undefined" ? Object : LoggerConfig
179
197
  ])
180
198
  ], LoggerService);
181
199
 
@@ -188,22 +206,32 @@ function _ts_decorate2(decorators, target, key, desc) {
188
206
  return c > 3 && r && Object.defineProperty(target, key, r), r;
189
207
  }
190
208
  __name(_ts_decorate2, "_ts_decorate");
209
+ function _ts_metadata2(k, v) {
210
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
211
+ }
212
+ __name(_ts_metadata2, "_ts_metadata");
191
213
  var LoggerMiddleware = class {
192
214
  static {
193
215
  __name(this, "LoggerMiddleware");
194
216
  }
217
+ loggerService;
218
+ constructor(loggerService) {
219
+ this.loggerService = loggerService;
220
+ }
195
221
  use(request, response, next) {
196
- const loggerService = new LoggerService();
197
- loggerService.setContext(LoggerContexts.SYSTEM);
198
- loggerService.logRequest(request);
222
+ this.loggerService.logRequest(request);
199
223
  response.on("finish", () => {
200
- loggerService.logResponse(response);
224
+ this.loggerService.logResponse(response);
201
225
  });
202
226
  return next();
203
227
  }
204
228
  };
205
229
  LoggerMiddleware = _ts_decorate2([
206
- Injectable2()
230
+ Injectable2(),
231
+ _ts_metadata2("design:type", Function),
232
+ _ts_metadata2("design:paramtypes", [
233
+ typeof LoggerService === "undefined" ? Object : LoggerService
234
+ ])
207
235
  ], LoggerMiddleware);
208
236
 
209
237
  // src/module.ts
@@ -214,7 +242,7 @@ function _ts_decorate3(decorators, target, key, desc) {
214
242
  return c > 3 && r && Object.defineProperty(target, key, r), r;
215
243
  }
216
244
  __name(_ts_decorate3, "_ts_decorate");
217
- var LoggerModule = class {
245
+ var LoggerModule = class extends ConfigurableModuleClass {
218
246
  static {
219
247
  __name(this, "LoggerModule");
220
248
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/module.ts","../src/service.ts","../src/types.ts","../src/message/builder.ts","../src/middleware.ts"],"sourcesContent":["import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from './middleware';\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 { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { LoggerContexts } from './types';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n constructor(context?: string) {\n super(context || LoggerContexts.SYSTEM);\n }\n\n log(message: string, context?: string) {\n const ctx = context?.replace(/^_/, '') || 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","export enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTER_EXPLORER = 'RouterExplorer',\n ROUTES_RESOLVER = 'RoutesResolver',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\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","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 use(request: Request, response: Response, next: NextFunction) {\n const loggerService = new LoggerService();\n\n loggerService.setContext(LoggerContexts.SYSTEM);\n\n loggerService.logRequest(request as any);\n\n response.on('finish', () => {\n loggerService.logResponse(response as any);\n });\n\n return next();\n }\n}\n"],"mappings":"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","names":["Global","Module","ConsoleLogger","Injectable","Scope","LoggerContexts","stringify","MessageBuilder","printQueue","request","response","error","constructor","setRequest","setResponse","setError","makeType","type","push","makeUrl","url","originalUrl","req","config","params","stringify","filter","_","join","makeMethod","method","toUpperCase","makeRequestData","data","body","Object","keys","length","JSON","makeResponseData","makeStatus","status","statusCode","statusText","statusMessage","build","LoggerService","ConsoleLogger","constructor","context","LoggerContexts","SYSTEM","log","message","ctx","replace","ctxBlacklist","INSTANCE_LOADER","ROUTER_EXPLORER","ROUTES_RESOLVER","includes","ctxMessageMap","NEST_FACTORY","NEST_APPLICATION","ctxMessage","console","logRequest","request","loggerMessageBuilder","MessageBuilder","setRequest","makeType","makeMethod","makeUrl","makeRequestData","build","logResponse","response","setResponse","makeStatus","makeResponseData","logRequestError","error","setError","scope","Scope","TRANSIENT","Injectable","LoggerMiddleware","use","request","response","next","loggerService","LoggerService","setContext","LoggerContexts","SYSTEM","logRequest","on","logResponse","LoggerModule","configure","consumer","apply","LoggerMiddleware","forRoutes","providers","LoggerService","exports"]}
1
+ {"version":3,"sources":["../src/module.ts","../src/service.ts","../src/types.ts","../src/message/builder.ts","../src/module-definition.ts","../src/middleware.ts"],"sourcesContent":["import { Global, MiddlewareConsumer, Module } from '@nestjs/common';\nimport { LoggerService } from './service';\nimport { LoggerMiddleware } from './middleware';\nimport { ConfigurableModuleClass } from './module-definition';\n\n@Global()\n@Module({\n providers: [LoggerService],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n configure(consumer: MiddlewareConsumer) {\n consumer.apply(LoggerMiddleware).forRoutes('*');\n }\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { type LoggerConfig, LoggerContexts } from './types';\nimport { Request, Response } from 'express';\nimport { MessageBuilder } from './message/builder';\nimport { MODULE_OPTIONS_TOKEN } from './module-definition';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n constructor(@Inject(MODULE_OPTIONS_TOKEN) private config: LoggerConfig = {}) {\n const ctx = config.context || LoggerContexts.SYSTEM;\n\n super(ctx);\n }\n\n log(message: string, context?: string) {\n const ctx = context?.replace(/^_/, '') || 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(this.config);\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(this.config);\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(this.config);\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","export type LoggerConfig = {\n context?: string;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTER_EXPLORER = 'RouterExplorer',\n ROUTES_RESOLVER = 'RoutesResolver',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n","import { stringify } from 'qs';\nimport { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { Response, Request } from 'express';\nimport { LoggerConfig } from '@src/types';\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(private config: LoggerConfig = {}) {}\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(\n [\n url,\n stringify(params, {\n arrayFormat: this.config.serializer?.array || 'brackets',\n skipNulls: true,\n }),\n ]\n .filter((_) => _)\n .join('?'),\n );\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","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { Injectable, NestMiddleware } from '@nestjs/common';\nimport { Request, Response, NextFunction } from 'express';\nimport { LoggerService } from './service';\n\n@Injectable()\nexport class LoggerMiddleware implements NestMiddleware {\n constructor(private loggerService: LoggerService) {}\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"],"mappings":"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","names":["Global","Module","ConsoleLogger","Inject","Injectable","Scope","LoggerContexts","stringify","MessageBuilder","printQueue","request","response","error","constructor","config","setRequest","setResponse","setError","makeType","type","push","makeUrl","url","originalUrl","req","params","stringify","arrayFormat","serializer","array","skipNulls","filter","_","join","makeMethod","method","toUpperCase","makeRequestData","data","body","Object","keys","length","JSON","makeResponseData","makeStatus","status","statusCode","statusText","statusMessage","build","ConfigurableModuleBuilder","ConfigurableModuleClass","MODULE_OPTIONS_TOKEN","build","LoggerService","ConsoleLogger","constructor","config","ctx","context","LoggerContexts","SYSTEM","log","message","replace","ctxBlacklist","INSTANCE_LOADER","ROUTER_EXPLORER","ROUTES_RESOLVER","includes","ctxMessageMap","NEST_FACTORY","NEST_APPLICATION","ctxMessage","console","logRequest","request","loggerMessageBuilder","MessageBuilder","setRequest","makeType","makeMethod","makeUrl","makeRequestData","build","logResponse","response","setResponse","makeStatus","makeResponseData","logRequestError","error","setError","scope","Scope","TRANSIENT","Injectable","LoggerMiddleware","constructor","loggerService","use","request","response","next","logRequest","on","logResponse","LoggerModule","ConfigurableModuleClass","configure","consumer","apply","LoggerMiddleware","forRoutes","providers","LoggerService","exports"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamnnort/nestjs-logger",
3
- "version": "1.2.7",
3
+ "version": "1.3.2",
4
4
  "description": "Logger module for NestJS - Simple - Informative - Pretty",
5
5
  "keywords": [
6
6
  "logger"