Blog/index.tsx
Caleb Braaten b33ffa3371 Complete wip: New Application Architecture
Add support for client side routing and updating without loading the AppShell
2025-10-18 16:42:19 -07:00

29 lines
861 B
TypeScript

import { Elysia } from "elysia";
import { html } from "@elysiajs/html";
import { staticPlugin } from "@elysiajs/static";
import { AppShell } from "./src/frontend/AppShell";
import { app } from "./src/backend";
const index = new Elysia()
.use(html())
.onRequest(({ request }) => {
console.log(`Request ${request.method} ${request.url}`);
})
.onAfterHandle(({ request, responseValue }) => {
if (request.headers.get("shell-loaded") === "true") {
return responseValue; // Return the <main> element if the AppShell has already been loaded
}
return AppShell(responseValue); // Return the <main> element wrapped by the AppShell
})
.use(staticPlugin({
assets: './src/public',
prefix: '/public'
}))
.use(app)
.listen(3000);
console.log(
`🦊 Elysia is running at ${index.server?.hostname}:${index.server?.port}`
);