Skip to content

Commit

Permalink
chore: name remixDevServerMiddleware and make it a standalone plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
jacob-ebey authored Feb 9, 2024
1 parent 4111fd1 commit 6c82432
Showing 1 changed file with 32 additions and 27 deletions.
59 changes: 32 additions & 27 deletions packages/remix-dev/vite/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1183,33 +1183,6 @@ export const remixVitePlugin: RemixVitePlugin = (remixUserConfig = {}) => {
}
}
});

return () => {
// Let user servers handle SSR requests in middleware mode,
// otherwise the Vite plugin will handle the request
if (!viteDevServer.config.server.middlewareMode) {
viteDevServer.middlewares.use(async (req, res, next) => {
try {
let build = (await viteDevServer.ssrLoadModule(
serverBuildId
)) as ServerBuild;

let handler = createRequestHandler(build, "development");
let nodeHandler: NodeRequestHandler = async (
nodeReq,
nodeRes
) => {
let req = fromNodeRequest(nodeReq);
let res = await handler(req, await remixDevLoadContext(req));
await toNodeRequest(res, nodeRes);
};
await nodeHandler(req, res);
} catch (error) {
next(error);
}
});
}
};
},
writeBundle: {
// After the SSR build is finished, we inspect the Vite manifest for
Expand Down Expand Up @@ -1298,6 +1271,38 @@ export const remixVitePlugin: RemixVitePlugin = (remixUserConfig = {}) => {
await viteChildCompiler?.close();
},
},
{
name: "remix-dev-server-middleware",
configureServer(viteDevServer) {
return () => {
// Let user servers handle SSR requests in middleware mode,
// otherwise the Vite plugin will handle the request
if (!viteDevServer.config.server.middlewareMode) {
async function remixDevServerMiddleware(req, res, next) {
try {
let build = (await viteDevServer.ssrLoadModule(
serverBuildId
)) as ServerBuild;

let handler = createRequestHandler(build, "development");
let nodeHandler: NodeRequestHandler = async (
nodeReq,
nodeRes
) => {
let req = fromNodeRequest(nodeReq);
let res = await handler(req, await remixDevLoadContext(req));
await toNodeRequest(res, nodeRes);
};
await nodeHandler(req, res);
} catch (error) {
next(error);
}
}
viteDevServer.middlewares.use(remixDevServerMiddleware);
}
};
},
},
{
name: "remix-virtual-modules",
enforce: "pre",
Expand Down

0 comments on commit 6c82432

Please sign in to comment.