UNPKG

@abcpros/bitcore-wallet-service

Version:
58 lines 2.58 kB
"use strict"; 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