nestjs-profiler 1.0.25 → 1.0.27
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 +254 -147
- package/collectors/event-collector.d.ts +18 -0
- package/collectors/event-collector.js +254 -0
- package/collectors/event-collector.js.map +1 -0
- package/common/profiler-options.interface.d.ts +8 -0
- package/common/profiler.model.d.ts +25 -0
- package/controllers/profiler.controller.d.ts +17 -1
- package/controllers/profiler.controller.js +129 -17
- package/controllers/profiler.controller.js.map +1 -1
- package/middleware/profiler-auth.middleware.d.ts +10 -0
- package/middleware/profiler-auth.middleware.js +110 -0
- package/middleware/profiler-auth.middleware.js.map +1 -0
- package/package.json +2 -2
- package/profiler.module.js +103 -1
- package/profiler.module.js.map +1 -1
- package/services/cron-explorer.service.d.ts +48 -0
- package/services/cron-explorer.service.js +260 -0
- package/services/cron-explorer.service.js.map +1 -0
- package/services/entity-explorer.service.d.ts +1 -1
- package/services/entity-explorer.service.js +7 -7
- package/services/entity-explorer.service.js.map +1 -1
- package/services/health.service.js +23 -8
- package/services/health.service.js.map +1 -1
- package/services/profiler.service.d.ts +10 -1
- package/services/profiler.service.js +103 -35
- package/services/profiler.service.js.map +1 -1
- package/services/route-explorer.service.d.ts +23 -1
- package/services/route-explorer.service.js +136 -10
- package/services/route-explorer.service.js.map +1 -1
- package/services/template-builder.service.d.ts +1 -0
- package/services/template-builder.service.js +184 -83
- package/services/template-builder.service.js.map +1 -1
- package/services/view.service.d.ts +1 -1
- package/services/view.service.js +32 -23
- package/services/view.service.js.map +1 -1
- package/views/cron-jobs.html +635 -0
- package/views/events.html +763 -0
- package/views/layout.html +40 -9
- package/views/login.html +277 -0
- package/views/routes.html +405 -37
package/services/view.service.js
CHANGED
|
@@ -60,15 +60,20 @@ let ViewService = class ViewService {
|
|
|
60
60
|
template = this.interpolate(template, data);
|
|
61
61
|
return template;
|
|
62
62
|
}
|
|
63
|
-
renderWithLayout(title, content, activeTab = 'requests') {
|
|
63
|
+
renderWithLayout(title, content, activeTab = 'requests', authEnabled = false) {
|
|
64
64
|
const layoutPath = path.join(this.viewsPath, 'layout.html');
|
|
65
65
|
let layout = this.loadTemplate(layoutPath);
|
|
66
|
-
const active = (tab) => activeTab === tab
|
|
67
|
-
|
|
66
|
+
const active = (tab) => activeTab === tab
|
|
67
|
+
? 'bg-indigo-600 text-white'
|
|
68
|
+
: 'text-slate-300 hover:bg-slate-800 hover:text-white';
|
|
69
|
+
const activeIcon = (tab) => activeTab === tab
|
|
70
|
+
? 'text-indigo-300'
|
|
71
|
+
: 'text-slate-400 group-hover:text-white';
|
|
68
72
|
const data = {
|
|
69
73
|
title,
|
|
70
74
|
content,
|
|
71
75
|
activeTab,
|
|
76
|
+
authEnabled: authEnabled ? 'true' : 'false',
|
|
72
77
|
activeClass: 'bg-indigo-600 text-white',
|
|
73
78
|
inactiveClass: 'text-slate-300 hover:bg-slate-800 hover:text-white',
|
|
74
79
|
summaryActive: active('summary'),
|
|
@@ -82,6 +87,8 @@ let ViewService = class ViewService {
|
|
|
82
87
|
healthActive: active('health'),
|
|
83
88
|
liveLogsActive: active('live-logs'),
|
|
84
89
|
codeQualityActive: active('code-quality'),
|
|
90
|
+
eventsActive: active('events'),
|
|
91
|
+
cronJobsActive: active('cron-jobs'),
|
|
85
92
|
summaryIconClass: activeIcon('summary'),
|
|
86
93
|
requestsIconClass: activeIcon('requests'),
|
|
87
94
|
queriesIconClass: activeIcon('queries'),
|
|
@@ -89,10 +96,12 @@ let ViewService = class ViewService {
|
|
|
89
96
|
entitiesIconClass: activeIcon('entities'),
|
|
90
97
|
routesIconClass: activeIcon('routes'),
|
|
91
98
|
cacheIconClass: activeIcon('cache'),
|
|
99
|
+
eventsIconClass: activeIcon('events'),
|
|
92
100
|
httpCallsIconClass: activeIcon('http-calls'),
|
|
93
101
|
healthIconClass: activeIcon('health'),
|
|
94
102
|
liveLogsIconClass: activeIcon('live-logs'),
|
|
95
103
|
codeQualityIconClass: activeIcon('code-quality'),
|
|
104
|
+
cronJobsIconClass: activeIcon('cron-jobs'),
|
|
96
105
|
};
|
|
97
106
|
layout = this.interpolate(layout, data);
|
|
98
107
|
return layout;
|
|
@@ -120,7 +129,7 @@ let ViewService = class ViewService {
|
|
|
120
129
|
'<': '<',
|
|
121
130
|
'>': '>',
|
|
122
131
|
'"': '"',
|
|
123
|
-
"'": '''
|
|
132
|
+
"'": ''',
|
|
124
133
|
};
|
|
125
134
|
return String(text).replace(/[&<>"']/g, (m) => map[m]);
|
|
126
135
|
}
|
|
@@ -128,20 +137,20 @@ let ViewService = class ViewService {
|
|
|
128
137
|
const seconds = Math.floor((Date.now() - timestamp) / 1000);
|
|
129
138
|
let interval = seconds / 31536000;
|
|
130
139
|
if (interval > 1)
|
|
131
|
-
return Math.floor(interval) +
|
|
140
|
+
return Math.floor(interval) + 'y ago';
|
|
132
141
|
interval = seconds / 2592000;
|
|
133
142
|
if (interval > 1)
|
|
134
|
-
return Math.floor(interval) +
|
|
143
|
+
return Math.floor(interval) + 'mo ago';
|
|
135
144
|
interval = seconds / 86400;
|
|
136
145
|
if (interval > 1)
|
|
137
|
-
return Math.floor(interval) +
|
|
146
|
+
return Math.floor(interval) + 'd ago';
|
|
138
147
|
interval = seconds / 3600;
|
|
139
148
|
if (interval > 1)
|
|
140
|
-
return Math.floor(interval) +
|
|
149
|
+
return Math.floor(interval) + 'h ago';
|
|
141
150
|
interval = seconds / 60;
|
|
142
151
|
if (interval > 1)
|
|
143
|
-
return Math.floor(interval) +
|
|
144
|
-
return Math.floor(seconds) +
|
|
152
|
+
return Math.floor(interval) + 'm ago';
|
|
153
|
+
return Math.floor(seconds) + 's ago';
|
|
145
154
|
}
|
|
146
155
|
getStatusClass(statusCode) {
|
|
147
156
|
if (statusCode >= 500)
|
|
@@ -154,11 +163,11 @@ let ViewService = class ViewService {
|
|
|
154
163
|
}
|
|
155
164
|
getMethodBadge(method) {
|
|
156
165
|
const badges = {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
166
|
+
GET: 'bg-blue-100 text-blue-800',
|
|
167
|
+
POST: 'bg-green-100 text-green-800',
|
|
168
|
+
PUT: 'bg-orange-100 text-orange-800',
|
|
169
|
+
PATCH: 'bg-yellow-100 text-yellow-800',
|
|
170
|
+
DELETE: 'bg-red-100 text-red-800',
|
|
162
171
|
};
|
|
163
172
|
const classes = badges[method] || 'bg-gray-100 text-gray-800';
|
|
164
173
|
return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full ${classes}">${method}</span>`;
|
|
@@ -181,20 +190,20 @@ let ViewService = class ViewService {
|
|
|
181
190
|
}
|
|
182
191
|
getCacheOperationBadge(op) {
|
|
183
192
|
const badges = {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
193
|
+
get: 'bg-blue-100 text-blue-800',
|
|
194
|
+
set: 'bg-purple-100 text-purple-800',
|
|
195
|
+
del: 'bg-red-100 text-red-800',
|
|
196
|
+
reset: 'bg-orange-100 text-orange-800',
|
|
188
197
|
};
|
|
189
198
|
const classes = badges[op] || 'bg-gray-100 text-gray-800';
|
|
190
199
|
return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full uppercase ${classes}">${op}</span>`;
|
|
191
200
|
}
|
|
192
201
|
getCacheResultBadge(result) {
|
|
193
202
|
const badges = {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
203
|
+
hit: 'bg-green-100 text-green-800',
|
|
204
|
+
miss: 'bg-red-100 text-red-800',
|
|
205
|
+
success: 'bg-green-100 text-green-800',
|
|
206
|
+
fail: 'bg-red-100 text-red-800',
|
|
198
207
|
};
|
|
199
208
|
const classes = badges[result] || 'bg-gray-100 text-gray-800';
|
|
200
209
|
return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full uppercase ${classes}">${result}</span>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/view.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAGtB,IAAM,WAAW,GAAjB,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"view.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/view.service.ts"],"names":[],"mappings":"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"}
|