diff options
author | 2021-08-10 18:26:16 -0700 | |
---|---|---|
committer | 2021-08-10 18:26:16 -0700 | |
commit | 10b4b872a2824b6d7c66030dafc831f0da3309e8 (patch) | |
tree | a26e97e9e7be22c4407ccc628a54eecf09516c1f /examples/nexty/server.development.tsx | |
parent | 0daff24b16487acfb420813793bc432f8ceaf333 (diff) | |
download | bun-10b4b872a2824b6d7c66030dafc831f0da3309e8.tar.gz bun-10b4b872a2824b6d7c66030dafc831f0da3309e8.tar.zst bun-10b4b872a2824b6d7c66030dafc831f0da3309e8.zip |
This is alot
Former-commit-id: 4b2a396611ec03270dc768b70e488b0f5eee2a37
Diffstat (limited to 'examples/nexty/server.development.tsx')
-rw-r--r-- | examples/nexty/server.development.tsx | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/nexty/server.development.tsx b/examples/nexty/server.development.tsx new file mode 100644 index 000000000..0e28dac65 --- /dev/null +++ b/examples/nexty/server.development.tsx @@ -0,0 +1,46 @@ +import ReactDOMServer from "react-dom/server.browser"; + +addEventListener("fetch", async (event: FetchEvent) => { + var route = Wundle.match(event); + + console.log("Main:", Wundle.main); + console.log("cwd:", Wundle.cwd); + console.log("Origin:", Wundle.origin); + + const { default: PageComponent } = await import(route.filePath); + // This returns all .css files that were imported in the line above. + // It's recursive, so any file that imports a CSS file will be included. + const stylesheets = Wundle.getImportedStyles() as string[]; + + const response = new Response(` + <!DOCTYPE html> +<html> + <head> + ${stylesheets + .map((style) => `<link rel="stylesheet" href="${style}">`) + .join("\n")} + + <link + rel="stylesheet" + crossorigin="anonymous" + href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;700&family=Space+Mono:wght@400;700" + /> + </head> + <body> + + <div id="reactroot">${ReactDOMServer.renderToString( + <PageComponent /> + )}</div> + + <script src="${route.scriptSrc}" async type="module"></script> + </body> +</html> + `); + + event.respondWith(response); +}); + +// typescript isolated modules +export {}; + +declare var Wundle: any; |