Skip to content

Commit 38a5e3d

Browse files
committed
update
1 parent 7a3c886 commit 38a5e3d

File tree

8 files changed

+286
-41
lines changed

8 files changed

+286
-41
lines changed

examples/vite-ssr-arrow/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.vercel
2+
.env*.local
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { defineConfig } from "nitro";
2+
3+
export default defineConfig({
4+
traceDeps: ["jsdom"],
5+
});

examples/vite-ssr-arrow/package.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@
1010
"@arrow-js/framework": "latest",
1111
"@arrow-js/hydrate": "latest",
1212
"@arrow-js/ssr": "latest",
13+
"jsdom": "latest",
1314
"nitro": "latest",
1415
"vite": "latest"
15-
},
16-
"TODO": [
17-
"@arrow-js/vite-plugin-arrow - investigate workspace alias plugin for external use",
18-
"@arrow-js/hydrate - investigate hydration adoption (currently using client-side takeover)"
19-
]
16+
}
2017
}
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1+
import { render } from "@arrow-js/framework";
12
import { App } from "./app.ts";
23

4+
// TODO: hydrate() adopts DOM nodes but loses reactivity due to
5+
// JSDOM vs browser whitespace serialization differences causing
6+
// text node misalignment in the adoption map.
7+
// import { hydrate, readPayload } from "@arrow-js/hydrate";
8+
// const payload = readPayload();
9+
// await hydrate(root, App(), payload);
10+
311
const root = document.getElementById("app")!;
4-
root.textContent = "";
5-
App()(root);
12+
13+
await render(root, App());

examples/vite-ssr-arrow/src/entry-server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import "./styles.css";
2-
import { renderToString } from "@arrow-js/ssr";
2+
import { renderToString, serializePayload } from "@arrow-js/ssr";
33
import { App } from "./app.ts";
44

55
import clientAssets from "./entry-client?assets=client";
@@ -31,6 +31,7 @@ export default {
3131
</head>
3232
<body>
3333
<div id="app">${result.html}</div>
34+
${serializePayload(result.payload)}
3435
</body>
3536
</html>`;
3637

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
11
{
2-
"compilerOptions": {
3-
"target": "ESNext",
4-
"module": "ESNext",
5-
"moduleResolution": "bundler",
6-
"strict": true,
7-
"esModuleInterop": true,
8-
"skipLibCheck": true
9-
},
10-
"include": ["src"]
2+
"extends": "nitro/tsconfig",
3+
"compilerOptions": {},
114
}

examples/vite-ssr-arrow/vite.config.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,4 @@ export default defineConfig({
88
build: { rollupOptions: { input: "./src/entry-client.ts" } },
99
},
1010
},
11-
optimizeDeps: {
12-
exclude: [
13-
"@arrow-js/core",
14-
"@arrow-js/framework",
15-
"@arrow-js/ssr",
16-
"@arrow-js/hydrate",
17-
],
18-
},
19-
ssr: {
20-
noExternal: [
21-
"@arrow-js/core",
22-
"@arrow-js/framework",
23-
"@arrow-js/ssr",
24-
"@arrow-js/hydrate",
25-
],
26-
},
2711
});

0 commit comments

Comments
 (0)