remix-utils
Version:
This package contains simple utility functions to use with [React Router](https://reactrouter.com/).
37 lines • 1.51 kB
JavaScript
function defaultFormatMessage(request, response, responseTime) {
let { method } = request;
let url = new URL(request.url);
let status = response.status;
if (status >= 300 && status < 400) {
let target = response.headers.get("location");
return `${method} ${url.pathname}${url.search} → ${target}`;
}
return `${method} ${url.pathname}${url.search} ${status} ${responseTime} ms`;
}
export function unstable_createLoggerMiddleware({ logger = console, precision = 3, formatMessage = defaultFormatMessage, } = {}) {
if (precision < 0) {
throw new RangeError("Precision must be a positive number.");
}
return [
async function loggerMiddleware({ request }, next) {
let start = performance.now();
let response = await next();
let responseTime = (performance.now() - start).toPrecision(precision);
let status = response.status;
if (status >= 500) {
logger.error(formatMessage(request, response, responseTime));
}
else if (status >= 400) {
logger.warn(formatMessage(request, response, responseTime));
}
else if (status >= 300) {
logger.debug(formatMessage(request, response, responseTime));
}
else {
logger.info(formatMessage(request, response, responseTime));
}
return response;
},
];
}
//# sourceMappingURL=logger.js.map