Blog/index.tsx
Caleb Braaten 16cf44b42d wip: New Application Architecture
Explore a new approach to clean up the implementation of an AppShell and individual pages. Will likely retire htmx for a lightweight custom page router.
2025-10-17 13:53:30 -07:00

29 lines
853 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("hx-request") === "true") {
return responseValue; // Return the <main> element if the request is an HTMX request
}
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}`
);