39 lines
1.0 KiB
TypeScript
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")
|
|
}
|
|
}
|
|
}
|
|
})
|