Something went wrong. Try again.
write Deno web servers with Vite
Something went wrong. Try again.
1.1 kB · 41 lines
TypeScript
at trunk
123456789101112131415161718192021222324252627282930313233343536373839404142import { resolveClientEntry } from '@mary/dromi/server';
const renderPage = (entryName: string, title: string): Response => { const { entry, js, css } = resolveClientEntry(entryName);
const html = `<!doctype html><html> <head> <meta charset="utf-8"> <title>${title}</title> ${css.map((href) => `<link rel="stylesheet" href="${href}">`).join('')} ${js.map((href) => `<link rel="modulepreload" href="${href}">`).join('')} <script type="module" src="${entry}"></script> </head> <body> <h1>${title}</h1> <p id="status">rendered on the server</p> <nav><a href="/">home</a> · <a href="/about">about</a></nav> </body></html>`;
return new Response(html, { headers: { 'content-type': 'text/html; charset=utf-8' } });};
export default { fetch(request) { const url = new URL(request.url);
switch (url.pathname) { case '/': { return renderPage('main', 'home'); } case '/about': { return renderPage('about', 'about'); } }
return new Response('not found', { status: 404 }); },} satisfies Deno.ServeDefaultExport;