UNPKG

remix-utils

Version:

This package contains simple utility functions to use with [React Router](https://reactrouter.com/).

37 lines 1.51 kB
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