@cloudwerk/vite-plugin 0.8.2 → 0.15.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +19 -6
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -190,15 +190,28 @@ function generateServerEntry(manifest, scanResult, options, entryOptions) {
190
190
  cssLinksCode = `const CSS_LINKS = ''`;
191
191
  }
192
192
  const viteClientScript = options.isProduction ? "" : '<script type="module" src="/@vite/client"></script>';
193
+ const messageChannelPolyfill = rendererName === "react" ? `// Polyfill MessageChannel for Cloudflare Workers upload validation phase
194
+ // Workers provide MessageChannel at request time, but not during script validation
195
+ if (typeof globalThis.MessageChannel === 'undefined') {
196
+ globalThis.MessageChannel = class MessageChannel {
197
+ constructor() {
198
+ this.port1 = { onmessage: null, postMessage() {}, close() {}, start() {} }
199
+ this.port2 = { onmessage: null, postMessage() {}, close() {}, start() {} }
200
+ }
201
+ }
202
+ }
203
+
204
+ ` : "";
193
205
  return `/**
194
206
  * Generated Cloudwerk Server Entry
195
207
  * This file is auto-generated by @cloudwerk/vite-plugin - do not edit
196
208
  */
197
209
 
198
- import { Hono } from 'hono'
210
+ ${messageChannelPolyfill}import { Hono } from 'hono'
199
211
  import { ssgParams } from 'hono/ssg'
200
212
  import { contextMiddleware, createHandlerAdapter, createMiddlewareAdapter, setRouteConfig, NotFoundError, RedirectError } from '@cloudwerk/core/runtime'
201
- import { setActiveRenderer${rendererName === "react" ? ", initReactRenderer" : ""} } from '@cloudwerk/ui'
213
+ import { setActiveRenderer, getActiveRenderer${rendererName === "react" ? ", registerRenderer" : ""} } from '@cloudwerk/ui'${rendererName === "react" ? `
214
+ import { reactRenderer } from '@cloudwerk/ui/renderers/react'` : ""}
202
215
 
203
216
  // Page and Route Imports
204
217
  ${imports.join("\n")}
@@ -462,9 +475,9 @@ function registerPage(app, pattern, pageModule, layoutModules, middlewareModules
462
475
  */
463
476
  async function renderWithHydration(element, status = 200, routeId, pageProps, layoutData) {
464
477
  // Render element to HTML string using the active renderer
465
- ${rendererName === "react" ? `// React: use renderToString from react-dom/server
466
- const { renderToString } = await import('react-dom/server')
467
- let html = '<!DOCTYPE html>' + renderToString(element)` : `// Hono JSX elements have toString() for synchronous rendering
478
+ ${rendererName === "react" ? `// React: use the active renderer to render to HTML
479
+ const rendererResponse = await getActiveRenderer().render(element, { doctype: false })
480
+ let html = '<!DOCTYPE html>' + await rendererResponse.text()` : `// Hono JSX elements have toString() for synchronous rendering
468
481
  let html = '<!DOCTYPE html>' + String(element)`}
469
482
 
470
483
  // Inject CSS links before </head> if present
@@ -537,7 +550,7 @@ function registerRoute(app, pattern, routeModule, middlewareModules) {
537
550
  // ============================================================================
538
551
 
539
552
  // Initialize renderer
540
- ${rendererName === "react" ? `await initReactRenderer()
553
+ ${rendererName === "react" ? `registerRenderer('react', reactRenderer)
541
554
  ` : ""}setActiveRenderer('${rendererName}')
542
555
 
543
556
  // Create Hono app
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudwerk/vite-plugin",
3
- "version": "0.8.2",
3
+ "version": "0.15.18",
4
4
  "description": "Vite plugin for Cloudwerk file-based routing with virtual entry generation",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@swc/core": "^1.3.100",
22
22
  "@cloudwerk/core": "^0.15.3",
23
- "@cloudwerk/ui": "^0.15.6"
23
+ "@cloudwerk/ui": "^0.15.18"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "vite": "^5.0.0 || ^6.0.0 || ^7.0.0",