@mcansh/remix-fastify
Version:
Fastify server request handler for Remix and React Router
37 lines (34 loc) • 1.65 kB
JavaScript
const require_plugins = require('./plugins-B2SMtsK6.cjs');
const fastify_plugin = require_plugins.__toESM(require("fastify-plugin"));
const __react_router_node = require_plugins.__toESM(require("@react-router/node"));
const react_router = require_plugins.__toESM(require("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 = (0, react_router.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 require_plugins.sendResponse(reply, response);
};
}
function createReactRouterRequest(request, reply) {
return require_plugins.createRequest(request, reply, __react_router_node.createReadableStreamFromReadable);
}
//#endregion
//#region src/plugins/react-router.ts
const reactRouterFastify = (0, fastify_plugin.default)(async (fastify, options) => {
let plugin = require_plugins.createPlugin(fastify, options, "virtual:react-router/server-build", createReactRouterRequestHandler);
await plugin();
}, {
name: "@mcansh/remix-fastify",
fastify: "^3.29.0 || ^4.0.0 || ^5.0.0"
});
//#endregion
exports.createReactRouterRequestHandler = createReactRouterRequestHandler;
exports.createRequestHandler = createReactRouterRequestHandler;
exports.reactRouterFastify = reactRouterFastify;
//# sourceMappingURL=react-router.cjs.map