@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 +3 -1
- package/dist/index.d.mts +23 -13
- package/dist/index.d.ts +23 -13
- package/dist/index.js +48 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -15
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,26 +1,36 @@
|
|
|
1
|
-
import
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
-
|
|
134
|
-
|
|
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',
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
134
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -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":";;;;AAAA,SAASA,QAA4BC,cAAc;;;ACAnD,SAASC,eAAeC,QAAQC,YAAYC,aAAa;;;ACOzD,IAAYC,iBAAAA,yBAAAA,iBAAAA;;;;;;;SAAAA;;;;ACPZ,SAASC,iBAAiB;AAKnB,IAAMC,iBAAN,MAAMA;EALb,OAKaA;;;;EACHC;EAEAC;EACAC;EACAC;EAERC,YAAoBC,SAAuB,CAAC,GAAG;SAA3BA,SAAAA;SANZL,aAAuB,CAAA;EAMiB;EAEhDM,WAAWL,SAA+C;AACxD,SAAKA,UAAUA;AAEf,WAAO;EACT;EAEAM,YAAYL,UAAoC;AAC9C,SAAKA,WAAWA;AAEhB,WAAO;EACT;EAEAM,SAASL,OAAmB;AAC1B,SAAKA,QAAQA;AAEb,WAAO;EACT;EAEAM,SAASC,MAAc;AACrB,SAAKV,WAAWW,KAAK,IAAID,IAAAA,GAAO;AAEhC,WAAO;EACT;EAEAE,UAAU;AACR,UAAMC,MACJ,KAAKZ,SAASa,eACd,KAAKZ,UAAUa,KAAKD,eACpB,KAAKb,SAASY,OACd,KAAKX,UAAUG,QAAQQ,OACvB,KAAKV,OAAOD,UAAUG,OAAOQ;AAE/B,UAAMG,SAAS,KAAKf,SAASe,UAAU,KAAKd,UAAUG,QAAQW,UAAU,KAAKb,OAAOD,UAAUG,OAAOW;AAErG,QAAIH,KAAK;AACP,UAAIG,QAAQ;AACV,eAAOA,OAAO,GAAA;AACd,aAAKhB,WAAWW,KACd;UACEE;UACAI,UAAUD,QAAQ;YAChBE,aAAa,KAAKb,OAAOc,YAAYC,SAAS;YAC9CC,WAAW;UACb,CAAA;UAECC,OAAO,CAACC,MAAMA,CAAAA,EACdC,KAAK,GAAA,CAAA;MAEZ,OAAO;AACL,aAAKxB,WAAWW,KAAKE,GAAAA;MACvB;IACF;AAEA,WAAO;EACT;EAEAY,aAAa;AACX,UAAMC,SACJ,KAAKzB,SAASyB,UACd,KAAKxB,UAAUa,KAAKW,UACpB,KAAKxB,UAAUG,QAAQqB,UACvB,KAAKvB,OAAOD,UAAUG,OAAOqB;AAE/B,QAAIA,QAAQ;AACV,WAAK1B,WAAWW,KAAKe,OAAOC,YAAW,CAAA;IACzC;AAEA,WAAO;EACT;EAEAC,kBAAkB;AAChB,UAAMC,OACJ,KAAK5B,SAAS6B,QACd,KAAK5B,UAAUa,KAAKe,QACpB,KAAK7B,SAAS4B,QACd,KAAK3B,UAAUG,QAAQwB,QACvB,KAAK1B,OAAOD,UAAUG,OAAOwB;AAE/B,QAAIA,MAAM;AACR,UAAI,OAAOA,SAAS,UAAU;AAC5B,aAAK7B,WAAWW,KAAKkB,IAAAA;AAErB,eAAO;MACT;AAEA,UAAIE,OAAOC,KAAKH,IAAAA,EAAMI,QAAQ;AAC5B,aAAKjC,WAAWW,KAAKuB,KAAKjB,UAAUY,IAAAA,CAAAA;AAEpC,eAAO;MACT;IACF;AAEA,WAAO;EACT;EAEAM,mBAAmB;AACjB,UAAMN,OAAO,KAAK3B,UAAU2B,QAAQ,KAAK1B,OAAOD,UAAU2B;AAE1D,QAAIA,MAAM;AACR,UAAI,OAAOA,SAAS,UAAU;AAC5B,aAAK7B,WAAWW,KAAKkB,IAAAA;AAErB,eAAO;MACT;AAEA,UAAIE,OAAOC,KAAKH,IAAAA,EAAMI,QAAQ;AAC5B,aAAKjC,WAAWW,KAAKuB,KAAKjB,UAAUY,IAAAA,CAAAA;AAEpC,eAAO;MACT;IACF;AAEA,WAAO;EACT;EAEAO,aAAa;AACX,UAAMC,SAAS,KAAKnC,UAAUoC,cAAc,KAAKpC,UAAUmC,UAAU,KAAKlC,OAAOD,UAAUmC;AAE3F,QAAIA,QAAQ;AACV,WAAKrC,WAAWW,KAAK,GAAG0B,MAAAA,EAAQ;AAEhC,YAAME,aAAa,KAAKrC,UAAUsC,iBAAiB,KAAKtC,UAAUqC,cAAc,KAAKpC,OAAOD,UAAUqC;AAEtG,UAAIA,YAAY;AACd,aAAKvC,WAAWW,KAAK4B,UAAAA;MACvB;IACF;AAEA,WAAO;EACT;EAEAE,QAAQ;AACN,WAAO,KAAKzC,WAAWwB,KAAK,GAAA;EAC9B;AACF;;;ACpJA,SAASkB,iCAAiC;AAGnC,IAAM,EAAEC,yBAAyBC,qBAAoB,IAAK,IAAIF,0BAAAA,EAA0CG,MAAK;;;;;;;;;;;;;;;;;;;;AHO7G,IAAMC,gBAAN,cAA4BC,cAAAA;SAAAA;;;;EACjCC,YAAkDC,SAAuB,CAAC,GAAG;AAC3E,UAAMC,MAAMD,OAAOE,WAAWC,eAAeC;AAE7C,UAAMH,GAAAA,GAAAA,KAH0CD,SAAAA;EAIlD;EAEAK,IAAIC,SAAiBJ,SAAkB;AACrC,UAAMD,MAAMC,SAASK,QAAQ,MAAM,EAAA,KAAO,KAAKL,WAAW;AAE1D,UAAMM,eAAyB;MAC7BL,eAAeM;MACfN,eAAeO;MACfP,eAAeQ;;AAGjB,QAAIH,aAAaI,SAASX,GAAAA,GAAM;AAC9B;IACF;AAEA,UAAMY,gBAAwC;MAC5C,CAACV,eAAeW,YAAY,GAAG;MAC/B,CAACX,eAAeY,gBAAgB,GAAG;IACrC;AAEA,UAAMC,aAAaH,cAAcZ,GAAAA;AAEjC,QAAIe,YAAY;AACd,aAAOC,QAAQZ,IAAI,IAAIF,eAAeC,MAAM,KAAKY,UAAAA,EAAY;IAC/D;AAEA,WAAOC,QAAQZ,IAAI,IAAIJ,GAAAA,KAAQK,OAAAA,EAAS;EAC1C;EAEAY,WAAWC,SAA+C;AACxD,UAAMC,uBAAuB,IAAIC,eAAe,KAAKrB,MAAM;AAE3D,UAAMM,UAAUc,qBACbE,WAAWH,OAAAA,EACXI,SAAS,SAAA,EACTC,WAAU,EACVC,QAAO,EACPC,gBAAe,EACfC,MAAK;AAER,WAAO,KAAKtB,IAAIC,OAAAA;EAClB;EAEAsB,YAAYC,UAAoC;AAC9C,UAAMT,uBAAuB,IAAIC,eAAe,KAAKrB,MAAM;AAE3D,UAAMM,UAAUc,qBACbU,YAAYD,QAAAA,EACZN,SAAS,UAAA,EACTC,WAAU,EACVC,QAAO,EACPC,gBAAe,EACfK,WAAU,EACVC,iBAAgB,EAChBL,MAAK;AAER,WAAO,KAAKtB,IAAIC,OAAAA;EAClB;EAEA2B,gBAAgBC,OAAmB;AACjC,UAAMd,uBAAuB,IAAIC,eAAe,KAAKrB,MAAM;AAE3D,UAAMM,UAAUc,qBACbe,SAASD,KAAAA,EACTX,SAAS,OAAA,EACTC,WAAU,EACVC,QAAO,EACPC,gBAAe,EACfK,WAAU,EACVC,iBAAgB,EAChBL,MAAK;AAER,WAAO,KAAKtB,IAAIC,OAAAA;EAClB;AACF;;;IAjFE8B,OAAOC,MAAMC;;;;;;;;;;AIRf,SAASC,cAAAA,mBAAkC;;;;;;;;;;;;AAKpC,IAAMC,mBAAN,MAAMA;SAAAA;;;;EACXC,YAAoBC,eAA8B;SAA9BA,gBAAAA;EAA+B;EAEnDC,IAAIC,SAAkBC,UAAoBC,MAAoB;AAC5D,SAAKJ,cAAcK,WAAWH,OAAAA;AAE9BC,aAASG,GAAG,UAAU,MAAA;AACpB,WAAKN,cAAcO,YAAYJ,QAAAA;IACjC,CAAA;AAEA,WAAOC,KAAAA;EACT;AACF;;;;;;;;;;;;;;;;;ALPO,IAAMI,eAAN,cAA2BC,wBAAAA;SAAAA;;;EAChCC,UAAUC,UAA8B;AACtCA,aAASC,MAAMC,gBAAAA,EAAkBC,UAAU,GAAA;EAC7C;AACF;;;;IAPEC,WAAW;MAACC;;IACZC,SAAS;MAACD;;;;","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"]}
|