@abcpros/bitcore-wallet-service
Version:
A service for Mutisig HD Bitcoin Wallets
58 lines • 2.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogMiddleware = void 0;
var lodash_1 = __importDefault(require("lodash"));
var logger_1 = require("./logger");
function LogObj(logOut) {
logger_1.logger.info("" + logOut.support + logOut.time + " | " + logOut.ip + " | " + (logOut.userAgent || 'na') + " | " + (logOut.walletId || '-') + " | " + logOut.phase + " | " + logOut.took + " | " + logOut.method + " | " + logOut.status + " | " + logOut.url + " | " + logOut.openConnections + " open");
}
var openConnections = 0;
function LogPhase(req, res, phase) {
var ip = req.header('CF-Connecting-IP') || req.socket.remoteAddress || req.hostname;
var time = req.startTime ? req.startTime : new Date();
var ua = req.headers['user-agent'] || '-';
var ver = req.headers['x-client-version'] || '-';
var support = req.isSupportStaff ? 'SUPPORT:' : '';
var logOut = {
support: support,
time: logger_1.formatTimestamp(time),
walletId: req.walletId,
userAgent: ua + ':' + ver,
ip: lodash_1.default.padStart(ip, 22, ' '),
phase: lodash_1.default.padStart(phase, 8, ' '),
method: lodash_1.default.padStart(req.method, 6, ' '),
status: lodash_1.default.padStart('...', 5, ' '),
url: "" + req.baseUrl + req.url,
took: lodash_1.default.padStart('...', 10, ' '),
openConnections: lodash_1.default.padStart(openConnections.toString(), 6, ' ')
};
if (req.startTime && ['END', 'CLOSED'].includes(phase)) {
var endTime = new Date();
var startTime = req.startTime ? req.startTime : endTime;
var totalTime = endTime.getTime() - startTime.getTime();
var totalTimeMsg = (totalTime + " ms").padStart(10, ' ');
logOut.took = lodash_1.default.padStart(totalTimeMsg, 10, ' ');
logOut.status = lodash_1.default.padStart(res.statusCode.toString(), 5, ' ');
}
LogObj(logOut);
}
function LogMiddleware() {
return function (req, res, next) {
req.startTime = new Date();
openConnections++;
res.on('finish', function () {
openConnections--;
LogPhase(req, res, 'END');
});
res.on('close', function () {
openConnections--;
LogPhase(req, res, 'CLOSED');
});
next();
};
}
exports.LogMiddleware = LogMiddleware;
//# sourceMappingURL=middleware.js.map