// deno run --allow-net rsc.jsx // deno run --allow-net https://gist.github.com/pazguille/a2e3792c1901e12e67453ccb19cc0da6/raw/752200e809993fd2176381b7b09d8308dca6d069/rsc.jsx import { serve } from 'https://deno.land/std/http/server.ts'; import React, { Suspense } from "https://esm.sh/react@18.3.0-next-8e17bfd14-20230322"; import ReactDOMServer from 'https://esm.sh/react-dom@18.3.0-next-8e17bfd14-20230322/server'; function Hello({ name }) { return

Hello {name}!

; } async function Games() { const data = await fetch('https://api.xstoregames.com/api/games?list=new&skipitems=0').then(r => r.json()); await new Promise(r => setTimeout(r, 2000)); return ( ); } function Home() { return ( <>

Deno + RSC

Loading...

}>
); } function App({ children }) { return ( Deno + RSC {children} ); } async function handler(req) { if (req.url.includes('favicon')) { return new Response(null, { status: 204, }); }; const htmlStream = await ReactDOMServer.renderToReadableStream( ); return new Response(htmlStream, { headers: { "content-type": "text/html", }, }); } serve(handler, { port: 3030 });