webserv
Version:
a quick, flexible, fully typed development server
40 lines • 1.67 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "../log", "../util/request"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const log_1 = require("../log");
const request_1 = require("../util/request");
exports.log = (options) => {
const requestLogger = exports.logRequest(options);
const responseLogger = exports.logResponse(options);
return (request, response) => {
requestLogger(request, response);
responseLogger(request, response);
};
};
exports.logResponse = ({ level = 'info', logIncomplete = false }) => {
return (request, response) => {
if (response.finished || logIncomplete) {
log_1.log[level](`[${request.method} ${response.finished ? response.statusCode : 'Not finished'}]`);
}
};
};
exports.logRequest = ({ level = 'info', logBody = false }) => {
return (request) => {
const { method, url } = request;
log_1.log[level](`[${method}] ${url}`);
if (logBody && method !== 'GET') {
const { body } = request_1.getParams(request, 'body');
body && log_1.log[level](`body: ${JSON.stringify(body)}`);
}
};
};
});
//# sourceMappingURL=log.processor.js.map