Blog/index.tsx

39 lines
1.0 KiB
TypeScript

import AppShellDemo from "./temp/appshell.html";
import { AppShell } from "./src/frontend/AppShell";
async function blogPosts() {
const glob = new Bun.Glob("**/*.md");
const blogPosts: Record<string, any> = {}
for await (const file of glob.scan("./content")) {
const post = await import(`./content/${file}`, { with: { type: "html" } });
const route = `/${file.replace(/\.md$/, "")}`;
blogPosts[route] = post.default;
}
Object.keys(blogPosts).map((route) => {
console.info(route);
});
return blogPosts;
}
Bun.serve({
development: {
hmr: true,
console: true
},
routes: {
"/": AppShellDemo,
... await blogPosts(),
"/content/*": {
async GET(req: Request) {
// Having trouble using Bun Bundler alongside a custom route handler to send
// different content depending on the request headers, will use /content subpath instead
// (unless I can figure it out)
return new Response("This will send the blog post content without the app shell")
}
}
}
})