// routes/_renderer.tsx
import { jsxRenderer } from 'hono/jsx-renderer'
import { Link, Script } from 'honox/server'
export default jsxRenderer(({ children }) => {
return (
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.ico" />
<title>Hono + htmx</title>
<Link href="/app/site.css" rel="stylesheet" />
<script type="module" src="/datastar1b11.js"></script>
<Script src="/app/client.ts" async />
</head>
<body>{children}</body>
</html>
)
},{ stream: true }
)
// routes/stream.ts
import { Hono } from 'hono';
import { stream } from 'hono/streaming';
const app = new Hono();
app.get('/stream', (c) => {
return stream(c, async (stream) => {
await stream.write("Loading...\n");
for (let i = 1; i <= 5; i++) {
await stream.sleep(1000); // Simulate delay
await stream.write(`Update ${i}\n`);
}
});
});
export default app
// routes/_renderer.tsx
import { jsxRenderer } from 'hono/jsx-renderer'
import { Link, Script } from 'honox/server'
export default jsxRenderer(({ children }) => {
return (
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.ico" />
<title>Hono + htmx</title>
<Link href="/app/site.css" rel="stylesheet" />
<script type="module" src="/datastar1b11.js"></script>
<Script src="/app/client.ts" async />
</head>
<body>{children}</body>
</html>
)
},{ stream: true }
)
// routes/stream.ts
import { Hono } from 'hono';
import { stream } from 'hono/streaming';
const app = new Hono();
app.get('/stream', (c) => {
return stream(c, async (stream) => {
await stream.write("Loading...\n");
for (let i = 1; i <= 5; i++) {
await stream.sleep(1000); // Simulate delay
await stream.write(`Update ${i}\n`);
}
});
});
export default app