UNPKG

@mcansh/remix-fastify

Version:

Fastify server request handler for Remix and React Router

35 lines (32 loc) 1.42 kB
import { createPlugin, createRequest, sendResponse } from "./plugins-CszfyhUI.js"; import fp from "fastify-plugin"; import { createReadableStreamFromReadable } from "@react-router/node"; import { createRequestHandler } from "react-router"; //#region src/servers/react-router.ts /** * Returns a request handler for Fastify that serves the response using Remix. */ function createReactRouterRequestHandler({ build, getLoadContext, mode = process.env.NODE_ENV }) { let handleRequest = createRequestHandler(build, mode); return async (request, reply) => { let remixRequest = createReactRouterRequest(request, reply); let loadContext = await getLoadContext?.(request, reply); let response = await handleRequest(remixRequest, loadContext); return sendResponse(reply, response); }; } function createReactRouterRequest(request, reply) { return createRequest(request, reply, createReadableStreamFromReadable); } //#endregion //#region src/plugins/react-router.ts const reactRouterFastify = fp(async (fastify, options) => { let plugin = createPlugin(fastify, options, "virtual:react-router/server-build", createReactRouterRequestHandler); return plugin(); }, { name: "@mcansh/remix-fastify", fastify: "^3.29.0 || ^4.0.0 || ^5.0.0" }); //#endregion export { createReactRouterRequestHandler, createReactRouterRequestHandler as createRequestHandler, reactRouterFastify }; //# sourceMappingURL=react-router.js.map