@solidjs/start 2.0.0-beta.5 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @solidjs/start
2
2
 
3
+ ## 2.0.0-beta.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 25769f2: Fix Vite preview for non-HTML responses and projects whose server build uses an `.mjs`
8
+ entry.
9
+
3
10
  ## 2.0.0-beta.5
4
11
 
5
12
  ### Patch Changes
@@ -1,2 +1,4 @@
1
1
  import { type PluginOption } from "vite";
2
2
  export declare function devServer(): Array<PluginOption>;
3
+ export declare function resolvePreviewServerEntry(root: string): string;
4
+ export declare function isHtmlResponse(response: Response): boolean;
@@ -6,6 +6,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
+ import { existsSync } from "node:fs";
9
10
  import { join } from "node:path";
10
11
  import { pathToFileURL } from "node:url";
11
12
  import { NodeRequest, sendNodeResponse } from "srvx/node";
@@ -16,12 +17,16 @@ export function devServer() {
16
17
  {
17
18
  name: "solid-start-dev-server",
18
19
  configurePreviewServer(server) {
20
+ const serverEntryUrl = pathToFileURL(resolvePreviewServerEntry(server.config.root)).href;
19
21
  return () => {
20
22
  server.middlewares.use(async (req, res) => {
21
- res.setHeader("content-encoding", "identity");
22
23
  const webReq = new NodeRequest({ req, res });
23
- const def = await import(__rewriteRelativeImportExtension(pathToFileURL(join(process.cwd(), "dist/server/entry-server.js")).href, true));
24
- sendNodeResponse(res, await def.default.fetch(webReq));
24
+ const def = await import(__rewriteRelativeImportExtension(serverEntryUrl, true));
25
+ const webRes = await def.default.fetch(webReq);
26
+ if (isHtmlResponse(webRes)) {
27
+ res.setHeader("content-encoding", "identity");
28
+ }
29
+ sendNodeResponse(res, webRes);
25
30
  });
26
31
  };
27
32
  },
@@ -94,6 +99,19 @@ export function devServer() {
94
99
  },
95
100
  ];
96
101
  }
102
+ export function resolvePreviewServerEntry(root) {
103
+ const serverDirectory = join(root, "dist/server");
104
+ const serverEntry = ["js", "mjs"]
105
+ .map(extension => join(serverDirectory, `entry-server.${extension}`))
106
+ .find(existsSync);
107
+ if (!serverEntry) {
108
+ throw new Error(`Could not find the SolidStart server entry in ${serverDirectory}`);
109
+ }
110
+ return serverEntry;
111
+ }
112
+ export function isHtmlResponse(response) {
113
+ return response.headers.get("content-type")?.startsWith("text/html") ?? false;
114
+ }
97
115
  /**
98
116
  * Removes Vite internal middleware
99
117
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidjs/start",
3
- "version": "2.0.0-beta.5",
3
+ "version": "2.0.0-beta.6",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",