UNPKG

remix-utils

Version:

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

66 lines (65 loc) 2.45 kB
/** * The logger middleware let's you log the request and response information to * the console, this can be useful to debug issues with the request and response. * * ```ts * import { unstable_createLoggerMiddleware } from "remix-utils/middleware/logger"; * * export const [loggerMiddleware] = unstable_createLoggerMiddleware(); * ``` * * To use it, you need to add it to the `unstable_middleware` array in your * `app/root.tsx` file. * * ```ts * import { loggerMiddleware } from "~/middleware/logger.server"; * export const unstable_middleware = [loggerMiddleware]; * ``` * * Now, every request and response will be logged to the console. * * The logger middleware can be customized by passing an options object to the * `unstable_createLoggerMiddleware` function. * * ```ts * let [loggerMiddleware] = unstable_createLoggerMiddleware({ * logger: console, * precision: 2, * formatMessage(request, response, time) { * return `${request.method} ${request.url} - ${response.status} - ${time}ms`; * }, * }); * ``` * * The `logger` option let's you pass a custom logger, the `precision` option * let's you set the number of decimal places to use in the response time, and * the `formatMessage` option let's you customize the message that will be * logged. * @author [Sergio Xalambrí](https://sergiodxa.com) * @module Middleware/Logger */ import type { unstable_MiddlewareFunction } from "react-router"; export declare function unstable_createLoggerMiddleware({ logger, precision, formatMessage, }?: unstable_createLoggerMiddleware.Options): unstable_createLoggerMiddleware.ReturnType; export declare namespace unstable_createLoggerMiddleware { interface Options { /** * The logger to use for logging the request and response information. * @default globalThis.console */ logger?: Logger; /** * The number of significant digits to include in the response time. * Must be in the range 1 - 21, inclusive. * @default 3 */ precision?: number; formatMessage?(request: Request, response: Response, responseTime: string): string; } type ReturnType = [unstable_MiddlewareFunction<Response>]; interface Logger { error(...message: string[]): void; warn(...message: string[]): void; info(...message: string[]): void; debug(...message: string[]): void; } }