@iamnnort/nestjs-logger 1.2.7 → 1.3.1
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 +47 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -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,9 @@ 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
|
+
})
|
|
59
63
|
].filter((_) => _).join("?"));
|
|
60
64
|
} else {
|
|
61
65
|
this.printQueue.push(url);
|
|
@@ -64,14 +68,14 @@ var MessageBuilder = class {
|
|
|
64
68
|
return this;
|
|
65
69
|
}
|
|
66
70
|
makeMethod() {
|
|
67
|
-
const method = _optionalChain([this, 'access',
|
|
71
|
+
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
72
|
if (method) {
|
|
69
73
|
this.printQueue.push(method.toUpperCase());
|
|
70
74
|
}
|
|
71
75
|
return this;
|
|
72
76
|
}
|
|
73
77
|
makeRequestData() {
|
|
74
|
-
const data = _optionalChain([this, 'access',
|
|
78
|
+
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
79
|
if (data) {
|
|
76
80
|
if (typeof data === "string") {
|
|
77
81
|
this.printQueue.push(data);
|
|
@@ -85,7 +89,7 @@ var MessageBuilder = class {
|
|
|
85
89
|
return this;
|
|
86
90
|
}
|
|
87
91
|
makeResponseData() {
|
|
88
|
-
const data = _optionalChain([this, 'access',
|
|
92
|
+
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
93
|
if (data) {
|
|
90
94
|
if (typeof data === "string") {
|
|
91
95
|
this.printQueue.push(data);
|
|
@@ -99,10 +103,10 @@ var MessageBuilder = class {
|
|
|
99
103
|
return this;
|
|
100
104
|
}
|
|
101
105
|
makeStatus() {
|
|
102
|
-
const status = _optionalChain([this, 'access',
|
|
106
|
+
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
107
|
if (status) {
|
|
104
108
|
this.printQueue.push(`${status}`);
|
|
105
|
-
const statusText = _optionalChain([this, 'access',
|
|
109
|
+
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
110
|
if (statusText) {
|
|
107
111
|
this.printQueue.push(statusText);
|
|
108
112
|
}
|
|
@@ -114,6 +118,10 @@ var MessageBuilder = class {
|
|
|
114
118
|
}
|
|
115
119
|
};
|
|
116
120
|
|
|
121
|
+
// src/module-definition.ts
|
|
122
|
+
|
|
123
|
+
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new (0, _common.ConfigurableModuleBuilder)().build();
|
|
124
|
+
|
|
117
125
|
// src/service.ts
|
|
118
126
|
function _ts_decorate(decorators, target, key, desc) {
|
|
119
127
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -126,15 +134,23 @@ function _ts_metadata(k, v) {
|
|
|
126
134
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
127
135
|
}
|
|
128
136
|
__name(_ts_metadata, "_ts_metadata");
|
|
137
|
+
function _ts_param(paramIndex, decorator) {
|
|
138
|
+
return function(target, key) {
|
|
139
|
+
decorator(target, key, paramIndex);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
__name(_ts_param, "_ts_param");
|
|
129
143
|
var LoggerService = class extends _common.ConsoleLogger {
|
|
130
144
|
static {
|
|
131
145
|
__name(this, "LoggerService");
|
|
132
146
|
}
|
|
133
|
-
|
|
134
|
-
|
|
147
|
+
|
|
148
|
+
constructor(config = {}) {
|
|
149
|
+
const ctx = config.context || LoggerContexts.SYSTEM;
|
|
150
|
+
super(ctx), this.config = config;
|
|
135
151
|
}
|
|
136
152
|
log(message, context) {
|
|
137
|
-
const ctx = _optionalChain([context, 'optionalAccess',
|
|
153
|
+
const ctx = _optionalChain([context, 'optionalAccess', _73 => _73.replace, 'call', _74 => _74(/^_/, "")]) || this.context || "";
|
|
138
154
|
const ctxBlacklist = [
|
|
139
155
|
LoggerContexts.INSTANCE_LOADER,
|
|
140
156
|
LoggerContexts.ROUTER_EXPLORER,
|
|
@@ -154,17 +170,17 @@ var LoggerService = class extends _common.ConsoleLogger {
|
|
|
154
170
|
return console.log(`[${ctx}] ${message}`);
|
|
155
171
|
}
|
|
156
172
|
logRequest(request) {
|
|
157
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
173
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
158
174
|
const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
|
|
159
175
|
return this.log(message);
|
|
160
176
|
}
|
|
161
177
|
logResponse(response) {
|
|
162
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
178
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
163
179
|
const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
164
180
|
return this.log(message);
|
|
165
181
|
}
|
|
166
182
|
logRequestError(error) {
|
|
167
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
183
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
168
184
|
const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
169
185
|
return this.log(message);
|
|
170
186
|
}
|
|
@@ -173,9 +189,10 @@ LoggerService = exports.LoggerService = _ts_decorate([
|
|
|
173
189
|
_common.Injectable.call(void 0, {
|
|
174
190
|
scope: _common.Scope.TRANSIENT
|
|
175
191
|
}),
|
|
192
|
+
_ts_param(0, _common.Inject.call(void 0, MODULE_OPTIONS_TOKEN)),
|
|
176
193
|
_ts_metadata("design:type", Function),
|
|
177
194
|
_ts_metadata("design:paramtypes", [
|
|
178
|
-
|
|
195
|
+
typeof LoggerConfig === "undefined" ? Object : LoggerConfig
|
|
179
196
|
])
|
|
180
197
|
], LoggerService);
|
|
181
198
|
|
|
@@ -188,22 +205,32 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
188
205
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
189
206
|
}
|
|
190
207
|
__name(_ts_decorate2, "_ts_decorate");
|
|
208
|
+
function _ts_metadata2(k, v) {
|
|
209
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
210
|
+
}
|
|
211
|
+
__name(_ts_metadata2, "_ts_metadata");
|
|
191
212
|
var LoggerMiddleware = class {
|
|
192
213
|
static {
|
|
193
214
|
__name(this, "LoggerMiddleware");
|
|
194
215
|
}
|
|
216
|
+
|
|
217
|
+
constructor(loggerService) {
|
|
218
|
+
this.loggerService = loggerService;
|
|
219
|
+
}
|
|
195
220
|
use(request, response, next) {
|
|
196
|
-
|
|
197
|
-
loggerService.setContext(LoggerContexts.SYSTEM);
|
|
198
|
-
loggerService.logRequest(request);
|
|
221
|
+
this.loggerService.logRequest(request);
|
|
199
222
|
response.on("finish", () => {
|
|
200
|
-
loggerService.logResponse(response);
|
|
223
|
+
this.loggerService.logResponse(response);
|
|
201
224
|
});
|
|
202
225
|
return next();
|
|
203
226
|
}
|
|
204
227
|
};
|
|
205
228
|
LoggerMiddleware = _ts_decorate2([
|
|
206
|
-
_common.Injectable.call(void 0, )
|
|
229
|
+
_common.Injectable.call(void 0, ),
|
|
230
|
+
_ts_metadata2("design:type", Function),
|
|
231
|
+
_ts_metadata2("design:paramtypes", [
|
|
232
|
+
typeof LoggerService === "undefined" ? Object : LoggerService
|
|
233
|
+
])
|
|
207
234
|
], LoggerMiddleware);
|
|
208
235
|
|
|
209
236
|
// src/module.ts
|
|
@@ -214,7 +241,7 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
214
241
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
215
242
|
}
|
|
216
243
|
__name(_ts_decorate3, "_ts_decorate");
|
|
217
|
-
var LoggerModule = class {
|
|
244
|
+
var LoggerModule = class extends ConfigurableModuleClass {
|
|
218
245
|
static {
|
|
219
246
|
__name(this, "LoggerModule");
|
|
220
247
|
}
|
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","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 }),\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,9 @@ 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
|
+
})
|
|
59
63
|
].filter((_) => _).join("?"));
|
|
60
64
|
} else {
|
|
61
65
|
this.printQueue.push(url);
|
|
@@ -114,6 +118,10 @@ var MessageBuilder = class {
|
|
|
114
118
|
}
|
|
115
119
|
};
|
|
116
120
|
|
|
121
|
+
// src/module-definition.ts
|
|
122
|
+
import { ConfigurableModuleBuilder } from "@nestjs/common";
|
|
123
|
+
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder().build();
|
|
124
|
+
|
|
117
125
|
// src/service.ts
|
|
118
126
|
function _ts_decorate(decorators, target, key, desc) {
|
|
119
127
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -126,12 +134,20 @@ function _ts_metadata(k, v) {
|
|
|
126
134
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
127
135
|
}
|
|
128
136
|
__name(_ts_metadata, "_ts_metadata");
|
|
137
|
+
function _ts_param(paramIndex, decorator) {
|
|
138
|
+
return function(target, key) {
|
|
139
|
+
decorator(target, key, paramIndex);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
__name(_ts_param, "_ts_param");
|
|
129
143
|
var LoggerService = class extends ConsoleLogger {
|
|
130
144
|
static {
|
|
131
145
|
__name(this, "LoggerService");
|
|
132
146
|
}
|
|
133
|
-
|
|
134
|
-
|
|
147
|
+
config;
|
|
148
|
+
constructor(config = {}) {
|
|
149
|
+
const ctx = config.context || LoggerContexts.SYSTEM;
|
|
150
|
+
super(ctx), this.config = config;
|
|
135
151
|
}
|
|
136
152
|
log(message, context) {
|
|
137
153
|
const ctx = context?.replace(/^_/, "") || this.context || "";
|
|
@@ -154,17 +170,17 @@ var LoggerService = class extends ConsoleLogger {
|
|
|
154
170
|
return console.log(`[${ctx}] ${message}`);
|
|
155
171
|
}
|
|
156
172
|
logRequest(request) {
|
|
157
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
173
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
158
174
|
const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
|
|
159
175
|
return this.log(message);
|
|
160
176
|
}
|
|
161
177
|
logResponse(response) {
|
|
162
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
178
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
163
179
|
const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
164
180
|
return this.log(message);
|
|
165
181
|
}
|
|
166
182
|
logRequestError(error) {
|
|
167
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
183
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
168
184
|
const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
169
185
|
return this.log(message);
|
|
170
186
|
}
|
|
@@ -173,9 +189,10 @@ LoggerService = _ts_decorate([
|
|
|
173
189
|
Injectable({
|
|
174
190
|
scope: Scope.TRANSIENT
|
|
175
191
|
}),
|
|
192
|
+
_ts_param(0, Inject(MODULE_OPTIONS_TOKEN)),
|
|
176
193
|
_ts_metadata("design:type", Function),
|
|
177
194
|
_ts_metadata("design:paramtypes", [
|
|
178
|
-
|
|
195
|
+
typeof LoggerConfig === "undefined" ? Object : LoggerConfig
|
|
179
196
|
])
|
|
180
197
|
], LoggerService);
|
|
181
198
|
|
|
@@ -188,22 +205,32 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
188
205
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
189
206
|
}
|
|
190
207
|
__name(_ts_decorate2, "_ts_decorate");
|
|
208
|
+
function _ts_metadata2(k, v) {
|
|
209
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
210
|
+
}
|
|
211
|
+
__name(_ts_metadata2, "_ts_metadata");
|
|
191
212
|
var LoggerMiddleware = class {
|
|
192
213
|
static {
|
|
193
214
|
__name(this, "LoggerMiddleware");
|
|
194
215
|
}
|
|
216
|
+
loggerService;
|
|
217
|
+
constructor(loggerService) {
|
|
218
|
+
this.loggerService = loggerService;
|
|
219
|
+
}
|
|
195
220
|
use(request, response, next) {
|
|
196
|
-
|
|
197
|
-
loggerService.setContext(LoggerContexts.SYSTEM);
|
|
198
|
-
loggerService.logRequest(request);
|
|
221
|
+
this.loggerService.logRequest(request);
|
|
199
222
|
response.on("finish", () => {
|
|
200
|
-
loggerService.logResponse(response);
|
|
223
|
+
this.loggerService.logResponse(response);
|
|
201
224
|
});
|
|
202
225
|
return next();
|
|
203
226
|
}
|
|
204
227
|
};
|
|
205
228
|
LoggerMiddleware = _ts_decorate2([
|
|
206
|
-
Injectable2()
|
|
229
|
+
Injectable2(),
|
|
230
|
+
_ts_metadata2("design:type", Function),
|
|
231
|
+
_ts_metadata2("design:paramtypes", [
|
|
232
|
+
typeof LoggerService === "undefined" ? Object : LoggerService
|
|
233
|
+
])
|
|
207
234
|
], LoggerMiddleware);
|
|
208
235
|
|
|
209
236
|
// src/module.ts
|
|
@@ -214,7 +241,7 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
214
241
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
215
242
|
}
|
|
216
243
|
__name(_ts_decorate3, "_ts_decorate");
|
|
217
|
-
var LoggerModule = class {
|
|
244
|
+
var LoggerModule = class extends ConfigurableModuleClass {
|
|
218
245
|
static {
|
|
219
246
|
__name(this, "LoggerModule");
|
|
220
247
|
}
|
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 }),\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","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"]}
|