vite-plugin-react-server 1.1.9 → 1.1.11
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.
- package/README.md +208 -27
- package/dist/index.js.map +1 -1
- package/dist/package.json +34 -14
- package/dist/plugin/{css-collector-elements.d.ts → components/css-collector-elements.d.ts} +1 -1
- package/dist/plugin/components/css-collector-elements.d.ts.map +1 -0
- package/dist/plugin/components/css-collector-elements.js.map +1 -0
- package/dist/plugin/{css-collector.d.ts → components/css-collector.d.ts} +1 -1
- package/dist/plugin/components/css-collector.d.ts.map +1 -0
- package/dist/plugin/components/css-collector.js.map +1 -0
- package/dist/plugin/components/html.d.ts +4 -0
- package/dist/plugin/components/html.d.ts.map +1 -0
- package/dist/plugin/components/html.js +17 -0
- package/dist/plugin/components/html.js.map +1 -0
- package/dist/plugin/components/index.d.ts +5 -0
- package/dist/plugin/components/index.d.ts.map +1 -0
- package/dist/plugin/components.js +9 -3
- package/dist/plugin/components.js.map +1 -0
- package/dist/plugin/config/autoDiscover/index.d.ts +6 -0
- package/dist/plugin/config/autoDiscover/index.d.ts.map +1 -0
- package/dist/plugin/config/autoDiscover/index.js +8 -0
- package/dist/plugin/config/{resolveAutoDiscover.d.ts → autoDiscover/resolveAutoDiscover.d.ts} +1 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -0
- package/dist/plugin/config/{resolveAutoDiscover.js → autoDiscover/resolveAutoDiscover.js} +10 -9
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +1 -0
- package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -1
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js +10 -10
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +1 -1
- package/dist/plugin/config/defaults.d.ts +6 -4
- package/dist/plugin/config/defaults.d.ts.map +1 -1
- package/dist/plugin/config/defaults.js +8 -4
- package/dist/plugin/config/defaults.js.map +1 -1
- package/dist/plugin/config/index.d.ts +1 -0
- package/dist/plugin/config/index.d.ts.map +1 -1
- package/dist/plugin/config/index.js +1 -0
- package/dist/plugin/config/resolveDevServerConfig.d.ts +2 -0
- package/dist/plugin/config/resolveDevServerConfig.d.ts.map +1 -0
- package/dist/plugin/config/resolveEnv.d.ts +13 -0
- package/dist/plugin/config/resolveEnv.d.ts.map +1 -0
- package/dist/plugin/config/resolveEnv.js +120 -0
- package/dist/plugin/config/resolveEnv.js.map +1 -0
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
- package/dist/plugin/config/resolveOptions.js +34 -11
- package/dist/plugin/config/resolveOptions.js.map +1 -1
- package/dist/plugin/config/resolveUrlOption.d.ts +1 -1
- package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -1
- package/dist/plugin/config/resolveUrlOption.js +1 -2
- package/dist/plugin/config/resolveUrlOption.js.map +1 -1
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
- package/dist/plugin/config/resolveUserConfig.js +80 -69
- package/dist/plugin/config/resolveUserConfig.js.map +1 -1
- package/dist/plugin/config.js +17 -0
- package/dist/plugin/config.js.map +1 -0
- package/dist/plugin/env/index.d.ts +2 -0
- package/dist/plugin/env/index.d.ts.map +1 -0
- package/dist/plugin/env/index.js +1 -0
- package/dist/plugin/env/plugin.d.ts +30 -0
- package/dist/plugin/env/plugin.d.ts.map +1 -0
- package/dist/plugin/env/plugin.js +64 -0
- package/dist/plugin/env.js +45 -0
- package/dist/plugin/env.js.map +1 -0
- package/dist/plugin/error/toError.d.ts +6 -0
- package/dist/plugin/error/toError.d.ts.map +1 -0
- package/dist/plugin/error/toError.js +19 -0
- package/dist/plugin/error/toError.js.map +1 -0
- package/dist/plugin/file-preserver/plugin.d.ts +19 -0
- package/dist/plugin/file-preserver/plugin.d.ts.map +1 -0
- package/dist/plugin/file-preserver/plugin.js +108 -0
- package/dist/plugin/file-preserver.js +96 -0
- package/dist/plugin/file-preserver.js.map +1 -0
- package/dist/plugin/helpers/collectManifestCss.js.map +1 -1
- package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
- package/dist/plugin/helpers/createCssProps.js +10 -2
- package/dist/plugin/helpers/createCssProps.js.map +1 -1
- package/dist/plugin/helpers/createEventHandler.d.ts +1 -1
- package/dist/plugin/helpers/createRscStream.js +1 -1
- package/dist/plugin/helpers/createRscStream.js.map +1 -1
- package/dist/plugin/helpers/formatMetrics.d.ts +3 -1
- package/dist/plugin/helpers/formatMetrics.d.ts.map +1 -1
- package/dist/plugin/helpers/formatMetrics.js +22 -7
- package/dist/plugin/helpers/formatMetrics.js.map +1 -0
- package/dist/plugin/helpers/getRouteFiles.d.ts +1 -1
- package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
- package/dist/plugin/helpers/getRouteFiles.js +2 -0
- package/dist/plugin/helpers/getRouteFiles.js.map +1 -1
- package/dist/plugin/helpers/index.d.ts +24 -0
- package/dist/plugin/helpers/index.d.ts.map +1 -0
- package/dist/plugin/helpers/index.js +31 -0
- package/dist/plugin/helpers/inputNormalizer.d.ts +2 -1
- package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
- package/dist/plugin/helpers/inputNormalizer.js +34 -9
- package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
- package/dist/plugin/helpers/metrics.js +26 -2
- package/dist/plugin/helpers/metrics.js.map +1 -1
- package/dist/plugin/helpers/moduleRefs.d.ts.map +1 -0
- package/dist/plugin/helpers/moduleRefs.js.map +1 -0
- package/dist/plugin/helpers/requestInfo.d.ts +26 -0
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -0
- package/dist/plugin/helpers/requestInfo.js +66 -0
- package/dist/plugin/helpers/requestInfo.js.map +1 -0
- package/dist/plugin/helpers/requestToRoute.js.map +1 -1
- package/dist/plugin/helpers/resolvePage.d.ts.map +1 -0
- package/dist/plugin/{resolvePage.js → helpers/resolvePage.js} +19 -3
- package/dist/plugin/helpers/resolvePage.js.map +1 -0
- package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
- package/dist/plugin/helpers/resolvePageAndProps.js +7 -4
- package/dist/plugin/helpers/resolvePageAndProps.js.map +1 -1
- package/dist/plugin/helpers/resolveProps.d.ts.map +1 -0
- package/dist/plugin/{resolveProps.js → helpers/resolveProps.js} +9 -6
- package/dist/plugin/helpers/resolveProps.js.map +1 -0
- package/dist/plugin/helpers/serializeUserOptions.js +1 -1
- package/dist/plugin/helpers/serializeUserOptions.js.map +1 -1
- package/dist/plugin/helpers/stashReturnValue.js +19 -13
- package/dist/plugin/helpers/stashReturnValue.js.map +1 -0
- package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/tryManifest.js +0 -1
- package/dist/plugin/helpers/tryManifest.js.map +1 -1
- package/dist/plugin/helpers.js +27 -0
- package/dist/plugin/helpers.js.map +1 -0
- package/dist/plugin/loader/createBuildLoader.js +1 -1
- package/dist/plugin/loader/createBuildLoader.js.map +1 -1
- package/dist/plugin/loader/css-loader.development.d.ts.map +1 -1
- package/dist/plugin/loader/css-loader.development.js +1 -7
- package/dist/plugin/loader/css-loader.development.js.map +1 -1
- package/dist/plugin/loader/css-loader.production.js.map +1 -1
- package/dist/plugin/loader/env-loader.development.d.ts +12 -0
- package/dist/plugin/loader/env-loader.development.d.ts.map +1 -0
- package/dist/plugin/loader/env-loader.development.js +60 -0
- package/dist/plugin/loader/react-loader.d.ts.map +1 -1
- package/dist/plugin/loader/react-loader.js +1 -8
- package/dist/plugin/loader/react-loader.js.map +1 -1
- package/dist/plugin/metrics/formatMetrics.d.ts +6 -1
- package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
- package/dist/plugin/metrics/formatMetrics.js +21 -3
- package/dist/plugin/metrics/formatMetrics.js.map +1 -1
- package/dist/plugin/metrics.js +1 -1
- package/dist/plugin/plugin.client.d.ts.map +1 -1
- package/dist/plugin/plugin.client.js +2 -0
- package/dist/plugin/plugin.client.js.map +1 -1
- package/dist/plugin/plugin.d.ts.map +1 -1
- package/dist/plugin/plugin.js +1 -2
- package/dist/plugin/plugin.server.d.ts.map +1 -1
- package/dist/plugin/plugin.server.js +3 -0
- package/dist/plugin/plugin.server.js.map +1 -1
- package/dist/plugin/preserver/plugin.js.map +1 -1
- package/dist/plugin/process-env.d.ts +14 -0
- package/dist/plugin/process-env.d.ts.map +1 -0
- package/dist/plugin/process-env.js +1 -0
- package/dist/plugin/react-client/createMessageHandlers.d.ts +11 -0
- package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -0
- package/dist/plugin/react-client/createMessageHandlers.js +47 -0
- package/dist/plugin/react-client/createMessageHandlers.js.map +1 -0
- package/dist/plugin/react-client/createWorkerStream.d.ts +9 -3
- package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
- package/dist/plugin/react-client/createWorkerStream.js +102 -70
- package/dist/plugin/react-client/createWorkerStream.js.map +1 -1
- package/dist/plugin/react-client/handleWorkerRscStream.d.ts +19 -0
- package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -0
- package/dist/plugin/react-client/handleWorkerRscStream.js +47 -0
- package/dist/plugin/react-client/handleWorkerRscStream.js.map +1 -0
- package/dist/plugin/react-client/plugin.d.ts.map +1 -1
- package/dist/plugin/react-client/plugin.js +19 -5
- package/dist/plugin/react-client/plugin.js.map +1 -1
- package/dist/plugin/react-client/restartWorker.d.ts +6 -1
- package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
- package/dist/plugin/react-client/restartWorker.js +13 -5
- package/dist/plugin/react-client/restartWorker.js.map +1 -1
- package/dist/plugin/react-client/server.d.ts +2 -13
- package/dist/plugin/react-client/server.d.ts.map +1 -1
- package/dist/plugin/react-client/server.js +123 -121
- package/dist/plugin/react-client/server.js.map +1 -1
- package/dist/plugin/react-server/plugin.d.ts.map +1 -1
- package/dist/plugin/react-server/plugin.js +18 -8
- package/dist/plugin/react-server/plugin.js.map +1 -1
- package/dist/plugin/react-server/server.d.ts.map +1 -1
- package/dist/plugin/react-server/server.js +37 -23
- package/dist/plugin/react-server/server.js.map +1 -1
- package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
- package/dist/plugin/react-static/collectHtmlWorkerContent.js +9 -0
- package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +1 -1
- package/dist/plugin/react-static/collectRscContent.js.map +1 -1
- package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
- package/dist/plugin/react-static/configurePreviewServer.js +58 -54
- package/dist/plugin/react-static/configurePreviewServer.js.map +1 -1
- package/dist/plugin/react-static/fileWriter.d.ts +1 -1
- package/dist/plugin/react-static/fileWriter.d.ts.map +1 -1
- package/dist/plugin/react-static/fileWriter.js.map +1 -1
- package/dist/plugin/react-static/plugin.d.ts.map +1 -1
- package/dist/plugin/react-static/plugin.js +21 -23
- package/dist/plugin/react-static/plugin.js.map +1 -1
- package/dist/plugin/react-static/renderPages.js.map +1 -1
- package/dist/plugin/root.d.ts +1 -0
- package/dist/plugin/root.d.ts.map +1 -1
- package/dist/plugin/root.js +3 -2
- package/dist/plugin/root.js.map +1 -1
- package/dist/plugin/transformer/plugin.client.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.client.js +3 -12
- package/dist/plugin/transformer/plugin.client.js.map +1 -1
- package/dist/plugin/transformer/plugin.js.map +1 -1
- package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.server.js +17 -24
- package/dist/plugin/transformer/plugin.server.js.map +1 -1
- package/dist/plugin/transformer/upgradeCssModuleCode.d.ts +1 -10
- package/dist/plugin/transformer/upgradeCssModuleCode.d.ts.map +1 -1
- package/dist/plugin/transformer/upgradeCssModuleCode.js +40 -38
- package/dist/plugin/types.d.ts +60 -15
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js +1 -1
- package/dist/plugin/utils/callServer.d.ts +1 -1
- package/dist/plugin/utils/callServer.d.ts.map +1 -1
- package/dist/plugin/utils/callServer.js +3 -17
- package/dist/plugin/utils/callServer.js.map +1 -1
- package/dist/plugin/utils/createCallServer.d.ts +2 -0
- package/dist/plugin/utils/createCallServer.d.ts.map +1 -0
- package/dist/plugin/utils/createCallServer.js +28 -0
- package/dist/plugin/utils/createCallServer.js.map +1 -0
- package/dist/plugin/utils/createReactFetcher.d.ts +3 -1
- package/dist/plugin/utils/createReactFetcher.d.ts.map +1 -1
- package/dist/plugin/utils/createReactFetcher.js +11 -11
- package/dist/plugin/utils/createReactFetcher.js.map +1 -1
- package/dist/plugin/utils/env.d.ts +2 -0
- package/dist/plugin/utils/env.d.ts.map +1 -0
- package/dist/plugin/utils/env.js +9 -0
- package/dist/plugin/utils/env.js.map +1 -0
- package/dist/plugin/utils/envUrls.d.ts +9 -0
- package/dist/plugin/utils/envUrls.d.ts.map +1 -0
- package/dist/plugin/utils/envUrls.js +7 -0
- package/dist/plugin/utils/envUrls.node.d.ts +7 -0
- package/dist/plugin/utils/envUrls.node.d.ts.map +1 -0
- package/dist/plugin/utils/envUrls.node.js +11 -0
- package/dist/plugin/utils/envUrls.node.js.map +1 -0
- package/dist/plugin/utils/index.d.ts +2 -1
- package/dist/plugin/utils/index.d.ts.map +1 -1
- package/dist/plugin/utils/index.js +2 -1
- package/dist/plugin/utils/moduleBaseURL.d.ts +3 -0
- package/dist/plugin/utils/moduleBaseURL.d.ts.map +1 -0
- package/dist/plugin/utils/moduleBaseURL.js +4 -0
- package/dist/plugin/utils/urls.d.ts +130 -0
- package/dist/plugin/utils/urls.d.ts.map +1 -0
- package/dist/plugin/utils/urls.js +87 -0
- package/dist/plugin/utils/urls.js.map +1 -0
- package/dist/plugin/utils.js +2 -1
- package/dist/plugin/utils.js.map +1 -1
- package/dist/plugin/vendor/index.d.ts +2 -0
- package/dist/plugin/vendor/index.d.ts.map +1 -0
- package/dist/plugin/vendor/index.js +1 -0
- package/dist/plugin/vendor/vendor.client.d.ts.map +1 -0
- package/dist/plugin/vendor/vendor.client.js.map +1 -0
- package/dist/plugin/vendor/vendor.d.ts +2 -0
- package/dist/plugin/vendor/vendor.d.ts.map +1 -0
- package/dist/plugin/vendor/vendor.js +15 -0
- package/dist/plugin/vendor/vendor.js.map +1 -0
- package/dist/plugin/vendor/vendor.server.d.ts.map +1 -0
- package/dist/plugin/vendor/vendor.server.js.map +1 -0
- package/dist/plugin/vendor.js +7 -0
- package/dist/plugin/vendor.js.map +1 -0
- package/dist/plugin/worker/createWorker.d.ts +3 -0
- package/dist/plugin/worker/createWorker.d.ts.map +1 -1
- package/dist/plugin/worker/createWorker.js +37 -23
- package/dist/plugin/worker/createWorker.js.map +1 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +4 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +1 -1
- package/dist/plugin/worker/html/html-worker.development.js.map +1 -1
- package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
- package/dist/plugin/worker/rsc/handleRender.d.ts +2 -7
- package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/handleRender.js +4 -4
- package/dist/plugin/worker/rsc/handleRender.js.map +1 -1
- package/dist/plugin/worker/rsc/messageHandler.d.ts +2 -1
- package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/messageHandler.js +42 -16
- package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
- package/dist/plugin/worker/rsc/rsc-worker.development.js +16 -5
- package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
- package/dist/plugin/worker/rsc/rsc-worker.production.js +16 -5
- package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -1
- package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/state.js.map +1 -1
- package/dist/plugin/worker/sendMessage.js +45 -43
- package/dist/plugin/worker/sendMessage.js.map +1 -0
- package/dist/plugin/worker/types.d.ts +32 -4
- package/dist/plugin/worker/types.d.ts.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +34 -14
- package/plugin/{css-collector-elements.tsx → components/css-collector-elements.tsx} +1 -1
- package/plugin/{css-collector.tsx → components/css-collector.tsx} +1 -1
- package/plugin/{html.tsx → components/html.tsx} +1 -3
- package/{dist/plugin/components.d.ts → plugin/components/index.ts} +1 -1
- package/plugin/config/autoDiscover/index.ts +10 -0
- package/plugin/config/{resolveAutoDiscover.ts → autoDiscover/resolveAutoDiscover.ts} +16 -12
- package/plugin/config/autoDiscover/resolveBuildPages.ts +10 -11
- package/plugin/config/defaults.tsx +6 -4
- package/plugin/config/index.ts +1 -1
- package/plugin/config/resolveEnv.ts +187 -0
- package/plugin/config/resolveOptions.ts +60 -27
- package/plugin/config/resolveUrlOption.ts +2 -7
- package/plugin/config/resolveUserConfig.ts +145 -98
- package/plugin/env/index.ts +1 -0
- package/plugin/env/plugin.ts +78 -0
- package/plugin/error/toError.ts +19 -0
- package/plugin/file-preserver/plugin.ts +117 -0
- package/plugin/helpers/createCssProps.tsx +14 -6
- package/plugin/helpers/createRscStream.tsx +1 -1
- package/plugin/helpers/formatMetrics.ts +2 -2
- package/plugin/helpers/getRouteFiles.ts +3 -1
- package/plugin/helpers/index.ts +38 -0
- package/plugin/helpers/inputNormalizer.ts +66 -17
- package/plugin/helpers/requestInfo.ts +91 -0
- package/plugin/{resolvePage.ts → helpers/resolvePage.ts} +19 -4
- package/plugin/helpers/resolvePageAndProps.ts +7 -4
- package/plugin/{resolveProps.ts → helpers/resolveProps.ts} +8 -6
- package/plugin/helpers/serializeUserOptions.ts +1 -1
- package/plugin/helpers/tryManifest.ts +0 -1
- package/plugin/loader/createBuildLoader.ts +1 -1
- package/plugin/loader/css-loader.development.ts +2 -8
- package/plugin/loader/env-loader.development.ts +84 -0
- package/plugin/loader/react-loader.ts +1 -10
- package/plugin/metrics/formatMetrics.ts +29 -4
- package/plugin/plugin.client.ts +2 -0
- package/plugin/plugin.server.ts +3 -0
- package/plugin/plugin.ts +1 -3
- package/plugin/preserver/plugin.ts +1 -0
- package/plugin/process-env.ts +13 -0
- package/plugin/react-client/createMessageHandlers.ts +49 -0
- package/plugin/react-client/createWorkerStream.ts +130 -83
- package/plugin/react-client/handleWorkerRscStream.ts +57 -0
- package/plugin/react-client/plugin.ts +30 -17
- package/plugin/react-client/restartWorker.ts +15 -7
- package/plugin/react-client/server.ts +129 -164
- package/plugin/react-server/plugin.ts +26 -13
- package/plugin/react-server/server.ts +40 -35
- package/plugin/react-static/collectHtmlWorkerContent.ts +13 -1
- package/plugin/react-static/configurePreviewServer.ts +75 -62
- package/plugin/react-static/fileWriter.ts +1 -1
- package/plugin/react-static/plugin.ts +23 -30
- package/plugin/root.ts +7 -1
- package/plugin/transformer/plugin.client.ts +4 -12
- package/plugin/transformer/plugin.server.ts +18 -25
- package/plugin/transformer/upgradeCssModuleCode.ts +39 -39
- package/plugin/types/env.d.ts +7 -0
- package/plugin/types.ts +80 -29
- package/plugin/utils/callServer.ts +3 -24
- package/plugin/utils/createCallServer.ts +26 -0
- package/plugin/utils/createReactFetcher.ts +14 -12
- package/plugin/utils/env.ts +1 -0
- package/plugin/utils/envUrls.node.ts +19 -0
- package/plugin/utils/envUrls.ts +8 -0
- package/plugin/utils/index.ts +2 -1
- package/plugin/utils/moduleBaseURL.ts +7 -0
- package/plugin/utils/urls.ts +217 -0
- package/plugin/vendor/index.ts +1 -0
- package/plugin/vendor/vendor.ts +6 -0
- package/plugin/worker/createWorker.ts +41 -30
- package/plugin/worker/html/createHtmlWorkerRenderState.tsx +4 -1
- package/plugin/worker/html/html-worker.development.tsx +2 -1
- package/plugin/worker/html/html-worker.production.tsx +2 -1
- package/plugin/worker/rsc/handleRender.ts +6 -12
- package/plugin/worker/rsc/messageHandler.tsx +53 -20
- package/plugin/worker/rsc/rsc-worker.development.ts +23 -9
- package/plugin/worker/rsc/rsc-worker.production.ts +23 -7
- package/plugin/worker/types.ts +35 -4
- package/dist/plugin/components.d.ts.map +0 -1
- package/dist/plugin/config/resolveAutoDiscover.d.ts.map +0 -1
- package/dist/plugin/config/resolveAutoDiscover.js.map +0 -1
- package/dist/plugin/copy.d.ts +0 -7
- package/dist/plugin/copy.d.ts.map +0 -1
- package/dist/plugin/copy.js +0 -30
- package/dist/plugin/css-collector-elements.d.ts.map +0 -1
- package/dist/plugin/css-collector-elements.js.map +0 -1
- package/dist/plugin/css-collector.d.ts.map +0 -1
- package/dist/plugin/css-collector.js.map +0 -1
- package/dist/plugin/getCondition.d.ts +0 -2
- package/dist/plugin/getCondition.d.ts.map +0 -1
- package/dist/plugin/html.d.ts +0 -4
- package/dist/plugin/html.d.ts.map +0 -1
- package/dist/plugin/html.js +0 -18
- package/dist/plugin/html.js.map +0 -1
- package/dist/plugin/manifest.d.ts +0 -6
- package/dist/plugin/manifest.d.ts.map +0 -1
- package/dist/plugin/manifest.js +0 -13
- package/dist/plugin/moduleRefs.d.ts.map +0 -1
- package/dist/plugin/moduleRefs.js.map +0 -1
- package/dist/plugin/resolvePage.d.ts.map +0 -1
- package/dist/plugin/resolvePage.js.map +0 -1
- package/dist/plugin/resolveProps.d.ts.map +0 -1
- package/dist/plugin/resolveProps.js.map +0 -1
- package/dist/plugin/utils/pageURL.d.ts +0 -2
- package/dist/plugin/utils/pageURL.d.ts.map +0 -1
- package/dist/plugin/utils/pageURL.js +0 -21
- package/dist/plugin/utils/pageURL.js.map +0 -1
- package/dist/plugin/vendor.client.d.ts.map +0 -1
- package/dist/plugin/vendor.client.js.map +0 -1
- package/dist/plugin/vendor.server.d.ts.map +0 -1
- package/dist/plugin/vendor.server.js.map +0 -1
- package/plugin/copy.ts +0 -39
- package/plugin/manifest.ts +0 -24
- package/plugin/utils/pageURL.ts +0 -28
- /package/dist/plugin/{css-collector-elements.js → components/css-collector-elements.js} +0 -0
- /package/dist/plugin/{css-collector.js → components/css-collector.js} +0 -0
- /package/{plugin/components.ts → dist/plugin/components/index.js} +0 -0
- /package/dist/plugin/{getCondition.js → config/resolveDevServerConfig.js} +0 -0
- /package/dist/plugin/{moduleRefs.d.ts → helpers/moduleRefs.d.ts} +0 -0
- /package/dist/plugin/{moduleRefs.js → helpers/moduleRefs.js} +0 -0
- /package/dist/plugin/{resolvePage.d.ts → helpers/resolvePage.d.ts} +0 -0
- /package/dist/plugin/{resolveProps.d.ts → helpers/resolveProps.d.ts} +0 -0
- /package/dist/plugin/{vendor.client.d.ts → vendor/vendor.client.d.ts} +0 -0
- /package/dist/plugin/{vendor.client.js → vendor/vendor.client.js} +0 -0
- /package/dist/plugin/{vendor.server.d.ts → vendor/vendor.server.d.ts} +0 -0
- /package/dist/plugin/{vendor.server.js → vendor/vendor.server.js} +0 -0
- /package/plugin/{getCondition.ts → config/resolveDevServerConfig.tsx} +0 -0
- /package/plugin/{moduleRefs.ts → helpers/moduleRefs.ts} +0 -0
- /package/plugin/{vendor.client.ts → vendor/vendor.client.ts} +0 -0
- /package/plugin/{vendor.server.ts → vendor/vendor.server.ts} +0 -0
|
@@ -3,84 +3,116 @@
|
|
|
3
3
|
* Copyright (c) Nico Brinkkemper
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
import '
|
|
6
|
+
import { createMessageHandler } from './createMessageHandlers.js';
|
|
7
7
|
|
|
8
|
-
async function* createWorkerStream(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
message:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
async function* createWorkerStream({
|
|
9
|
+
worker,
|
|
10
|
+
message,
|
|
11
|
+
logger,
|
|
12
|
+
handlers: { onHmrAccept, onHmrUpdate, onMetrics, onError, onData, onEnd },
|
|
13
|
+
verbose = false
|
|
14
|
+
}) {
|
|
15
|
+
let messageHandler = null;
|
|
16
|
+
let currentResolve = null;
|
|
17
|
+
const handlers = {
|
|
18
|
+
onError: (error, errorInfo) => {
|
|
19
|
+
logger.error(
|
|
20
|
+
"[react-client] " + (error.stack ?? error.stack.includes(error.message) ? "" : error.message + "\n") + error.stack,
|
|
21
|
+
{
|
|
22
|
+
error
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
if (errorInfo) {
|
|
26
|
+
logger.error(errorInfo.componentStack);
|
|
27
|
+
}
|
|
28
|
+
if (typeof onError === "function") {
|
|
29
|
+
onError(error, errorInfo);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
onData: (chunk) => {
|
|
33
|
+
currentResolve?.(chunk);
|
|
34
|
+
if (verbose) logger.info(`received chunk ${chunk.length} bytes`);
|
|
35
|
+
if (typeof onData === "function") {
|
|
36
|
+
onData(chunk);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
onEnd: () => {
|
|
40
|
+
currentResolve?.(new Uint8Array());
|
|
41
|
+
if (verbose) logger.info(`received end`);
|
|
42
|
+
if (messageHandler) {
|
|
43
|
+
worker.removeListener("message", messageHandler);
|
|
44
|
+
messageHandler = null;
|
|
45
|
+
}
|
|
46
|
+
if (typeof onEnd === "function") {
|
|
47
|
+
onEnd();
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
onMetrics: (metrics) => {
|
|
51
|
+
if (verbose) logger.info(`received chunks ${metrics.chunks}`);
|
|
52
|
+
if (typeof onMetrics === "function") {
|
|
53
|
+
onMetrics(metrics);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
onHmrAccept: (routes) => {
|
|
57
|
+
if (verbose) logger.info(`received hmr accept ${routes.join(", ")}`);
|
|
58
|
+
},
|
|
59
|
+
onHmrUpdate: (routes) => {
|
|
60
|
+
if (verbose) logger.info(`received hmr update ${routes.join(", ")}`);
|
|
25
61
|
}
|
|
26
|
-
return new TextEncoder().encode(`0:E{"digest":"","name":"Error","message":"${err.message}","stack":${JSON.stringify(err.stack)},"env":"Server"}`);
|
|
27
62
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
case "RSC_END":
|
|
35
|
-
resolve(new Uint8Array());
|
|
36
|
-
break;
|
|
37
|
-
case "ERROR":
|
|
38
|
-
const errorResponse = onError(message2.error);
|
|
39
|
-
resolve(errorResponse);
|
|
40
|
-
break;
|
|
41
|
-
default:
|
|
42
|
-
logger.warn(`Unknown initial message type: ${message2.type}`);
|
|
43
|
-
resolve(new Uint8Array());
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
cleanup = () => {
|
|
48
|
-
worker.off("message", messageHandler);
|
|
49
|
-
};
|
|
50
|
-
worker.on("message", messageHandler);
|
|
63
|
+
try {
|
|
64
|
+
if (messageHandler) {
|
|
65
|
+
worker.removeListener("message", messageHandler);
|
|
66
|
+
messageHandler = null;
|
|
67
|
+
}
|
|
68
|
+
if (verbose) logger.info(`sending message RSC_RENDER`);
|
|
51
69
|
worker.postMessage({
|
|
70
|
+
...message,
|
|
52
71
|
type: "RSC_RENDER",
|
|
53
|
-
id:
|
|
54
|
-
...message
|
|
72
|
+
id: Math.random().toString(36).slice(2)
|
|
55
73
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
break;
|
|
71
|
-
case "ERROR":
|
|
72
|
-
cleanup();
|
|
73
|
-
const errorResponse = onError(message2.error);
|
|
74
|
-
resolve(errorResponse);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
worker.once("message", messageHandler);
|
|
74
|
+
if (verbose) logger.info(`waiting for message handler`);
|
|
75
|
+
let workerTimeout = null;
|
|
76
|
+
yield await new Promise((resolve) => {
|
|
77
|
+
workerTimeout = setTimeout(() => {
|
|
78
|
+
if (verbose) logger.info(`worker timeout`);
|
|
79
|
+
worker.terminate();
|
|
80
|
+
}, 5e3);
|
|
81
|
+
currentResolve = resolve;
|
|
82
|
+
messageHandler = createMessageHandler({
|
|
83
|
+
handlers,
|
|
84
|
+
logger,
|
|
85
|
+
verbose
|
|
86
|
+
});
|
|
87
|
+
worker.on("message", messageHandler);
|
|
79
88
|
});
|
|
80
|
-
if (
|
|
81
|
-
|
|
89
|
+
if (workerTimeout) {
|
|
90
|
+
clearTimeout(workerTimeout);
|
|
91
|
+
}
|
|
92
|
+
if (verbose) logger.info(`received message handler`);
|
|
93
|
+
while (true) {
|
|
94
|
+
const chunk = await new Promise((resolve) => {
|
|
95
|
+
currentResolve = resolve;
|
|
96
|
+
if (messageHandler) {
|
|
97
|
+
worker.removeListener("message", messageHandler);
|
|
98
|
+
}
|
|
99
|
+
messageHandler = createMessageHandler({
|
|
100
|
+
handlers,
|
|
101
|
+
logger,
|
|
102
|
+
verbose
|
|
103
|
+
});
|
|
104
|
+
worker.on("message", messageHandler);
|
|
105
|
+
});
|
|
106
|
+
if (chunk.length === 0) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
yield chunk;
|
|
110
|
+
}
|
|
111
|
+
} finally {
|
|
112
|
+
if (messageHandler) {
|
|
113
|
+
worker.removeListener("message", messageHandler);
|
|
114
|
+
messageHandler = null;
|
|
82
115
|
}
|
|
83
|
-
yield chunk;
|
|
84
116
|
}
|
|
85
117
|
}
|
|
86
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorkerStream.js","sources":["../../../plugin/react-client/createWorkerStream.ts"],"sourcesContent":["import type { Logger } from \"vite\";\nimport type {
|
|
1
|
+
{"version":3,"file":"createWorkerStream.js","sources":["../../../plugin/react-client/createWorkerStream.ts"],"sourcesContent":["import type { Logger } from \"vite\";\nimport type {\n RscWorkerOutputMessage,\n RscRenderMessage,\n} from \"../worker/types.js\";\nimport type { StreamMetrics } from \"../types.js\";\nimport type { Worker as NodeWorker } from \"node:worker_threads\";\nimport type { StreamHandlers } from \"../worker/types.js\";\nimport { createMessageHandler } from \"./createMessageHandlers.js\";\n\n/**\n * Creates an async generator that yields RSC chunks from the worker.\n * Handles both module requests and RSC streaming.\n *\n * @param worker - The worker thread\n * @param server - The Vite dev server\n * @param message - The RSC render message\n * @param rscWorkerLoaderPort - Optional loader port for module loading\n * @returns An async generator that yields RSC chunks\n */\nexport async function* createWorkerStream({\n worker,\n message,\n logger,\n handlers: { onHmrAccept, onHmrUpdate, onMetrics, onError, onData, onEnd },\n verbose = false,\n}: {\n worker: NodeWorker;\n message: Omit<RscRenderMessage, \"type\" | \"id\">;\n logger: Logger;\n handlers: Pick<StreamHandlers, \"onHmrAccept\" | \"onHmrUpdate\" | \"onMetrics\"> &\n Partial<Pick<StreamHandlers, \"onError\" | \"onData\" | \"onEnd\">>;\n verbose?: boolean;\n}): AsyncGenerator<Uint8Array> {\n let messageHandler:\n | ((message: RscWorkerOutputMessage | undefined) => void)\n | null = null;\n let currentResolve: ((chunk: Uint8Array) => void) | null = null;\n const handlers: StreamHandlers = {\n onError: (error: any, errorInfo?: any) => {\n logger.error(\n \"[react-client] \" +\n (error.stack ?? error.stack.includes(error.message) ? \"\" : error.message + \"\\n\") +\n error.stack,\n {\n error,\n }\n );\n if (errorInfo) {\n logger.error(errorInfo.componentStack);\n }\n if (typeof onError === \"function\") {\n onError(error, errorInfo);\n }\n },\n onData: (chunk: Uint8Array) => {\n currentResolve?.(chunk);\n if (verbose) logger.info(`received chunk ${chunk.length} bytes`);\n if (typeof onData === \"function\") {\n onData(chunk);\n }\n },\n onEnd: () => {\n currentResolve?.(new Uint8Array());\n if (verbose) logger.info(`received end`);\n if (messageHandler) {\n worker.removeListener(\"message\", messageHandler);\n messageHandler = null;\n }\n if (typeof onEnd === \"function\") {\n onEnd();\n }\n },\n onMetrics: (metrics: StreamMetrics) => {\n if (verbose) logger.info(`received chunks ${metrics.chunks}`);\n if (typeof onMetrics === \"function\") {\n onMetrics(metrics);\n }\n },\n onHmrAccept: (routes: string[]) => {\n if (verbose) logger.info(`received hmr accept ${routes.join(\", \")}`);\n if (typeof onHmrAccept === \"function\") {\n onHmrAccept(routes);\n }\n },\n onHmrUpdate: (routes: string[]) => {\n if (verbose) logger.info(`received hmr update ${routes.join(\", \")}`);\n if (typeof onHmrUpdate === \"function\") {\n onHmrUpdate(routes);\n }\n },\n };\n\n try {\n // Remove any existing message handler before starting\n if (messageHandler) {\n worker.removeListener(\"message\", messageHandler);\n messageHandler = null;\n }\n if (verbose) logger.info(`sending message RSC_RENDER`);\n worker.postMessage({\n ...message,\n type: \"RSC_RENDER\",\n id: Math.random().toString(36).slice(2),\n });\n\n if (verbose) logger.info(`waiting for message handler`);\n let workerTimeout: NodeJS.Timeout | null = null;\n yield await new Promise<Uint8Array>((resolve) => {\n workerTimeout = setTimeout(() => {\n if (verbose) logger.info(`worker timeout`);\n worker.terminate();\n }, 5000);\n currentResolve = resolve;\n messageHandler = createMessageHandler({\n handlers,\n logger,\n verbose,\n });\n worker.on(\"message\", messageHandler);\n });\n if (workerTimeout) {\n clearTimeout(workerTimeout);\n }\n if (verbose) logger.info(`received message handler`);\n while (true) {\n const chunk = await new Promise<Uint8Array>((resolve) => {\n currentResolve = resolve;\n // Create new message handler for each iteration\n if (messageHandler) {\n worker.removeListener(\"message\", messageHandler);\n }\n messageHandler = createMessageHandler({\n handlers,\n logger,\n verbose,\n });\n worker.on(\"message\", messageHandler);\n });\n\n if (chunk.length === 0) {\n break;\n }\n\n yield chunk;\n }\n } finally {\n // Clean up message handler in finally block\n if (messageHandler) {\n worker.removeListener(\"message\", messageHandler);\n messageHandler = null;\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AAoBA,gBAAuB,kBAAmB,CAAA;AAAA,EACxC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAU,EAAE,WAAA,EAAa,aAAa,SAAW,EAAA,OAAA,EAAS,QAAQ,KAAM,EAAA;AAAA,EACxE,OAAU,GAAA;AACZ,CAO+B,EAAA;AAC7B,EAAA,IAAI,cAEO,GAAA,IAAA;AACX,EAAA,IAAI,cAAuD,GAAA,IAAA;AAC3D,EAAA,MAAM,QAA2B,GAAA;AAAA,IAC/B,OAAA,EAAS,CAAC,KAAA,EAAY,SAAoB,KAAA;AACxC,MAAO,MAAA,CAAA,KAAA;AAAA,QACL,iBACG,IAAA,KAAA,CAAM,KAAS,IAAA,KAAA,CAAM,KAAM,CAAA,QAAA,CAAS,KAAM,CAAA,OAAO,CAAI,GAAA,EAAA,GAAK,KAAM,CAAA,OAAA,GAAU,QAC3E,KAAM,CAAA,KAAA;AAAA,QACR;AAAA,UACE;AAAA;AACF,OACF;AACA,MAAA,IAAI,SAAW,EAAA;AACb,QAAO,MAAA,CAAA,KAAA,CAAM,UAAU,cAAc,CAAA;AAAA;AAEvC,MAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AACjC,QAAA,OAAA,CAAQ,OAAO,SAAS,CAAA;AAAA;AAC1B,KACF;AAAA,IACA,MAAA,EAAQ,CAAC,KAAsB,KAAA;AAC7B,MAAA,cAAA,GAAiB,KAAK,CAAA;AACtB,MAAA,IAAI,SAAgB,MAAA,CAAA,IAAA,CAAK,CAAkB,eAAA,EAAA,KAAA,CAAM,MAAM,CAAQ,MAAA,CAAA,CAAA;AAC/D,MAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,QAAA,MAAA,CAAO,KAAK,CAAA;AAAA;AACd,KACF;AAAA,IACA,OAAO,MAAM;AACX,MAAiB,cAAA,GAAA,IAAI,YAAY,CAAA;AACjC,MAAI,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,CAAc,YAAA,CAAA,CAAA;AACvC,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAO,MAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AAC/C,QAAiB,cAAA,GAAA,IAAA;AAAA;AAEnB,MAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,QAAM,KAAA,EAAA;AAAA;AACR,KACF;AAAA,IACA,SAAA,EAAW,CAAC,OAA2B,KAAA;AACrC,MAAA,IAAI,SAAgB,MAAA,CAAA,IAAA,CAAK,CAAmB,gBAAA,EAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,CAAA;AAC5D,MAAI,IAAA,OAAO,cAAc,UAAY,EAAA;AACnC,QAAA,SAAA,CAAU,OAAO,CAAA;AAAA;AACnB,KACF;AAAA,IACA,WAAA,EAAa,CAAC,MAAqB,KAAA;AACjC,MAAI,IAAA,OAAA,SAAgB,IAAK,CAAA,CAAA,oBAAA,EAAuB,OAAO,IAAK,CAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAGnE,KACF;AAAA,IACA,WAAA,EAAa,CAAC,MAAqB,KAAA;AACjC,MAAI,IAAA,OAAA,SAAgB,IAAK,CAAA,CAAA,oBAAA,EAAuB,OAAO,IAAK,CAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAGnE;AACF,GACF;AAEA,EAAI,IAAA;AAEF,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,MAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AAC/C,MAAiB,cAAA,GAAA,IAAA;AAAA;AAEnB,IAAI,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,CAA4B,0BAAA,CAAA,CAAA;AACrD,IAAA,MAAA,CAAO,WAAY,CAAA;AAAA,MACjB,GAAG,OAAA;AAAA,MACH,IAAM,EAAA,YAAA;AAAA,MACN,EAAA,EAAI,KAAK,MAAO,EAAA,CAAE,SAAS,EAAE,CAAA,CAAE,MAAM,CAAC;AAAA,KACvC,CAAA;AAED,IAAI,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,CAA6B,2BAAA,CAAA,CAAA;AACtD,IAAA,IAAI,aAAuC,GAAA,IAAA;AAC3C,IAAA,MAAM,MAAM,IAAI,OAAoB,CAAA,CAAC,OAAY,KAAA;AAC/C,MAAA,aAAA,GAAgB,WAAW,MAAM;AAC/B,QAAI,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,CAAgB,cAAA,CAAA,CAAA;AACzC,QAAA,MAAA,CAAO,SAAU,EAAA;AAAA,SAChB,GAAI,CAAA;AACP,MAAiB,cAAA,GAAA,OAAA;AACjB,MAAA,cAAA,GAAiB,oBAAqB,CAAA;AAAA,QACpC,QAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA,OACD,CAAA;AACD,MAAO,MAAA,CAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AAAA,KACpC,CAAA;AACD,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,YAAA,CAAa,aAAa,CAAA;AAAA;AAE5B,IAAI,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,CAA0B,wBAAA,CAAA,CAAA;AACnD,IAAA,OAAO,IAAM,EAAA;AACX,MAAA,MAAM,KAAQ,GAAA,MAAM,IAAI,OAAA,CAAoB,CAAC,OAAY,KAAA;AACvD,QAAiB,cAAA,GAAA,OAAA;AAEjB,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAO,MAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AAAA;AAEjD,QAAA,cAAA,GAAiB,oBAAqB,CAAA;AAAA,UACpC,QAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAO,MAAA,CAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AAAA,OACpC,CAAA;AAED,MAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,QAAA;AAAA;AAGF,MAAM,MAAA,KAAA;AAAA;AACR,GACA,SAAA;AAEA,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,MAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AAC/C,MAAiB,cAAA,GAAA,IAAA;AAAA;AACnB;AAEJ;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from "vite";
|
|
2
|
+
import type { RscRenderMessage, StreamHandlers } from "../worker/types.js";
|
|
3
|
+
import type { Worker as NodeWorker } from "node:worker_threads";
|
|
4
|
+
/**
|
|
5
|
+
* Handles the RSC stream from the worker.
|
|
6
|
+
* Creates a ReadableStream that pipes RSC chunks to the response.
|
|
7
|
+
*
|
|
8
|
+
* @param worker - The worker thread
|
|
9
|
+
* @param message - The RSC render message
|
|
10
|
+
* @returns A ReadableStream that yields RSC chunks
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleWorkerRscStream({ worker, message, logger, handlers, verbose }: {
|
|
13
|
+
worker: NodeWorker;
|
|
14
|
+
message: Omit<RscRenderMessage, "type" | "id">;
|
|
15
|
+
logger: Logger;
|
|
16
|
+
handlers: Pick<StreamHandlers, "onMetrics" | "onHmrAccept" | "onHmrUpdate"> & Partial<Pick<StreamHandlers, "onError" | "onData" | "onEnd">>;
|
|
17
|
+
verbose?: boolean;
|
|
18
|
+
}): ReadableStream<Uint8Array>;
|
|
19
|
+
//# sourceMappingURL=handleWorkerRscStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleWorkerRscStream.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/handleWorkerRscStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAe,EAChB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,cAAc,CAAC,UAAU,CAAC,CA+B7B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { createWorkerStream } from './createWorkerStream.js';
|
|
7
|
+
|
|
8
|
+
function handleWorkerRscStream({
|
|
9
|
+
worker,
|
|
10
|
+
message,
|
|
11
|
+
logger,
|
|
12
|
+
handlers,
|
|
13
|
+
verbose = false
|
|
14
|
+
}) {
|
|
15
|
+
let isFlowing = false;
|
|
16
|
+
return new ReadableStream({
|
|
17
|
+
async start(controller) {
|
|
18
|
+
try {
|
|
19
|
+
if (verbose) logger.info("Starting stream");
|
|
20
|
+
for await (const chunk of createWorkerStream({
|
|
21
|
+
worker,
|
|
22
|
+
message,
|
|
23
|
+
logger,
|
|
24
|
+
handlers,
|
|
25
|
+
verbose
|
|
26
|
+
})) {
|
|
27
|
+
if (!isFlowing) {
|
|
28
|
+
isFlowing = true;
|
|
29
|
+
if (verbose) logger.info("Stream is flowing");
|
|
30
|
+
}
|
|
31
|
+
controller.enqueue(chunk);
|
|
32
|
+
}
|
|
33
|
+
} catch (error) {
|
|
34
|
+
controller.error(error);
|
|
35
|
+
} finally {
|
|
36
|
+
if (isFlowing) {
|
|
37
|
+
isFlowing = false;
|
|
38
|
+
if (verbose) logger.info("Stream closing");
|
|
39
|
+
}
|
|
40
|
+
controller.close();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { handleWorkerRscStream };
|
|
47
|
+
//# sourceMappingURL=handleWorkerRscStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleWorkerRscStream.js","sources":["../../../plugin/react-client/handleWorkerRscStream.ts"],"sourcesContent":["import type { Logger } from \"vite\";\nimport type { RscRenderMessage, StreamHandlers } from \"../worker/types.js\";\nimport { createWorkerStream } from \"./createWorkerStream.js\";\nimport type { Worker as NodeWorker } from \"node:worker_threads\";\n/**\n * Handles the RSC stream from the worker.\n * Creates a ReadableStream that pipes RSC chunks to the response.\n *\n * @param worker - The worker thread\n * @param message - The RSC render message\n * @returns A ReadableStream that yields RSC chunks\n */\nexport function handleWorkerRscStream({\n worker,\n message,\n logger,\n handlers,\n verbose = false\n}: {\n worker: NodeWorker,\n message: Omit<RscRenderMessage, \"type\" | \"id\">,\n logger: Logger,\n handlers: Pick<StreamHandlers, \"onMetrics\" | \"onHmrAccept\" | \"onHmrUpdate\"> &\n Partial<Pick<StreamHandlers, \"onError\" | \"onData\" | \"onEnd\">>,\n verbose?: boolean\n}): ReadableStream<Uint8Array> {\n // Create a ReadableStream from the async generator\n let isFlowing = false;\n return new ReadableStream<Uint8Array>({\n async start(controller) {\n try {\n if(verbose) logger.info(\"Starting stream\");\n for await (const chunk of createWorkerStream({\n worker,\n message,\n logger,\n handlers,\n verbose\n })) {\n if (!isFlowing) {\n isFlowing = true;\n if(verbose) logger.info(\"Stream is flowing\");\n }\n controller.enqueue(chunk);\n }\n } catch (error) {\n controller.error(error);\n } finally {\n if (isFlowing) {\n isFlowing = false;\n if(verbose) logger.info(\"Stream closing\");\n }\n controller.close();\n }\n },\n });\n}\n"],"names":[],"mappings":";;;;;;;AAYO,SAAS,qBAAsB,CAAA;AAAA,EACpC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAU,GAAA;AACZ,CAO+B,EAAA;AAE7B,EAAA,IAAI,SAAY,GAAA,KAAA;AAChB,EAAA,OAAO,IAAI,cAA2B,CAAA;AAAA,IACpC,MAAM,MAAM,UAAY,EAAA;AACtB,MAAI,IAAA;AACF,QAAG,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,iBAAiB,CAAA;AACzC,QAAA,WAAA,MAAiB,SAAS,kBAAmB,CAAA;AAAA,UAC3C,MAAA;AAAA,UACA,OAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SACD,CAAG,EAAA;AACF,UAAA,IAAI,CAAC,SAAW,EAAA;AACd,YAAY,SAAA,GAAA,IAAA;AACZ,YAAG,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,mBAAmB,CAAA;AAAA;AAE7C,UAAA,UAAA,CAAW,QAAQ,KAAK,CAAA;AAAA;AAC1B,eACO,KAAO,EAAA;AACd,QAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,OACtB,SAAA;AACA,QAAA,IAAI,SAAW,EAAA;AACb,UAAY,SAAA,GAAA,KAAA;AACZ,UAAG,IAAA,OAAA,EAAgB,MAAA,CAAA,IAAA,CAAK,gBAAgB,CAAA;AAAA;AAE1C,QAAA,UAAA,CAAW,KAAM,EAAA;AAAA;AACnB;AACF,GACD,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,KAAK,EAIV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAerB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA8HtE"}
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
import 'vite';
|
|
7
7
|
import { resolveOptions } from '../config/resolveOptions.js';
|
|
8
8
|
import { resolveUserConfig } from '../config/resolveUserConfig.js';
|
|
9
|
-
import { resolveAutoDiscover } from '../config/resolveAutoDiscover.js';
|
|
9
|
+
import { resolveAutoDiscover } from '../config/autoDiscover/resolveAutoDiscover.js';
|
|
10
10
|
import { configureWorkerRequestHandler } from './server.js';
|
|
11
11
|
import { configurePreviewServer } from '../react-static/configurePreviewServer.js';
|
|
12
12
|
import { MessageChannel } from 'node:worker_threads';
|
|
13
13
|
|
|
14
14
|
let userOptions;
|
|
15
15
|
let userConfig;
|
|
16
|
+
let configEnv;
|
|
16
17
|
let root;
|
|
17
18
|
let autoDiscoveredFiles;
|
|
18
19
|
let hmrChannel = null;
|
|
@@ -25,9 +26,11 @@ function reactClientPlugin(options) {
|
|
|
25
26
|
root = userOptions.projectRoot;
|
|
26
27
|
return {
|
|
27
28
|
name: "vite:react-client",
|
|
28
|
-
async config(config,
|
|
29
|
+
async config(config, viteConfigEnv) {
|
|
30
|
+
configEnv = viteConfigEnv;
|
|
29
31
|
if (typeof config.root === "string" && config.root !== root && config.root !== process.cwd() && config.root !== "") {
|
|
30
32
|
root = config.root;
|
|
33
|
+
userOptions.projectRoot = root;
|
|
31
34
|
}
|
|
32
35
|
const autoDiscoverResult = await resolveAutoDiscover({
|
|
33
36
|
config,
|
|
@@ -58,6 +61,18 @@ function reactClientPlugin(options) {
|
|
|
58
61
|
userOptions
|
|
59
62
|
});
|
|
60
63
|
},
|
|
64
|
+
async writeBundle(options2, bundle) {
|
|
65
|
+
if (userOptions.onEvent) {
|
|
66
|
+
userOptions.onEvent({
|
|
67
|
+
type: `build.writeBundle.${userConfig.build.ssr ? "client" : "static-client"}`,
|
|
68
|
+
data: {
|
|
69
|
+
pages: [...autoDiscoveredFiles.routeMap.keys()],
|
|
70
|
+
options: options2,
|
|
71
|
+
bundle
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
},
|
|
61
76
|
// setup dev server
|
|
62
77
|
async configureServer(server) {
|
|
63
78
|
hmrChannel = new MessageChannel();
|
|
@@ -66,9 +81,7 @@ function reactClientPlugin(options) {
|
|
|
66
81
|
autoDiscoveredFiles,
|
|
67
82
|
userOptions,
|
|
68
83
|
hmrChannel,
|
|
69
|
-
onMetrics: userOptions.onMetrics
|
|
70
|
-
userOptions.onMetrics?.(metrics);
|
|
71
|
-
} : undefined
|
|
84
|
+
onMetrics: userOptions.onMetrics
|
|
72
85
|
});
|
|
73
86
|
},
|
|
74
87
|
async handleHotUpdate({ file, server, read, timestamp, ...ctx }) {
|
|
@@ -77,6 +90,7 @@ function reactClientPlugin(options) {
|
|
|
77
90
|
if (!isPageFile) return;
|
|
78
91
|
const [, value] = userOptions.normalizer(file);
|
|
79
92
|
const affectedRoutes = autoDiscoveredFiles.routeMap.get(value) || [];
|
|
93
|
+
console.log({ affectedRoutes });
|
|
80
94
|
if (hmrChannel?.port1) {
|
|
81
95
|
hmrChannel.port1.postMessage({
|
|
82
96
|
type: "HMR_UPDATE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["../../../plugin/react-client/plugin.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../../../plugin/react-client/plugin.ts"],"sourcesContent":["import { type ConfigEnv, type Plugin } from \"vite\";\nimport type {\n AutoDiscoveredFiles,\n ResolvedUserConfig,\n ResolvedUserOptions,\n StreamPluginOptions,\n} from \"../types.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { resolveAutoDiscover } from \"../config/autoDiscover/resolveAutoDiscover.js\";\nimport { configureWorkerRequestHandler } from \"./server.js\";\nimport { configurePreviewServer } from \"../react-static/configurePreviewServer.js\";\nimport { MessageChannel } from \"node:worker_threads\";\n\nlet userOptions: ResolvedUserOptions;\nlet userConfig: ResolvedUserConfig;\nlet configEnv: ConfigEnv;\nlet root: string;\nlet autoDiscoveredFiles: AutoDiscoveredFiles;\nlet hmrChannel: MessageChannel | null = null;\n\nexport function reactClientPlugin(options: StreamPluginOptions): Plugin {\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n root = userOptions.projectRoot;\n\n return {\n name: \"vite:react-client\",\n\n async config(config, viteConfigEnv) {\n configEnv = viteConfigEnv;\n if (\n typeof config.root === \"string\" &&\n config.root !== root &&\n config.root !== process.cwd() &&\n config.root !== \"\"\n ) {\n root = config.root;\n userOptions.projectRoot = root;\n }\n\n const autoDiscoverResult = await resolveAutoDiscover({\n config,\n configEnv,\n userOptions,\n condition: \"react-client\",\n });\n if (autoDiscoverResult.type === \"error\") {\n throw autoDiscoverResult.error;\n }\n autoDiscoveredFiles = autoDiscoverResult.autoDiscoveredFiles;\n\n const resolvedConfig = resolveUserConfig({\n condition: \"react-client\",\n config,\n configEnv,\n userOptions,\n autoDiscoveredFiles,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n return userConfig\n },\n async configurePreviewServer(server) {\n await configurePreviewServer({\n server,\n userOptions,\n });\n },\n async writeBundle(options, bundle) {\n if (userOptions.onEvent) {\n userOptions.onEvent({\n type: `build.writeBundle.${\n userConfig.build.ssr ? \"client\" : \"static-client\"\n }`,\n data: {\n pages: [...autoDiscoveredFiles.routeMap.keys()],\n options,\n bundle,\n },\n });\n }\n },\n // setup dev server\n async configureServer(server) {\n // Create HMR message channel\n hmrChannel = new MessageChannel();\n await configureWorkerRequestHandler({\n server,\n autoDiscoveredFiles,\n userOptions,\n hmrChannel,\n onMetrics: userOptions.onMetrics,\n });\n },\n\n async handleHotUpdate({ file, server, read, timestamp, ...ctx }) {\n try {\n // Check if the file is a page or props file\n const isPageFile = userOptions.autoDiscover.modulePattern(file);\n if (!isPageFile) return;\n\n // Get the route for this file\n const [, value] = userOptions.normalizer(file);\n\n // Find all routes affected by this file change\n const affectedRoutes = autoDiscoveredFiles.routeMap.get(value) || [];\n console.log({affectedRoutes})\n // Send HMR update directly to worker through MessageChannel\n if (hmrChannel?.port1) {\n hmrChannel.port1.postMessage({\n type: \"HMR_UPDATE\",\n path: file,\n timestamp,\n routes: affectedRoutes,\n });\n\n // Trigger a full page refresh for affected routes\n for (const route of affectedRoutes) {\n server.ws.send({\n type: \"full-reload\",\n path: route,\n });\n }\n }\n\n // Let Vite handle the HMR update\n return ctx.modules;\n } catch (error) {\n if (hmrChannel?.port1) {\n hmrChannel.port1.postMessage({\n type: \"HMR_ERROR\",\n path: file,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n return ctx.modules;\n }\n },\n };\n}\n"],"names":["options"],"mappings":"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"}
|
|
@@ -2,5 +2,10 @@ import type { ResolvedUserOptions } from "../../types.js";
|
|
|
2
2
|
import type { ViteDevServer } from "vite";
|
|
3
3
|
import type { AutoDiscoveredFiles } from "../../types.js";
|
|
4
4
|
import type { MessageChannel, Worker } from "node:worker_threads";
|
|
5
|
-
export declare function restartWorker(server
|
|
5
|
+
export declare function restartWorker({ server, autoDiscoveredFiles, userOptions, hmrChannel, }: {
|
|
6
|
+
server: ViteDevServer;
|
|
7
|
+
autoDiscoveredFiles: AutoDiscoveredFiles;
|
|
8
|
+
userOptions: ResolvedUserOptions;
|
|
9
|
+
hmrChannel: MessageChannel;
|
|
10
|
+
}): Promise<Worker | null>;
|
|
6
11
|
//# sourceMappingURL=restartWorker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restartWorker.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/restartWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"restartWorker.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/restartWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlE,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;CAC5B,0BAiDA"}
|
|
@@ -5,15 +5,23 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { createWorker } from '../worker/createWorker.js';
|
|
7
7
|
import { serializedOptions, serializedDevServerConfig } from '../helpers/serializeUserOptions.js';
|
|
8
|
+
import { DEFAULT_CONFIG } from '../config/defaults.js';
|
|
8
9
|
|
|
9
10
|
let currentWorker = null;
|
|
10
11
|
let isRestarting = false;
|
|
11
|
-
async function restartWorker(
|
|
12
|
-
|
|
12
|
+
async function restartWorker({
|
|
13
|
+
server,
|
|
14
|
+
autoDiscoveredFiles,
|
|
15
|
+
userOptions,
|
|
16
|
+
hmrChannel
|
|
17
|
+
}) {
|
|
18
|
+
if (isRestarting) {
|
|
19
|
+
throw new Error("Worker is restarting");
|
|
20
|
+
}
|
|
13
21
|
isRestarting = true;
|
|
14
22
|
try {
|
|
15
23
|
if (currentWorker) {
|
|
16
|
-
currentWorker.
|
|
24
|
+
currentWorker.removeAllListeners();
|
|
17
25
|
currentWorker = null;
|
|
18
26
|
}
|
|
19
27
|
const routeCount = autoDiscoveredFiles.urlMap.size;
|
|
@@ -25,7 +33,7 @@ async function restartWorker(server, autoDiscoveredFiles, userOptions, hmrChanne
|
|
|
25
33
|
reverseCondition: "react-server",
|
|
26
34
|
currentCondition: "react-client",
|
|
27
35
|
maxListeners,
|
|
28
|
-
envPrefix: typeof server.config.envPrefix === "string" ? server.config.envPrefix : Array.isArray(server.config.envPrefix) ? server.config.envPrefix[0] :
|
|
36
|
+
envPrefix: typeof server.config.envPrefix === "string" ? server.config.envPrefix : Array.isArray(server.config.envPrefix) ? server.config.envPrefix[0] : DEFAULT_CONFIG.ENV_PREFIX,
|
|
29
37
|
workerData: {
|
|
30
38
|
hmrPort: hmrChannel.port2,
|
|
31
39
|
resolvedConfig: serializedDevServerConfig(server.config),
|
|
@@ -35,7 +43,7 @@ async function restartWorker(server, autoDiscoveredFiles, userOptions, hmrChanne
|
|
|
35
43
|
});
|
|
36
44
|
if (workerResult.type === "success") {
|
|
37
45
|
currentWorker = workerResult.worker;
|
|
38
|
-
server.config.logger.info(
|
|
46
|
+
if (userOptions.verbose) server.config.logger.info(
|
|
39
47
|
`[react-client] Set max listeners to ${maxListeners} for ${routeCount} routes`
|
|
40
48
|
);
|
|
41
49
|
} else if (workerResult.type === "error") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restartWorker.js","sources":["../../../plugin/react-client/restartWorker.ts"],"sourcesContent":["import type { ResolvedUserOptions } from \"../../types.js\";\n\nimport type { ViteDevServer } from \"vite\";\nimport type { AutoDiscoveredFiles } from \"../../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { serializedDevServerConfig } from \"../helpers/serializeUserOptions.js\";\nimport { serializedOptions } from \"../helpers/serializeUserOptions.js\";\nimport type { MessageChannel, Worker } from \"node:worker_threads\";\n\nlet currentWorker: Worker | null = null;\nlet isRestarting = false;\n\nexport async function restartWorker(\n server: ViteDevServer,\n autoDiscoveredFiles: AutoDiscoveredFiles,\n userOptions: ResolvedUserOptions,\n hmrChannel: MessageChannel
|
|
1
|
+
{"version":3,"file":"restartWorker.js","sources":["../../../plugin/react-client/restartWorker.ts"],"sourcesContent":["import type { ResolvedUserOptions } from \"../../types.js\";\n\nimport type { ViteDevServer } from \"vite\";\nimport type { AutoDiscoveredFiles } from \"../../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { serializedDevServerConfig } from \"../helpers/serializeUserOptions.js\";\nimport { serializedOptions } from \"../helpers/serializeUserOptions.js\";\nimport type { MessageChannel, Worker } from \"node:worker_threads\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nlet currentWorker: Worker | null = null;\nlet isRestarting = false;\n\nexport async function restartWorker({\n server,\n autoDiscoveredFiles,\n userOptions,\n hmrChannel,\n } :{\n server: ViteDevServer,\n autoDiscoveredFiles: AutoDiscoveredFiles,\n userOptions: ResolvedUserOptions,\n hmrChannel: MessageChannel,\n }) {\n if (isRestarting) {\n throw new Error('Worker is restarting')\n }\n isRestarting = true;\n \n try {\n // Terminate the current worker if it exists\n if (currentWorker) {\n currentWorker.removeAllListeners();\n currentWorker = null;\n }\n const routeCount = autoDiscoveredFiles.urlMap.size;\n const hmrBuffer = 20; // Buffer for HMR and other operations\n const maxListeners = routeCount + hmrBuffer;\n const workerResult = await createWorker({\n projectRoot: server.config.root,\n workerPath: userOptions.rscWorkerPath,\n reverseCondition: \"react-server\",\n currentCondition: \"react-client\",\n maxListeners: maxListeners,\n envPrefix:\n typeof server.config.envPrefix === \"string\"\n ? server.config.envPrefix\n : Array.isArray(server.config.envPrefix)\n ? server.config.envPrefix[0]\n : DEFAULT_CONFIG.ENV_PREFIX,\n workerData: {\n hmrPort: hmrChannel.port2,\n resolvedConfig: serializedDevServerConfig(server.config),\n userOptions: serializedOptions(userOptions, autoDiscoveredFiles),\n },\n transferList: [hmrChannel.port2],\n });\n \n if (workerResult.type === \"success\") {\n currentWorker = workerResult.worker;\n if(userOptions.verbose) server.config.logger.info(\n `[react-client] Set max listeners to ${maxListeners} for ${routeCount} routes`\n );\n } else if (workerResult.type === \"error\") {\n server.config.logger.error(\"Failed to start rsc-worker\", {\n error: workerResult.error,\n });\n }\n } finally {\n isRestarting = false;\n }\n return currentWorker;\n }"],"names":[],"mappings":";;;;;;;;;AAUA,IAAI,aAA+B,GAAA,IAAA;AACnC,IAAI,YAAe,GAAA,KAAA;AAEnB,eAAsB,aAAc,CAAA;AAAA,EAChC,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAKG,EAAA;AACD,EAAA,IAAI,YAAc,EAAA;AAChB,IAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA;AAExC,EAAe,YAAA,GAAA,IAAA;AAEf,EAAI,IAAA;AAEF,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,aAAA,CAAc,kBAAmB,EAAA;AACjC,MAAgB,aAAA,GAAA,IAAA;AAAA;AAElB,IAAM,MAAA,UAAA,GAAa,oBAAoB,MAAO,CAAA,IAAA;AAC9C,IAAA,MAAM,SAAY,GAAA,EAAA;AAClB,IAAA,MAAM,eAAe,UAAa,GAAA,SAAA;AAClC,IAAM,MAAA,YAAA,GAAe,MAAM,YAAa,CAAA;AAAA,MACtC,WAAA,EAAa,OAAO,MAAO,CAAA,IAAA;AAAA,MAC3B,YAAY,WAAY,CAAA,aAAA;AAAA,MACxB,gBAAkB,EAAA,cAAA;AAAA,MAClB,gBAAkB,EAAA,cAAA;AAAA,MAClB,YAAA;AAAA,MACA,SAAA,EACE,OAAO,MAAO,CAAA,MAAA,CAAO,cAAc,QAC/B,GAAA,MAAA,CAAO,OAAO,SACd,GAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,MAAA,CAAO,SAAS,CACrC,GAAA,MAAA,CAAO,OAAO,SAAU,CAAA,CAAC,IACzB,cAAe,CAAA,UAAA;AAAA,MACrB,UAAY,EAAA;AAAA,QACV,SAAS,UAAW,CAAA,KAAA;AAAA,QACpB,cAAA,EAAgB,yBAA0B,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,QACvD,WAAA,EAAa,iBAAkB,CAAA,WAAA,EAAa,mBAAmB;AAAA,OACjE;AAAA,MACA,YAAA,EAAc,CAAC,UAAA,CAAW,KAAK;AAAA,KAChC,CAAA;AAED,IAAI,IAAA,YAAA,CAAa,SAAS,SAAW,EAAA;AACnC,MAAA,aAAA,GAAgB,YAAa,CAAA,MAAA;AAC7B,MAAA,IAAG,WAAY,CAAA,OAAA,EAAgB,MAAA,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA;AAAA,QAC3C,CAAA,oCAAA,EAAuC,YAAY,CAAA,KAAA,EAAQ,UAAU,CAAA,OAAA;AAAA,OACvE;AAAA,KACF,MAAA,IAAW,YAAa,CAAA,IAAA,KAAS,OAAS,EAAA;AACxC,MAAO,MAAA,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA,CAAM,4BAA8B,EAAA;AAAA,QACvD,OAAO,YAAa,CAAA;AAAA,OACrB,CAAA;AAAA;AACH,GACA,SAAA;AACA,IAAe,YAAA,GAAA,KAAA;AAAA;AAEjB,EAAO,OAAA,aAAA;AACT;;;;"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { AutoDiscoveredFiles, RenderMetrics, ResolvedUserOptions
|
|
3
|
-
import type { RscRenderMessage } from "../worker/types.js";
|
|
4
|
-
import type { Worker as NodeWorker } from "node:worker_threads";
|
|
1
|
+
import type { ViteDevServer } from "vite";
|
|
2
|
+
import type { AutoDiscoveredFiles, RenderMetrics, ResolvedUserOptions } from "../types.js";
|
|
5
3
|
import { MessageChannel } from "node:worker_threads";
|
|
6
|
-
/**
|
|
7
|
-
* Handles the RSC stream from the worker.
|
|
8
|
-
* Creates a ReadableStream that pipes RSC chunks to the response.
|
|
9
|
-
*
|
|
10
|
-
* @param worker - The worker thread
|
|
11
|
-
* @param message - The RSC render message
|
|
12
|
-
* @returns A ReadableStream that yields RSC chunks
|
|
13
|
-
*/
|
|
14
|
-
export declare function handleWorkerRscStream(worker: NodeWorker, message: Omit<RscRenderMessage, "type" | "id">, logger: Logger, onMetrics?: (metrics: StreamMetrics) => void): ReadableStream<Uint8Array>;
|
|
15
4
|
/**
|
|
16
5
|
* Configures the worker request handler.
|
|
17
6
|
* @param server - The Vite dev server
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAEb,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAWlE;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAAC,EAClD,MAAM,EACN,mBAAmB,EACnB,WAAW,EAAE,YAAY,EACzB,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C,iBAgLA"}
|