@iamnnort/nestjs-logger 1.2.6 → 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 +55 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -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;
|
|
@@ -122,15 +130,27 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
122
130
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
123
131
|
}
|
|
124
132
|
__name(_ts_decorate, "_ts_decorate");
|
|
133
|
+
function _ts_metadata(k, v) {
|
|
134
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
135
|
+
}
|
|
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");
|
|
125
143
|
var LoggerService = class extends _common.ConsoleLogger {
|
|
126
144
|
static {
|
|
127
145
|
__name(this, "LoggerService");
|
|
128
146
|
}
|
|
129
|
-
|
|
130
|
-
|
|
147
|
+
|
|
148
|
+
constructor(config = {}) {
|
|
149
|
+
const ctx = config.context || LoggerContexts.SYSTEM;
|
|
150
|
+
super(ctx), this.config = config;
|
|
131
151
|
}
|
|
132
152
|
log(message, context) {
|
|
133
|
-
const ctx = _optionalChain([context, 'optionalAccess',
|
|
153
|
+
const ctx = _optionalChain([context, 'optionalAccess', _73 => _73.replace, 'call', _74 => _74(/^_/, "")]) || this.context || "";
|
|
134
154
|
const ctxBlacklist = [
|
|
135
155
|
LoggerContexts.INSTANCE_LOADER,
|
|
136
156
|
LoggerContexts.ROUTER_EXPLORER,
|
|
@@ -150,17 +170,17 @@ var LoggerService = class extends _common.ConsoleLogger {
|
|
|
150
170
|
return console.log(`[${ctx}] ${message}`);
|
|
151
171
|
}
|
|
152
172
|
logRequest(request) {
|
|
153
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
173
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
154
174
|
const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
|
|
155
175
|
return this.log(message);
|
|
156
176
|
}
|
|
157
177
|
logResponse(response) {
|
|
158
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
178
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
159
179
|
const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
160
180
|
return this.log(message);
|
|
161
181
|
}
|
|
162
182
|
logRequestError(error) {
|
|
163
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
183
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
164
184
|
const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
165
185
|
return this.log(message);
|
|
166
186
|
}
|
|
@@ -168,7 +188,12 @@ var LoggerService = class extends _common.ConsoleLogger {
|
|
|
168
188
|
LoggerService = exports.LoggerService = _ts_decorate([
|
|
169
189
|
_common.Injectable.call(void 0, {
|
|
170
190
|
scope: _common.Scope.TRANSIENT
|
|
171
|
-
})
|
|
191
|
+
}),
|
|
192
|
+
_ts_param(0, _common.Inject.call(void 0, MODULE_OPTIONS_TOKEN)),
|
|
193
|
+
_ts_metadata("design:type", Function),
|
|
194
|
+
_ts_metadata("design:paramtypes", [
|
|
195
|
+
typeof LoggerConfig === "undefined" ? Object : LoggerConfig
|
|
196
|
+
])
|
|
172
197
|
], LoggerService);
|
|
173
198
|
|
|
174
199
|
// src/middleware.ts
|
|
@@ -180,22 +205,32 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
180
205
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
181
206
|
}
|
|
182
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");
|
|
183
212
|
var LoggerMiddleware = class {
|
|
184
213
|
static {
|
|
185
214
|
__name(this, "LoggerMiddleware");
|
|
186
215
|
}
|
|
216
|
+
|
|
217
|
+
constructor(loggerService) {
|
|
218
|
+
this.loggerService = loggerService;
|
|
219
|
+
}
|
|
187
220
|
use(request, response, next) {
|
|
188
|
-
|
|
189
|
-
loggerService.setContext(LoggerContexts.SYSTEM);
|
|
190
|
-
loggerService.logRequest(request);
|
|
221
|
+
this.loggerService.logRequest(request);
|
|
191
222
|
response.on("finish", () => {
|
|
192
|
-
loggerService.logResponse(response);
|
|
223
|
+
this.loggerService.logResponse(response);
|
|
193
224
|
});
|
|
194
225
|
return next();
|
|
195
226
|
}
|
|
196
227
|
};
|
|
197
228
|
LoggerMiddleware = _ts_decorate2([
|
|
198
|
-
_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
|
+
])
|
|
199
234
|
], LoggerMiddleware);
|
|
200
235
|
|
|
201
236
|
// src/module.ts
|
|
@@ -206,7 +241,7 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
206
241
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
207
242
|
}
|
|
208
243
|
__name(_ts_decorate3, "_ts_decorate");
|
|
209
|
-
var LoggerModule = class {
|
|
244
|
+
var LoggerModule = class extends ConfigurableModuleClass {
|
|
210
245
|
static {
|
|
211
246
|
__name(this, "LoggerModule");
|
|
212
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","context","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 setContext(context?: string) {\n super.setContext(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;
|
|
@@ -122,12 +130,24 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
122
130
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
123
131
|
}
|
|
124
132
|
__name(_ts_decorate, "_ts_decorate");
|
|
133
|
+
function _ts_metadata(k, v) {
|
|
134
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
135
|
+
}
|
|
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");
|
|
125
143
|
var LoggerService = class extends ConsoleLogger {
|
|
126
144
|
static {
|
|
127
145
|
__name(this, "LoggerService");
|
|
128
146
|
}
|
|
129
|
-
|
|
130
|
-
|
|
147
|
+
config;
|
|
148
|
+
constructor(config = {}) {
|
|
149
|
+
const ctx = config.context || LoggerContexts.SYSTEM;
|
|
150
|
+
super(ctx), this.config = config;
|
|
131
151
|
}
|
|
132
152
|
log(message, context) {
|
|
133
153
|
const ctx = context?.replace(/^_/, "") || this.context || "";
|
|
@@ -150,17 +170,17 @@ var LoggerService = class extends ConsoleLogger {
|
|
|
150
170
|
return console.log(`[${ctx}] ${message}`);
|
|
151
171
|
}
|
|
152
172
|
logRequest(request) {
|
|
153
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
173
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
154
174
|
const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethod().makeUrl().makeRequestData().build();
|
|
155
175
|
return this.log(message);
|
|
156
176
|
}
|
|
157
177
|
logResponse(response) {
|
|
158
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
178
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
159
179
|
const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
160
180
|
return this.log(message);
|
|
161
181
|
}
|
|
162
182
|
logRequestError(error) {
|
|
163
|
-
const loggerMessageBuilder = new MessageBuilder();
|
|
183
|
+
const loggerMessageBuilder = new MessageBuilder(this.config);
|
|
164
184
|
const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethod().makeUrl().makeRequestData().makeStatus().makeResponseData().build();
|
|
165
185
|
return this.log(message);
|
|
166
186
|
}
|
|
@@ -168,7 +188,12 @@ var LoggerService = class extends ConsoleLogger {
|
|
|
168
188
|
LoggerService = _ts_decorate([
|
|
169
189
|
Injectable({
|
|
170
190
|
scope: Scope.TRANSIENT
|
|
171
|
-
})
|
|
191
|
+
}),
|
|
192
|
+
_ts_param(0, Inject(MODULE_OPTIONS_TOKEN)),
|
|
193
|
+
_ts_metadata("design:type", Function),
|
|
194
|
+
_ts_metadata("design:paramtypes", [
|
|
195
|
+
typeof LoggerConfig === "undefined" ? Object : LoggerConfig
|
|
196
|
+
])
|
|
172
197
|
], LoggerService);
|
|
173
198
|
|
|
174
199
|
// src/middleware.ts
|
|
@@ -180,22 +205,32 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
180
205
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
181
206
|
}
|
|
182
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");
|
|
183
212
|
var LoggerMiddleware = class {
|
|
184
213
|
static {
|
|
185
214
|
__name(this, "LoggerMiddleware");
|
|
186
215
|
}
|
|
216
|
+
loggerService;
|
|
217
|
+
constructor(loggerService) {
|
|
218
|
+
this.loggerService = loggerService;
|
|
219
|
+
}
|
|
187
220
|
use(request, response, next) {
|
|
188
|
-
|
|
189
|
-
loggerService.setContext(LoggerContexts.SYSTEM);
|
|
190
|
-
loggerService.logRequest(request);
|
|
221
|
+
this.loggerService.logRequest(request);
|
|
191
222
|
response.on("finish", () => {
|
|
192
|
-
loggerService.logResponse(response);
|
|
223
|
+
this.loggerService.logResponse(response);
|
|
193
224
|
});
|
|
194
225
|
return next();
|
|
195
226
|
}
|
|
196
227
|
};
|
|
197
228
|
LoggerMiddleware = _ts_decorate2([
|
|
198
|
-
Injectable2()
|
|
229
|
+
Injectable2(),
|
|
230
|
+
_ts_metadata2("design:type", Function),
|
|
231
|
+
_ts_metadata2("design:paramtypes", [
|
|
232
|
+
typeof LoggerService === "undefined" ? Object : LoggerService
|
|
233
|
+
])
|
|
199
234
|
], LoggerMiddleware);
|
|
200
235
|
|
|
201
236
|
// src/module.ts
|
|
@@ -206,7 +241,7 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
206
241
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
207
242
|
}
|
|
208
243
|
__name(_ts_decorate3, "_ts_decorate");
|
|
209
|
-
var LoggerModule = class {
|
|
244
|
+
var LoggerModule = class extends ConfigurableModuleClass {
|
|
210
245
|
static {
|
|
211
246
|
__name(this, "LoggerModule");
|
|
212
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 setContext(context?: string) {\n super.setContext(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","setContext","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"]}
|