diff --git a/.changeset/crisp-days-reply.md b/.changeset/crisp-days-reply.md new file mode 100644 index 000000000..2e54ab674 --- /dev/null +++ b/.changeset/crisp-days-reply.md @@ -0,0 +1,5 @@ +--- +"@solidjs/start": minor +--- + +better way to disable compression of ssr html diff --git a/packages/start/src/config/dev-server.ts b/packages/start/src/config/dev-server.ts index d88a8cb0d..418d0b6cd 100644 --- a/packages/start/src/config/dev-server.ts +++ b/packages/start/src/config/dev-server.ts @@ -14,12 +14,21 @@ export function devServer(): Array { configurePreviewServer(server) { return () => { server.middlewares.use(async (req, res) => { - res.setHeader("content-encoding", "identity"); const webReq = new NodeRequest({ req, res }); + const { default: packageJSON } = await import(process.cwd() + "/package.json", { + with: { type: "json" }, + }); const def: { default: { fetch: (req: Request) => Promise }; - } = await import(process.cwd() + "/dist/server/entry-server.js"); - sendNodeResponse(res, await def.default.fetch(webReq)); + } = await import( + process.cwd() + + `/dist/server/entry-server.${packageJSON.type === "module" ? "js" : "mjs"}` + ); + const webRes = await def.default.fetch(webReq); + if (webRes.headers.get("content-type")?.startsWith("text/html")) { + res.setHeader("content-encoding", "identity"); + } + sendNodeResponse(res, webRes); }); }; },