From d4faffc8b9c06a9284daf008716631eb81abbe65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20L=C3=A1z=C3=A1r?= Date: Sun, 8 Mar 2026 12:21:32 +0100 Subject: [PATCH] fix: remote script --- docs/src/pages/en/(pages)/features/cli.mdx | 24 ++++-- docs/src/pages/ja/(pages)/features/cli.mdx | 24 ++++-- packages/react-server/bin/commands/dev.mjs | 4 +- packages/react-server/cache/rsc-browser.mjs | 5 +- packages/react-server/cache/rsc.mjs | 4 + .../client/ReactServerComponent.jsx | 77 +++++++++++++++---- .../react-server/lib/dev/create-server.mjs | 15 +++- packages/react-server/server/dom-flight.mjs | 19 ++++- packages/rsc/server/shared.mjs | 32 +++++++- 9 files changed, 167 insertions(+), 37 deletions(-) diff --git a/docs/src/pages/en/(pages)/features/cli.mdx b/docs/src/pages/en/(pages)/features/cli.mdx index 599648c2..ecd99ec1 100644 --- a/docs/src/pages/en/(pages)/features/cli.mdx +++ b/docs/src/pages/en/(pages)/features/cli.mdx @@ -62,12 +62,6 @@ Use HTTPS protocol. Default is `false`. When you want to use HTTPS for your development server. You need to specify your HTTPS configuration in your `react-server.config.mjs` or `vite.config.mjs` file. See details in the Vite documentation at [server.https](https://vitejs.dev/config/server-options.html#server-https). - -### --open - - -Open browser on server start. Default is `false`. Opens your app in the default browser. - ### --cors @@ -76,6 +70,24 @@ Enable CORS. Default is `false`. This is useful when you want to allow cross-origin requests. If you need more detailed CORS configuration, you can define the CORS configuration in your `react-server.config.mjs` or `vite.config.mjs` file. See details in the Vite documentation at [server.cors](https://vitejs.dev/config/server-options.html#server-cors). + +### --origin + + +Specify the origin part of the URL to a constant value. Same as using the `ORIGIN` environment variable. + + +### --trust-proxy + + +Trust `X-Forwarded-*` headers. + + +### --open + + +Open browser on server start. Default is `false`. Opens your app in the default browser. + ### --force diff --git a/docs/src/pages/ja/(pages)/features/cli.mdx b/docs/src/pages/ja/(pages)/features/cli.mdx index 02d4cadd..1b4726d6 100644 --- a/docs/src/pages/ja/(pages)/features/cli.mdx +++ b/docs/src/pages/ja/(pages)/features/cli.mdx @@ -62,12 +62,6 @@ HTTPSプロトコルを有効にする場合に指定します。デフォルト もし開発サーバーでHTTPSプロトコルを使う場合、`react-server.config.mjs`または`vite.config.mjs`でHTTPSの設定をする必要があります。詳しくはViteドキュメントの[server.https](https://ja.vite.dev/config/server-options#server-https)を参照してください。 - -### --open - - -サーバー起動時にデフォルトブラウザを開くか指定します。デフォルトは`false`です。デフォルトブラウザでアプリケーションにアクセスします。 - ### --cors @@ -76,6 +70,24 @@ CORSを有効にします。デフォルトは`false`です。 もしオリジン間リソース共有を有効化したい場合は便利です。より詳細なCORS設定が必要な場合は`react-server.config.mjs`または`vite.config.mjs`で設定することが出来ます。詳しくはViteドキュメントの[server.cors](https://ja.vite.dev/config/server-options#server-cors)を参照してください。 + +### --origin + + +URLのオリジン部分を定数に指定します。環境変数`ORIGIN`を使っても同じ結果になります。 + + +### --trust-proxy + + +`X-Forwarded-*`ヘッダーを信頼します。 + + +### --open + + +サーバー起動時にデフォルトブラウザを開くか指定します。デフォルトは`false`です。デフォルトブラウザでアプリケーションにアクセスします。 + ### --force diff --git a/packages/react-server/bin/commands/dev.mjs b/packages/react-server/bin/commands/dev.mjs index 93159776..e0d2092c 100644 --- a/packages/react-server/bin/commands/dev.mjs +++ b/packages/react-server/bin/commands/dev.mjs @@ -10,10 +10,12 @@ export default (cli) => }) .option("--port ", "[number] port to listen on", { default: 3000 }) .option("--https", "[boolean] use HTTPS protocol", { default: false }) + .option("--cors", "enable CORS", { default: false }) + .option("--origin ", "[string] origin", { default: "" }) + .option("--trust-proxy", "[boolean] trust proxy", { default: false }) .option("--open [url]", "[boolean|string] open browser on server start", { default: false, }) - .option("--cors", "enable CORS", { default: false }) .option("--force", "force optimize deps", { default: false }) .option("--watch", "watch for config changes", { default: true }) .option("--clear-screen", "clear screen on server start", { diff --git a/packages/react-server/cache/rsc-browser.mjs b/packages/react-server/cache/rsc-browser.mjs index 4a73939e..240b8ddc 100644 --- a/packages/react-server/cache/rsc-browser.mjs +++ b/packages/react-server/cache/rsc-browser.mjs @@ -16,9 +16,12 @@ function concat(buffers) { return result; } +const isDev = typeof import.meta.env !== "undefined" && !!import.meta.env.DEV; + export function toBuffer(model, options = {}) { return new Promise(async (resolve, reject) => { const stream = renderToReadableStream(model, { + debug: isDev, ...options, onError(error) { reject(error); @@ -35,7 +38,7 @@ export function toBuffer(model, options = {}) { } export async function toStream(model, options = {}) { - return renderToReadableStream(model, options); + return renderToReadableStream(model, { debug: isDev, ...options }); } export function fromBuffer(payload, options = {}) { diff --git a/packages/react-server/cache/rsc.mjs b/packages/react-server/cache/rsc.mjs index 67bf8259..f893e962 100644 --- a/packages/react-server/cache/rsc.mjs +++ b/packages/react-server/cache/rsc.mjs @@ -3,12 +3,15 @@ import { renderToReadableStream } from "@lazarv/rsc/server"; import { concat, copyBytesFrom } from "../lib/sys.mjs"; +const isDev = typeof import.meta.env !== "undefined" && !!import.meta.env.DEV; + export function toBuffer(model, options = {}) { return new Promise(async (resolve, reject) => { const { clientReferenceMap } = await import("@lazarv/react-server/dist/server/client-reference-map"); const map = clientReferenceMap(); const stream = renderToReadableStream(model, { + debug: isDev, ...options, moduleResolver: { resolveClientReference(value) { @@ -34,6 +37,7 @@ export async function toStream(model, options = {}) { await import("@lazarv/react-server/dist/server/client-reference-map"); const map = clientReferenceMap(); return renderToReadableStream(model, { + debug: isDev, ...options, moduleResolver: { resolveClientReference(value) { diff --git a/packages/react-server/client/ReactServerComponent.jsx b/packages/react-server/client/ReactServerComponent.jsx index 27bf375f..5a196a40 100644 --- a/packages/react-server/client/ReactServerComponent.jsx +++ b/packages/react-server/client/ReactServerComponent.jsx @@ -19,6 +19,26 @@ import { useClient, } from "./context.mjs"; +// Execute scripts stored as