Remix Utils - v9.0.0
    Preparing search index...

    Module Middleware/Request ID

    The Request ID middleware generates a unique ID for each request and stores it in the Router context, this can be useful to log the request and response information and correlate them.

    import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";

    export const [requestIDMiddleware, getRequestID] =
    createRequestIDMiddleware();

    To use it, you need to add it to the middleware array in your app/root.tsx file.

    import { requestIDMiddleware } from "~/middleware/request-id.server";

    export const middleware: Route.MiddlewareFunction[] = [requestIDMiddleware];

    And you can use the getRequestID function in your loaders, actions, and other middleware to get the request ID.

    import { getRequestID } from "~/middleware/request-id.server";

    export async function loader({ request }: Route.LoaderArgs) {
    let requestID = getRequestID();
    // ...
    }

    By default the request ID is a UUID, but you can customize it by passing a function to the createRequestIDMiddleware function.

    import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";

    export const [requestIDMiddleware, getRequestID] =
    createRequestIDMiddleware({
    generator() {
    return Math.random().toString(36).slice(2);
    },
    });

    The middleware also gets the request ID from the X-Request-ID header if it's present, this can be useful to correlate requests between services.

    If you want to use a different header you can pass the header name to the createRequestIDMiddleware function.

    import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";

    export const [requestIDMiddleware, getRequestID] =
    createRequestIDMiddleware({
    header: "X-Correlation-ID",
    });

    Namespaces

    createRequestIDMiddleware

    Functions

    createRequestIDMiddleware