legendaryjs
Version:
LegendaryJS – The ultimate backend framework for speed, power, and simplicity.
43 lines (36 loc) • 947 B
JavaScript
let stats = {
requests: 0,
endpoints: {},
memory: {},
activeUsers: new Set()
};
function devMiddleware(req, res, next) {
const start = Date.now();
stats.requests++;
res.on('finish', () => {
const time = Date.now() - start;
const key = `${req.method} ${req.originalUrl}`;
if (!stats.endpoints[key]) {
stats.endpoints[key] = { count: 0, lastTime: 0 };
}
stats.endpoints[key].count++;
stats.endpoints[key].lastTime = time;
});
next();
}
function socketTrack(socket) {
stats.activeUsers.add(socket.id);
socket.on('disconnect', () => {
stats.activeUsers.delete(socket.id);
});
}
function getStats() {
stats.memory = process.memoryUsage();
return {
requests: stats.requests,
endpoints: stats.endpoints,
memory: stats.memory,
activeUsers: stats.activeUsers.size
};
}
module.exports = { devMiddleware, socketTrack, getStats };