UNPKG

remix-utils

Version:

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

37 lines (36 loc) 1.62 kB
import { TimingCollector } from "@edgefirst-dev/server-timing"; import type { unstable_MiddlewareFunction, unstable_RouterContextProvider } from "react-router"; /** * Create a middleware that gives you access to a `TimingCollector` instance, * used to collect server timing metrics and report them in the response * headers. * * The reported metrics will be available in the browser's developer tools. * * @returns A tuple with the middleware function and a function to get the * `TimingCollector` instance from the context. * @example * import { unstable_createServerTimingMiddleware } from "remix-utils/middleware/server-timing"; * * const [serverTimingMiddleware, getTimingCollector] = unstable_createServerTimingMiddleware(); * * export const unstable_middleware = [serverTimingMiddleware]; * * export async function loader({ context }: Route.LoaderArgs) { * let collector = getTimingCollector(context); * return await collector.measure("name", "optional description", () => { * return getData(); * }); * } */ export declare function unstable_createServerTimingMiddleware(): unstable_createServerTimingMiddleware.ReturnType; export declare namespace unstable_createServerTimingMiddleware { /** * The return type of `unstable_createServerTimingMiddleware`. */ type ReturnType = [ unstable_MiddlewareFunction<Response>, (context: unstable_RouterContextProvider) => TimingCollector ]; } export declare const serverTimingMiddleware: unstable_MiddlewareFunction<Response>, getTimingCollector: (context: unstable_RouterContextProvider) => TimingCollector;