vite-plugin-react-server 1.0.2 → 1.1.0
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 +49 -76
- package/bin/patch.mjs +27 -20
- package/dist/_virtual/dynamic-import-helper.js +24 -0
- package/dist/_virtual/dynamic-import-helper.js.map +1 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -26
- package/dist/index.js.map +1 -1
- package/dist/package.json +24 -14
- package/dist/plugin/components.d.ts +1 -1
- package/dist/plugin/components.d.ts.map +1 -1
- package/dist/plugin/components.js +1 -1
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.d.ts +6 -0
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.d.ts.map +1 -0
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js +30 -0
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js.map +1 -0
- package/dist/plugin/config/autoDiscover/customWorkerFiles.d.ts +13 -0
- package/dist/plugin/config/autoDiscover/customWorkerFiles.d.ts.map +1 -0
- package/dist/plugin/config/autoDiscover/customWorkerFiles.js +24 -0
- package/dist/plugin/config/autoDiscover/customWorkerFiles.js.map +1 -0
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.d.ts +11 -0
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.d.ts.map +1 -0
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.js +29 -0
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.js.map +1 -0
- package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts +6 -0
- package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -0
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js +83 -0
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +1 -0
- package/dist/plugin/config/defaults.d.ts +18 -14
- package/dist/plugin/config/defaults.d.ts.map +1 -1
- package/dist/plugin/config/defaults.js +42 -21
- package/dist/plugin/config/defaults.js.map +1 -1
- package/dist/plugin/config/getCondition.d.ts +1 -1
- package/dist/plugin/config/getCondition.d.ts.map +1 -1
- package/dist/plugin/config/getCondition.js +2 -2
- package/dist/plugin/config/getCondition.js.map +1 -1
- package/dist/plugin/config/getPaths.d.ts +0 -1
- package/dist/plugin/config/getPaths.d.ts.map +1 -1
- package/dist/plugin/config/getPaths.js.map +1 -1
- package/dist/plugin/config/index.d.ts +0 -1
- package/dist/plugin/config/index.d.ts.map +1 -1
- package/dist/plugin/config/index.js +0 -1
- package/dist/plugin/config/resolveAutoDiscover.d.ts +20 -0
- package/dist/plugin/config/resolveAutoDiscover.d.ts.map +1 -0
- package/dist/plugin/config/resolveAutoDiscover.js +128 -0
- package/dist/plugin/config/resolveAutoDiscover.js.map +1 -0
- package/dist/plugin/config/resolveOptions.d.ts +1 -1
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
- package/dist/plugin/config/resolveOptions.js +109 -77
- package/dist/plugin/config/resolveOptions.js.map +1 -1
- package/dist/plugin/config/resolvePages.d.ts +0 -1
- package/dist/plugin/config/resolvePages.d.ts.map +1 -1
- package/dist/plugin/config/resolvePages.js +6 -8
- package/dist/plugin/config/resolvePages.js.map +1 -1
- package/dist/plugin/config/resolveUrlOption.d.ts +16 -0
- package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -0
- package/dist/plugin/config/resolveUrlOption.js +37 -0
- package/dist/plugin/config/resolveUrlOption.js.map +1 -0
- package/dist/plugin/config/resolveUserConfig.d.ts +4 -5
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
- package/dist/plugin/config/resolveUserConfig.js +80 -132
- package/dist/plugin/config/resolveUserConfig.js.map +1 -1
- package/dist/plugin/copy.d.ts +7 -0
- package/dist/plugin/copy.d.ts.map +1 -0
- package/dist/plugin/copy.js +30 -0
- package/dist/plugin/css-collector-elements.d.ts +4 -0
- package/dist/plugin/css-collector-elements.d.ts.map +1 -0
- package/dist/plugin/css-collector-elements.js +19 -0
- package/dist/plugin/css-collector-elements.js.map +1 -0
- package/dist/plugin/css-collector.d.ts +2 -8
- package/dist/plugin/css-collector.d.ts.map +1 -1
- package/dist/plugin/css-collector.js +9 -36
- package/dist/plugin/css-collector.js.map +1 -1
- package/dist/plugin/helpers/cleanObject.d.ts +3 -0
- package/dist/plugin/helpers/cleanObject.d.ts.map +1 -0
- package/dist/plugin/helpers/cleanObject.js +47 -0
- package/dist/plugin/helpers/cleanObject.js.map +1 -0
- package/dist/plugin/helpers/collectBundleManifestCss.d.ts +8 -0
- package/dist/plugin/helpers/collectBundleManifestCss.d.ts.map +1 -0
- package/dist/plugin/helpers/collectBundleManifestCss.js +110 -0
- package/dist/plugin/helpers/collectManifestCss.d.ts +7 -0
- package/dist/plugin/helpers/collectManifestCss.d.ts.map +1 -0
- package/dist/plugin/helpers/collectManifestCss.js +44 -0
- package/dist/plugin/helpers/collectManifestCss.js.map +1 -0
- package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +31 -0
- package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -0
- package/dist/plugin/helpers/collectViteModuleGraphCss.js +104 -0
- package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +1 -0
- package/dist/plugin/helpers/createCssProps.d.ts +25 -0
- package/dist/plugin/helpers/createCssProps.d.ts.map +1 -0
- package/dist/plugin/helpers/createCssProps.js +57 -0
- package/dist/plugin/helpers/createCssProps.js.map +1 -0
- package/dist/plugin/helpers/createEventHandler.d.ts +22 -0
- package/dist/plugin/helpers/createEventHandler.d.ts.map +1 -0
- package/dist/plugin/helpers/createEventHandler.js +36 -0
- package/dist/plugin/helpers/createEventHandler.js.map +1 -0
- package/dist/plugin/helpers/createHandler.d.ts +7 -13
- package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
- package/dist/plugin/helpers/createHandler.js +54 -96
- package/dist/plugin/helpers/createHandler.js.map +1 -1
- package/dist/plugin/helpers/createRscStream.d.ts +12 -26
- package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
- package/dist/plugin/helpers/createRscStream.js +105 -51
- package/dist/plugin/helpers/createRscStream.js.map +1 -1
- package/dist/plugin/helpers/defaultFileWriter.d.ts +2 -0
- package/dist/plugin/helpers/defaultFileWriter.d.ts.map +1 -0
- package/dist/plugin/helpers/defaultFileWriter.js +1 -0
- package/dist/plugin/helpers/getBundleManifest.d.ts +10 -16
- package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/getBundleManifest.js +30 -22
- package/dist/plugin/helpers/getBundleManifest.js.map +1 -1
- package/dist/plugin/helpers/getRouteFiles.d.ts +14 -0
- package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -0
- package/dist/plugin/helpers/getRouteFiles.js +36 -0
- package/dist/plugin/helpers/getRouteFiles.js.map +1 -0
- package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
- package/dist/plugin/helpers/inputNormalizer.js +38 -32
- package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
- package/dist/plugin/helpers/metrics.d.ts +11 -0
- package/dist/plugin/helpers/metrics.d.ts.map +1 -0
- package/dist/plugin/helpers/metrics.js +35 -0
- package/dist/plugin/helpers/metrics.js.map +1 -0
- package/dist/plugin/helpers/resolvePageAndProps.d.ts +27 -0
- package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -0
- package/dist/plugin/helpers/resolvePageAndProps.js +51 -0
- package/dist/plugin/helpers/resolvePageAndProps.js.map +1 -0
- package/dist/plugin/helpers/serializeUserOptions.d.ts +8 -0
- package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -0
- package/dist/plugin/helpers/serializeUserOptions.js +182 -0
- package/dist/plugin/helpers/serializeUserOptions.js.map +1 -0
- package/dist/plugin/helpers/stashReturnValue.d.ts +2 -0
- package/dist/plugin/helpers/stashReturnValue.d.ts.map +1 -0
- package/dist/plugin/helpers/stashReturnValue.js +14 -0
- package/dist/plugin/helpers/tryManifest.d.ts +5 -3
- package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/tryManifest.js +16 -7
- package/dist/plugin/helpers/tryManifest.js.map +1 -1
- package/dist/plugin/html.d.ts +2 -3
- package/dist/plugin/html.d.ts.map +1 -1
- package/dist/plugin/html.js +7 -1
- package/dist/plugin/html.js.map +1 -1
- package/dist/plugin/index.d.ts +1 -2
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +3 -1
- package/dist/plugin/loader/createBuildLoader.d.ts +26 -4
- package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
- package/dist/plugin/loader/createBuildLoader.js +98 -33
- package/dist/plugin/loader/createBuildLoader.js.map +1 -1
- package/dist/plugin/loader/css-loader.development.d.ts +57 -0
- package/dist/plugin/loader/css-loader.development.d.ts.map +1 -0
- package/dist/plugin/loader/css-loader.development.js +81 -0
- package/dist/plugin/loader/css-loader.development.js.map +1 -0
- package/dist/plugin/loader/css-loader.production.d.ts +31 -0
- package/dist/plugin/loader/css-loader.production.d.ts.map +1 -0
- package/dist/plugin/loader/css-loader.production.js +45 -0
- package/dist/plugin/loader/css-loader.production.js.map +1 -0
- package/dist/plugin/loader/index.d.ts +2 -0
- package/dist/plugin/loader/index.d.ts.map +1 -0
- package/dist/plugin/loader/index.js +1 -0
- package/dist/plugin/loader/plugin.d.ts +22 -0
- package/dist/plugin/loader/plugin.d.ts.map +1 -0
- package/dist/plugin/loader/plugin.js +27 -0
- package/dist/plugin/loader/react-loader.d.ts +3 -7
- package/dist/plugin/loader/react-loader.d.ts.map +1 -1
- package/dist/plugin/loader/react-loader.js +85 -30
- package/dist/plugin/loader/react-loader.js.map +1 -1
- package/dist/plugin/loader/temporaryReferences.d.ts +2 -0
- package/dist/plugin/loader/temporaryReferences.d.ts.map +1 -0
- package/dist/plugin/loader/temporaryReferences.js +11 -0
- package/dist/plugin/loader/temporaryReferences.js.map +1 -0
- package/dist/plugin/moduleRefs.d.ts +7 -0
- package/dist/plugin/moduleRefs.d.ts.map +1 -0
- package/dist/plugin/moduleRefs.js +17 -0
- package/dist/plugin/moduleRefs.js.map +1 -0
- package/dist/plugin/plugin.client.d.ts +3 -0
- package/dist/plugin/plugin.client.d.ts.map +1 -0
- package/dist/plugin/plugin.client.js +19 -0
- package/dist/plugin/plugin.client.js.map +1 -0
- package/dist/plugin/plugin.d.ts +1 -5
- package/dist/plugin/plugin.d.ts.map +1 -1
- package/dist/plugin/plugin.js +3 -9
- package/dist/plugin/plugin.server.d.ts +3 -0
- package/dist/plugin/plugin.server.d.ts.map +1 -0
- package/dist/plugin/plugin.server.js +28 -0
- package/dist/plugin/plugin.server.js.map +1 -0
- package/dist/plugin/preserver/plugin.js +1 -1
- package/dist/plugin/preserver/plugin.js.map +1 -1
- package/dist/plugin/react-client/index.d.ts +1 -2
- package/dist/plugin/react-client/index.d.ts.map +1 -1
- package/dist/plugin/react-client/index.js +1 -19
- package/dist/plugin/react-client/plugin.d.ts.map +1 -1
- package/dist/plugin/react-client/plugin.js +60 -219
- package/dist/plugin/react-client/plugin.js.map +1 -1
- package/dist/plugin/react-client/server.d.ts +27 -0
- package/dist/plugin/react-client/server.d.ts.map +1 -0
- package/dist/plugin/react-client/server.js +197 -0
- package/dist/plugin/react-client/server.js.map +1 -0
- package/dist/plugin/react-server/index.d.ts +1 -2
- package/dist/plugin/react-server/index.d.ts.map +1 -1
- package/dist/plugin/react-server/index.js +1 -21
- package/dist/plugin/react-server/plugin.d.ts +0 -1
- package/dist/plugin/react-server/plugin.d.ts.map +1 -1
- package/dist/plugin/react-server/plugin.js +60 -186
- package/dist/plugin/react-server/plugin.js.map +1 -1
- package/dist/plugin/react-server/server.d.ts +9 -0
- package/dist/plugin/react-server/server.d.ts.map +1 -0
- package/dist/plugin/react-server/server.js +120 -0
- package/dist/plugin/react-server/server.js.map +1 -0
- package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +23 -0
- package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -0
- package/dist/plugin/react-static/collectHtmlWorkerContent.js +85 -0
- package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +1 -0
- package/dist/plugin/react-static/collectRscContent.d.ts +24 -0
- package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -0
- package/dist/plugin/react-static/collectRscContent.js +49 -0
- package/dist/plugin/react-static/collectRscContent.js.map +1 -0
- package/dist/plugin/react-static/configurePreviewServer.d.ts +7 -0
- package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -0
- package/dist/plugin/react-static/configurePreviewServer.js +67 -0
- package/dist/plugin/react-static/configurePreviewServer.js.map +1 -0
- package/dist/plugin/react-static/fileWriter.d.ts +23 -0
- package/dist/plugin/react-static/fileWriter.d.ts.map +1 -0
- package/dist/plugin/react-static/fileWriter.js +65 -0
- package/dist/plugin/react-static/fileWriter.js.map +1 -0
- package/dist/plugin/react-static/plugin.d.ts +15 -0
- package/dist/plugin/react-static/plugin.d.ts.map +1 -1
- package/dist/plugin/react-static/plugin.js +248 -149
- package/dist/plugin/react-static/plugin.js.map +1 -1
- package/dist/plugin/react-static/renderPage.d.ts +3 -0
- package/dist/plugin/react-static/renderPage.d.ts.map +1 -0
- package/dist/plugin/react-static/renderPage.js +116 -0
- package/dist/plugin/react-static/renderPage.js.map +1 -0
- package/dist/plugin/react-static/renderPages.d.ts +3 -0
- package/dist/plugin/react-static/renderPages.d.ts.map +1 -0
- package/dist/plugin/react-static/renderPages.js +125 -0
- package/dist/plugin/react-static/renderPages.js.map +1 -0
- package/dist/plugin/react-static/renderStreams.d.ts +26 -0
- package/dist/plugin/react-static/renderStreams.d.ts.map +1 -0
- package/dist/plugin/react-static/renderStreams.js +27 -0
- package/dist/plugin/react-static/renderStreams.js.map +1 -0
- package/dist/plugin/react-static/rscToHtmlStream.d.ts +22 -0
- package/dist/plugin/react-static/rscToHtmlStream.d.ts.map +1 -0
- package/dist/plugin/react-static/rscToHtmlStream.js +54 -0
- package/dist/plugin/react-static/rscToHtmlStream.js.map +1 -0
- package/dist/plugin/react-static/streamHandler.d.ts +2 -0
- package/dist/plugin/react-static/streamHandler.d.ts.map +1 -0
- package/dist/plugin/react-static/streamHandler.js +1 -0
- package/dist/plugin/react-static/types.d.ts +11 -0
- package/dist/plugin/react-static/types.d.ts.map +1 -1
- package/dist/plugin/resolvePage.d.ts +26 -9
- package/dist/plugin/resolvePage.d.ts.map +1 -1
- package/dist/plugin/resolvePage.js +41 -39
- package/dist/plugin/resolvePage.js.map +1 -1
- package/dist/plugin/resolveProps.d.ts +40 -7
- package/dist/plugin/resolveProps.d.ts.map +1 -1
- package/dist/plugin/resolveProps.js +100 -75
- package/dist/plugin/resolveProps.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 +1 -0
- package/dist/plugin/root.js.map +1 -1
- package/dist/plugin/transformer/index.d.ts +2 -1
- package/dist/plugin/transformer/index.d.ts.map +1 -1
- package/dist/plugin/transformer/index.js +2 -1
- package/dist/plugin/transformer/plugin.client.d.ts +4 -0
- package/dist/plugin/transformer/plugin.client.d.ts.map +1 -0
- package/dist/plugin/transformer/plugin.client.js +83 -0
- package/dist/plugin/transformer/plugin.client.js.map +1 -0
- package/dist/plugin/transformer/plugin.d.ts +1 -27
- package/dist/plugin/transformer/plugin.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.js +3 -87
- package/dist/plugin/transformer/plugin.js.map +1 -1
- package/dist/plugin/transformer/plugin.server.d.ts +4 -0
- package/dist/plugin/transformer/plugin.server.d.ts.map +1 -0
- package/dist/plugin/transformer/plugin.server.js +76 -0
- package/dist/plugin/transformer/plugin.server.js.map +1 -0
- package/dist/plugin/transformer/upgradeCssModuleCode.d.ts +11 -0
- package/dist/plugin/transformer/upgradeCssModuleCode.d.ts.map +1 -0
- package/dist/plugin/transformer/upgradeCssModuleCode.js +38 -0
- package/dist/plugin/types/css-tracking.d.ts +6 -0
- package/dist/plugin/types/css-tracking.d.ts.map +1 -0
- package/dist/plugin/types/css-tracking.js +1 -0
- package/dist/plugin/types.d.ts +372 -86
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js +1 -1
- package/dist/plugin/vendor.client.d.ts +4 -0
- package/dist/plugin/vendor.client.d.ts.map +1 -0
- package/dist/plugin/vendor.client.js +16 -0
- package/dist/plugin/vendor.client.js.map +1 -0
- package/dist/plugin/vendor.server.d.ts +4 -0
- package/dist/plugin/vendor.server.d.ts.map +1 -0
- package/dist/plugin/vendor.server.js +16 -0
- package/dist/plugin/vendor.server.js.map +1 -0
- package/dist/plugin/worker/createWorker.d.ts +25 -7
- package/dist/plugin/worker/createWorker.d.ts.map +1 -1
- package/dist/plugin/worker/createWorker.js +108 -33
- package/dist/plugin/worker/createWorker.js.map +1 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts +12 -0
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -0
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +103 -0
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +1 -0
- package/dist/plugin/worker/html/html-worker.development.d.ts +0 -30
- package/dist/plugin/worker/html/html-worker.development.d.ts.map +1 -1
- package/dist/plugin/worker/html/html-worker.development.js +3 -17
- package/dist/plugin/worker/html/html-worker.development.js.map +1 -1
- package/dist/plugin/worker/html/html-worker.production.js +12 -5
- package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
- package/dist/plugin/worker/html/messageHandler.d.ts +2 -2
- package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/html/messageHandler.js +87 -84
- package/dist/plugin/worker/html/messageHandler.js.map +1 -1
- package/dist/plugin/worker/html/types.d.ts +18 -0
- package/dist/plugin/worker/html/types.d.ts.map +1 -0
- package/dist/plugin/worker/html/types.js +1 -0
- package/dist/plugin/worker/registerLoaders.d.ts +9 -0
- package/dist/plugin/worker/registerLoaders.d.ts.map +1 -0
- package/dist/plugin/worker/registerLoaders.js +45 -0
- package/dist/plugin/worker/rsc/handleRender.d.ts +4 -0
- package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/handleRender.js +147 -0
- package/dist/plugin/worker/rsc/handleRender.js.map +1 -0
- package/dist/plugin/worker/rsc/messageHandler.d.ts +2 -2
- package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/messageHandler.js +47 -112
- package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
- package/dist/plugin/worker/rsc/rsc-worker.development.d.ts +0 -30
- package/dist/plugin/worker/rsc/rsc-worker.development.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/rsc-worker.development.js +29 -4
- package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
- package/dist/plugin/worker/rsc/rsc-worker.production.js +3 -3
- package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -1
- package/dist/plugin/worker/rsc/state.d.ts +73 -2
- package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/state.js +40 -3
- package/dist/plugin/worker/rsc/state.js.map +1 -1
- package/dist/plugin/worker/sendMessage.d.ts +3 -0
- package/dist/plugin/worker/sendMessage.d.ts.map +1 -0
- package/dist/plugin/worker/sendMessage.js +48 -0
- package/dist/plugin/worker/types.d.ts +218 -76
- package/dist/plugin/worker/types.d.ts.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -1
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -14
- package/plugin/components.ts +1 -1
- package/plugin/config/autoDiscover/createGlobAutoDiscover.ts +29 -0
- package/plugin/config/autoDiscover/customWorkerFiles.ts +27 -0
- package/plugin/config/autoDiscover/pageAndPropFiles.ts +36 -0
- package/plugin/config/autoDiscover/resolveBuildPages.ts +98 -0
- package/plugin/config/defaults.tsx +38 -29
- package/plugin/config/getCondition.ts +7 -3
- package/plugin/config/getPaths.ts +1 -7
- package/plugin/config/index.ts +0 -1
- package/plugin/config/resolveAutoDiscover.ts +177 -0
- package/plugin/config/resolveOptions.ts +220 -118
- package/plugin/config/resolvePages.ts +5 -7
- package/plugin/config/resolveUrlOption.ts +43 -0
- package/plugin/config/resolveUserConfig.ts +116 -166
- package/plugin/copy.ts +39 -0
- package/plugin/css-collector-elements.tsx +21 -0
- package/plugin/css-collector.tsx +20 -53
- package/plugin/helpers/cleanObject.ts +50 -0
- package/plugin/helpers/collectBundleManifestCss.ts +160 -0
- package/plugin/helpers/collectManifestCss.ts +61 -0
- package/plugin/helpers/collectViteModuleGraphCss.ts +158 -0
- package/plugin/helpers/createCssProps.tsx +85 -0
- package/plugin/helpers/createEventHandler.ts +44 -0
- package/plugin/helpers/createHandler.ts +57 -126
- package/plugin/helpers/createRscStream.tsx +156 -0
- package/plugin/helpers/defaultFileWriter.ts +0 -0
- package/plugin/helpers/getBundleManifest.ts +42 -37
- package/plugin/helpers/getRouteFiles.ts +47 -0
- package/plugin/helpers/inputNormalizer.ts +16 -10
- package/plugin/helpers/metrics.ts +64 -0
- package/plugin/helpers/resolvePageAndProps.ts +81 -0
- package/plugin/helpers/serializeUserOptions.ts +209 -0
- package/plugin/helpers/stashReturnValue.ts +16 -0
- package/plugin/helpers/tryManifest.ts +35 -18
- package/plugin/html.tsx +14 -3
- package/plugin/index.ts +5 -2
- package/plugin/loader/createBuildLoader.ts +152 -47
- package/plugin/loader/css-loader.development.ts +157 -0
- package/plugin/loader/css-loader.production.ts +86 -0
- package/plugin/loader/index.ts +1 -0
- package/plugin/loader/plugin.ts +33 -0
- package/plugin/loader/react-loader.ts +109 -41
- package/plugin/loader/temporaryReferences.ts +3 -0
- package/plugin/moduleRefs.ts +11 -0
- package/plugin/plugin.client.ts +12 -0
- package/plugin/plugin.server.ts +25 -0
- package/plugin/plugin.ts +5 -9
- package/plugin/preserver/plugin.ts +1 -1
- package/plugin/react-client/index.ts +1 -12
- package/plugin/react-client/plugin.ts +70 -259
- package/plugin/react-client/server.ts +276 -0
- package/plugin/react-server/index.ts +1 -14
- package/plugin/react-server/plugin.ts +69 -220
- package/plugin/react-server/server.ts +128 -0
- package/plugin/react-static/collectHtmlWorkerContent.ts +120 -0
- package/plugin/react-static/collectRscContent.ts +77 -0
- package/plugin/react-static/configurePreviewServer.ts +68 -0
- package/plugin/react-static/fileWriter.ts +103 -0
- package/plugin/react-static/plugin.ts +308 -181
- package/plugin/react-static/renderPage.ts +151 -0
- package/plugin/react-static/renderPages.ts +154 -0
- package/plugin/react-static/renderStreams.ts +48 -0
- package/plugin/react-static/rscToHtmlStream.ts +85 -0
- package/plugin/react-static/streamHandler.ts +0 -0
- package/plugin/react-static/types.ts +10 -0
- package/plugin/resolvePage.ts +67 -57
- package/plugin/resolveProps.ts +148 -104
- package/plugin/root.ts +1 -1
- package/plugin/transformer/index.ts +2 -1
- package/plugin/transformer/plugin.client.ts +109 -0
- package/plugin/transformer/plugin.server.ts +98 -0
- package/plugin/transformer/plugin.ts +2 -115
- package/plugin/transformer/upgradeCssModuleCode.ts +42 -0
- package/plugin/types/css-tracking.ts +5 -0
- package/plugin/types/react-server-dom-esm.d.ts +54 -0
- package/plugin/types.ts +508 -97
- package/plugin/vendor.client.ts +12 -0
- package/plugin/vendor.server.ts +12 -0
- package/plugin/worker/createWorker.ts +158 -53
- package/plugin/worker/html/createHtmlWorkerRenderState.tsx +112 -0
- package/plugin/worker/html/html-worker.development.tsx +5 -75
- package/plugin/worker/html/html-worker.production.tsx +18 -7
- package/plugin/worker/html/messageHandler.tsx +126 -0
- package/plugin/worker/html/types.ts +19 -0
- package/plugin/worker/registerLoaders.ts +54 -0
- package/plugin/worker/rsc/handleRender.ts +180 -0
- package/plugin/worker/rsc/messageHandler.tsx +58 -132
- package/plugin/worker/rsc/rsc-worker.development.ts +49 -63
- package/plugin/worker/rsc/rsc-worker.production.ts +5 -5
- package/plugin/worker/rsc/state.ts +79 -2
- package/plugin/worker/sendMessage.ts +49 -0
- package/plugin/worker/types.ts +299 -100
- package/scripts/check-react-version.mjs +60 -48
- package/scripts/react+0.0.0-experimental-0ca8420f-20250504.patch +57 -0
- package/scripts/react-dom+0.0.0-experimental-0ca8420f-20250504.patch +819 -0
- package/scripts/{react-server-dom-esm+0.0.0-experimental-eda36a1c-20250228.patch → react-server-dom-esm+0.0.0-experimental-0ca8420f-20250504.patch} +1702 -2820
- package/tsconfig.json +7 -2
- package/dist/plugin/assertServerCondition.d.ts +0 -6
- package/dist/plugin/assertServerCondition.d.ts.map +0 -1
- package/dist/plugin/assertServerCondition.js +0 -13
- package/dist/plugin/checkFilesExist.d.ts +0 -3
- package/dist/plugin/checkFilesExist.d.ts.map +0 -1
- package/dist/plugin/checkFilesExist.js +0 -67
- package/dist/plugin/checkFilesExist.js.map +0 -1
- package/dist/plugin/collect-manifest-client-files.d.ts +0 -23
- package/dist/plugin/collect-manifest-client-files.d.ts.map +0 -1
- package/dist/plugin/collect-manifest-client-files.js +0 -131
- package/dist/plugin/collect-manifest-client-files.js.map +0 -1
- package/dist/plugin/config/getWorkerPath.d.ts +0 -2
- package/dist/plugin/config/getWorkerPath.d.ts.map +0 -1
- package/dist/plugin/config/getWorkerPath.js +0 -4
- package/dist/plugin/copy-dir.d.ts +0 -4
- package/dist/plugin/copy-dir.d.ts.map +0 -1
- package/dist/plugin/copy-dir.js +0 -25
- package/dist/plugin/copy-dir.js.map +0 -1
- package/dist/plugin/css-collector-inline.d.ts +0 -10
- package/dist/plugin/css-collector-inline.d.ts.map +0 -1
- package/dist/plugin/css-collector-inline.js +0 -55
- package/dist/plugin/css-collector-inline.js.map +0 -1
- package/dist/plugin/loader/css-loader.d.ts +0 -16
- package/dist/plugin/loader/css-loader.d.ts.map +0 -1
- package/dist/plugin/loader/css-loader.js +0 -70
- package/dist/plugin/loader/css-loader.js.map +0 -1
- package/dist/plugin/react-client/index.js.map +0 -1
- package/dist/plugin/react-server/index.js.map +0 -1
- package/dist/plugin/worker/html/renderPages.d.ts +0 -26
- package/dist/plugin/worker/html/renderPages.d.ts.map +0 -1
- package/dist/plugin/worker/html/renderPages.js +0 -241
- package/dist/plugin/worker/html/renderPages.js.map +0 -1
- package/plugin/assertServerCondition.ts +0 -12
- package/plugin/checkFilesExist.ts +0 -66
- package/plugin/collect-manifest-client-files.ts +0 -167
- package/plugin/config/getWorkerPath.ts +0 -5
- package/plugin/copy-dir.ts +0 -27
- package/plugin/css-collector-inline.tsx +0 -60
- package/plugin/helpers/createRscStream.ts +0 -109
- package/plugin/loader/css-loader.ts +0 -94
- package/plugin/worker/html/messageHandler.ts +0 -130
- package/plugin/worker/html/renderPages.ts +0 -293
- package/scripts/react+0.0.0-experimental-eda36a1c-20250228.patch +0 -159
- package/scripts/react-dom+0.0.0-experimental-eda36a1c-20250228.patch +0 -12508
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderPage.js","sources":["../../../plugin/react-static/renderPage.ts"],"sourcesContent":["import { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { resolvePageAndProps } from \"../helpers/resolvePageAndProps.js\";\nimport type { CreateHandlerOptions, RenderPageResult } from \"../types.js\";\nimport { renderStreams } from \"./renderStreams.js\";\nimport { collectHtmlWorkerContent } from \"./collectHtmlWorkerContent.js\";\nimport { collectRscContent } from \"./collectRscContent.js\";\n\nexport async function* renderPage(\n handlerOptions: CreateHandlerOptions<unknown, React.ComponentType<unknown>>\n): AsyncGenerator<RenderPageResult, void, unknown> {\n if (!handlerOptions.pagePath) {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n try {\n const metrics = createRenderMetrics(handlerOptions.route);\n\n const pageAndPropsResult = await resolvePageAndProps(handlerOptions);\n\n if (pageAndPropsResult.type === \"error\") {\n yield {\n type: \"error\",\n error: pageAndPropsResult.error,\n };\n return;\n }\n\n if (pageAndPropsResult.type === \"skip\") {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n const { PageComponent, pageProps } = pageAndPropsResult;\n\n const newHandlerOptions = {\n ...handlerOptions,\n PageComponent: PageComponent,\n pageProps: pageProps,\n } satisfies CreateHandlerOptions;\n // Create streams with CSS files\n const [rscFull, rscHeadless] = await renderStreams(newHandlerOptions);\n\n // Handle stream creation errors\n if (rscFull.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscFull.type === \"error\"\n ? `Failed to create RSC full stream: ${\n rscFull.error instanceof Error\n ? rscFull.error.message\n : String(rscFull.error)\n }`\n : \"RSC full stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscFull.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC full stream is undefined\"),\n };\n return;\n }\n\n if (rscHeadless.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscHeadless.type === \"error\"\n ? `Failed to create RSC headless stream: ${\n rscHeadless.error instanceof Error\n ? rscHeadless.error.message\n : String(rscHeadless.error)\n }`\n : \"RSC headless stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscHeadless.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC headless stream is undefined\"),\n };\n return;\n }\n\n // Collect HTML and RSC content\n const [\n { stream: rscStream, metrics: rscMetrics },\n { stream: htmlStream, metrics: htmlMetrics },\n ] = await Promise.all([\n collectRscContent(rscHeadless.stream, handlerOptions),\n collectHtmlWorkerContent(rscFull.stream, handlerOptions),\n ]);\n\n // Update metrics\n metrics.htmlSizes.set(handlerOptions.route, htmlMetrics.bytes);\n metrics.rscSizes.set(handlerOptions.route, rscMetrics.bytes);\n metrics.htmlSize = htmlMetrics.bytes;\n metrics.rscSize = rscMetrics.bytes;\n\n // Combine metrics from both streams\n metrics.streamMetrics = {\n ...htmlMetrics,\n chunks: Math.max(htmlMetrics.chunks, rscMetrics.chunks),\n bytes: Math.max(htmlMetrics.bytes, rscMetrics.bytes),\n duration: Math.max(htmlMetrics.duration, rscMetrics.duration),\n startTime: Math.min(htmlMetrics.startTime, rscMetrics.startTime),\n };\n\n metrics.processingTime = metrics.streamMetrics.duration;\n metrics.chunks = metrics.streamMetrics.chunks;\n metrics.chunkRate =\n metrics.streamMetrics.chunks / (metrics.processingTime / 1000);\n\n // Emit metrics via callback\n if (handlerOptions.onMetrics) {\n handlerOptions.onMetrics(metrics);\n }\n\n yield {\n type: \"success\",\n html: htmlStream,\n rsc: rscStream,\n metrics: {\n rscFull: htmlMetrics,\n rscHeadless: rscMetrics,\n },\n } as const;\n } catch (err) {\n yield {\n type: \"error\",\n error:\n err instanceof Error\n ? err\n : typeof err === \"string\"\n ? new Error(err)\n : (err as Error),\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RenderPagesResult, AutoDiscoveredFiles, CssContent, MultiPageHandlerOptions } from "../types.js";
|
|
2
|
+
export declare function renderPages(autoDiscoveredFiles: AutoDiscoveredFiles, handlerOptions: MultiPageHandlerOptions, cssFilesByPage: Map<string, Map<string, CssContent>>): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown>;
|
|
3
|
+
//# sourceMappingURL=renderPages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderPages.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPages.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE9H,wBAAuB,WAAW,CAChC,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,uBAAuB,EACvC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GACnD,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAqI/D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { createRenderMetrics } from '../helpers/metrics.js';
|
|
7
|
+
import { renderPage } from './renderPage.js';
|
|
8
|
+
import 'node:stream';
|
|
9
|
+
|
|
10
|
+
async function* renderPages(autoDiscoveredFiles, handlerOptions, cssFilesByPage) {
|
|
11
|
+
const routes = Array.from(autoDiscoveredFiles.urlMap.keys());
|
|
12
|
+
const completedRoutes = /* @__PURE__ */ new Set();
|
|
13
|
+
const failedRoutes = /* @__PURE__ */ new Set();
|
|
14
|
+
const baseMetrics = createRenderMetrics(routes[0]);
|
|
15
|
+
const results = /* @__PURE__ */ new Map();
|
|
16
|
+
const errors = [];
|
|
17
|
+
if (!autoDiscoveredFiles.urlMap) {
|
|
18
|
+
throw new Error("No urlMap provided to renderPages");
|
|
19
|
+
}
|
|
20
|
+
for (const route of routes) {
|
|
21
|
+
const { page, props } = autoDiscoveredFiles.urlMap.get(route) || {};
|
|
22
|
+
if (!page) continue;
|
|
23
|
+
try {
|
|
24
|
+
const pageRenderer = renderPage({
|
|
25
|
+
...handlerOptions,
|
|
26
|
+
route,
|
|
27
|
+
pagePath: page,
|
|
28
|
+
propsPath: props,
|
|
29
|
+
cssFiles: cssFilesByPage.get(route) ?? /* @__PURE__ */ new Map()
|
|
30
|
+
});
|
|
31
|
+
for await (const result of pageRenderer) {
|
|
32
|
+
if (result.type === "skip") continue;
|
|
33
|
+
if (result.type === "error") {
|
|
34
|
+
failedRoutes.add(route);
|
|
35
|
+
errors.push(result.error);
|
|
36
|
+
yield {
|
|
37
|
+
type: "error",
|
|
38
|
+
error: result.error,
|
|
39
|
+
failedRoutes,
|
|
40
|
+
completedRoutes,
|
|
41
|
+
htmlSizes: baseMetrics.htmlSizes,
|
|
42
|
+
rscSizes: baseMetrics.rscSizes,
|
|
43
|
+
streamMetrics: baseMetrics.streamMetrics,
|
|
44
|
+
results
|
|
45
|
+
};
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (result.type === "success") {
|
|
49
|
+
completedRoutes.add(route);
|
|
50
|
+
results.set(route, {
|
|
51
|
+
html: result.html,
|
|
52
|
+
rsc: result.rsc,
|
|
53
|
+
metrics: result.metrics
|
|
54
|
+
});
|
|
55
|
+
baseMetrics.htmlSizes.set(route, result.metrics.rscFull.bytes);
|
|
56
|
+
baseMetrics.rscSizes.set(route, result.metrics.rscHeadless.bytes);
|
|
57
|
+
baseMetrics.streamMetrics = {
|
|
58
|
+
...baseMetrics.streamMetrics,
|
|
59
|
+
chunks: Math.max(
|
|
60
|
+
baseMetrics.streamMetrics.chunks,
|
|
61
|
+
result.metrics.rscFull.chunks
|
|
62
|
+
),
|
|
63
|
+
bytes: Math.max(
|
|
64
|
+
baseMetrics.streamMetrics.bytes,
|
|
65
|
+
result.metrics.rscFull.bytes
|
|
66
|
+
),
|
|
67
|
+
duration: Math.max(
|
|
68
|
+
baseMetrics.streamMetrics.duration,
|
|
69
|
+
result.metrics.rscFull.duration
|
|
70
|
+
),
|
|
71
|
+
startTime: Math.min(
|
|
72
|
+
baseMetrics.streamMetrics.startTime,
|
|
73
|
+
result.metrics.rscFull.startTime
|
|
74
|
+
)
|
|
75
|
+
};
|
|
76
|
+
yield {
|
|
77
|
+
type: "success",
|
|
78
|
+
completedRoutes,
|
|
79
|
+
htmlSizes: baseMetrics.htmlSizes,
|
|
80
|
+
rscSizes: baseMetrics.rscSizes,
|
|
81
|
+
streamMetrics: baseMetrics.streamMetrics,
|
|
82
|
+
results
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
} catch (err) {
|
|
87
|
+
failedRoutes.add(route);
|
|
88
|
+
errors.push(err instanceof Error ? err : new Error(String(err)));
|
|
89
|
+
yield {
|
|
90
|
+
type: "error",
|
|
91
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
92
|
+
failedRoutes,
|
|
93
|
+
completedRoutes,
|
|
94
|
+
htmlSizes: baseMetrics.htmlSizes,
|
|
95
|
+
rscSizes: baseMetrics.rscSizes,
|
|
96
|
+
streamMetrics: baseMetrics.streamMetrics,
|
|
97
|
+
results
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (failedRoutes.size > 0) {
|
|
102
|
+
return {
|
|
103
|
+
type: "error",
|
|
104
|
+
error: errors[0],
|
|
105
|
+
failedRoutes,
|
|
106
|
+
completedRoutes,
|
|
107
|
+
htmlSizes: baseMetrics.htmlSizes,
|
|
108
|
+
rscSizes: baseMetrics.rscSizes,
|
|
109
|
+
streamMetrics: baseMetrics.streamMetrics,
|
|
110
|
+
results
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
type: "success",
|
|
115
|
+
completedRoutes,
|
|
116
|
+
failedRoutes: undefined,
|
|
117
|
+
htmlSizes: baseMetrics.htmlSizes,
|
|
118
|
+
rscSizes: baseMetrics.rscSizes,
|
|
119
|
+
streamMetrics: baseMetrics.streamMetrics,
|
|
120
|
+
results
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export { renderPages };
|
|
125
|
+
//# sourceMappingURL=renderPages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderPages.js","sources":["../../../plugin/react-static/renderPages.ts"],"sourcesContent":["/**\n * renderPages.ts\n *\n * PURPOSE: Processes React Server Components (RSC) streams and writes output files\n *\n * This module:\n * 1. Creates RSC and HTML streams for each route\n * 2. Pipes RSC stream directly to .rsc files\n * 3. Transforms RSC to HTML via worker and pipes to .html files\n * 4. Collects metrics and handles errors\n */\nimport { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { renderPage } from \"./renderPage.js\";\nimport { PassThrough } from \"node:stream\";\nimport type { StreamMetrics, RenderPagesResult, AutoDiscoveredFiles, CssContent, MultiPageHandlerOptions } from \"../types.js\";\n\nexport async function* renderPages(\n autoDiscoveredFiles: AutoDiscoveredFiles,\n handlerOptions: MultiPageHandlerOptions,\n cssFilesByPage: Map<string, Map<string, CssContent>>,\n): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown> {\n const routes = Array.from(autoDiscoveredFiles.urlMap.keys());\n const completedRoutes = new Set<string>();\n const failedRoutes = new Set<string>();\n const baseMetrics = createRenderMetrics(routes[0]);\n const results = new Map<\n string,\n {\n html: PassThrough;\n rsc: PassThrough;\n metrics: {\n rscFull: StreamMetrics;\n rscHeadless: StreamMetrics;\n };\n }\n >();\n const errors: Error[] = [];\n\n if (!autoDiscoveredFiles.urlMap) {\n throw new Error(\"No urlMap provided to renderPages\");\n }\n\n for (const route of routes) {\n const { page, props } = autoDiscoveredFiles.urlMap.get(route) || {};\n if (!page) continue;\n\n try {\n const pageRenderer = renderPage({\n ...handlerOptions,\n route,\n pagePath: page,\n propsPath: props,\n cssFiles: cssFilesByPage.get(route) ?? new Map(),\n });\n\n for await (const result of pageRenderer) {\n if (result.type === \"skip\") continue;\n\n if (result.type === \"error\") {\n failedRoutes.add(route);\n errors.push(result.error);\n yield {\n type: \"error\",\n error: result.error,\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n continue;\n }\n\n if (result.type === \"success\") {\n completedRoutes.add(route);\n results.set(route, {\n html: result.html,\n rsc: result.rsc,\n metrics: result.metrics,\n });\n\n // Update metrics\n baseMetrics.htmlSizes.set(route, result.metrics.rscFull.bytes);\n baseMetrics.rscSizes.set(route, result.metrics.rscHeadless.bytes);\n baseMetrics.streamMetrics = {\n ...baseMetrics.streamMetrics,\n chunks: Math.max(\n baseMetrics.streamMetrics.chunks,\n result.metrics.rscFull.chunks\n ),\n bytes: Math.max(\n baseMetrics.streamMetrics.bytes,\n result.metrics.rscFull.bytes\n ),\n duration: Math.max(\n baseMetrics.streamMetrics.duration,\n result.metrics.rscFull.duration\n ),\n startTime: Math.min(\n baseMetrics.streamMetrics.startTime,\n result.metrics.rscFull.startTime\n ),\n };\n\n yield {\n type: \"success\",\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n } catch (err) {\n failedRoutes.add(route);\n errors.push(err instanceof Error ? err : new Error(String(err)));\n yield {\n type: \"error\",\n error: err instanceof Error ? err : new Error(String(err)),\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n\n if (failedRoutes.size > 0) {\n return {\n type: \"error\",\n error: errors[0],\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n\n return {\n type: \"success\",\n completedRoutes,\n failedRoutes: undefined,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CreateHandlerOptions } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates handlers for both document and RSC streams
|
|
4
|
+
*
|
|
5
|
+
* @param handler The handler options for creating streams
|
|
6
|
+
* @param options The render options
|
|
7
|
+
* @returns A tuple containing the document worker result and RSC direct result
|
|
8
|
+
*/
|
|
9
|
+
export declare function renderStreams(handler: CreateHandlerOptions): Promise<[{
|
|
10
|
+
type: string;
|
|
11
|
+
stream: any;
|
|
12
|
+
error?: undefined;
|
|
13
|
+
} | {
|
|
14
|
+
type: string;
|
|
15
|
+
error: Error;
|
|
16
|
+
stream?: undefined;
|
|
17
|
+
}, {
|
|
18
|
+
type: string;
|
|
19
|
+
stream: any;
|
|
20
|
+
error?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
type: string;
|
|
23
|
+
error: Error;
|
|
24
|
+
stream?: undefined;
|
|
25
|
+
}]>;
|
|
26
|
+
//# sourceMappingURL=renderStreams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderStreams.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderStreams.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB;;;;;;;;;;;;;;;;IAiB9B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { createHandler } from '../helpers/createHandler.js';
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
|
|
9
|
+
function renderStreams(handler) {
|
|
10
|
+
return Promise.all([
|
|
11
|
+
/**
|
|
12
|
+
* This stream goes to the document worker for client side rendering with full HTML structure,
|
|
13
|
+
* links are already bubbled up in the static document which required us
|
|
14
|
+
* to include the head in the stream as well
|
|
15
|
+
*/
|
|
16
|
+
createHandler(handler),
|
|
17
|
+
/**
|
|
18
|
+
* This stream is saved to index.rsc file (if configured) and can be used
|
|
19
|
+
* for navigating to pages (without the Html wrapper, but does contain
|
|
20
|
+
* css/head information that can bubble up to the browser's dom)
|
|
21
|
+
*/
|
|
22
|
+
createHandler({ ...handler, Html: React__default.Fragment })
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { renderStreams };
|
|
27
|
+
//# sourceMappingURL=renderStreams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderStreams.js","sources":["../../../plugin/react-static/renderStreams.ts"],"sourcesContent":["/**\n * renderStreams.ts\n * \n * PURPOSE: Creates specialized streams for React Server Components (RSC) rendering\n * \n * This module:\n * 1. Creates RSC stream (React.Fragment wrapper) for client-side navigation\n * - This stream is saved to .rsc files and used when navigating between pages\n * - The Fragment wrapper allows the browser to update only the necessary parts of the DOM\n * - This is more efficient than reloading the entire HTML document\n * 2. Creates Document stream (Html wrapper) for initial page loads\n * - This stream includes the full HTML document structure\n * - Used for the initial page load when the browser needs the complete HTML\n * 3. Sets up stream handlers with proper wrappers and options\n * 4. Returns streams for renderPages to process\n */\nimport { createHandler } from \"../helpers/createHandler.js\";\nimport type {\n CreateHandlerOptions,\n} from \"../types.js\";\nimport React from \"react\";\n\n/**\n * Creates handlers for both document and RSC streams\n * \n * @param handler The handler options for creating streams\n * @param options The render options\n * @returns A tuple containing the document worker result and RSC direct result\n */\nexport function renderStreams(\n handler: CreateHandlerOptions,\n) {\n return Promise.all([\n /**\n * This stream goes to the document worker for client side rendering with full HTML structure, \n * links are already bubbled up in the static document which required us \n * to include the head in the stream as well\n */\n createHandler(handler),\n \n /**\n * This stream is saved to index.rsc file (if configured) and can be used \n * for navigating to pages (without the Html wrapper, but does contain \n * css/head information that can bubble up to the browser's dom)\n */\n createHandler({...handler, Html: React.Fragment}),\n ]);\n}\n"],"names":["React"],"mappings":";;;;;;;;AA6BO,SAAS,cACd,OACA,EAAA;AACA,EAAA,OAAO,QAAQ,GAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMjB,cAAc,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOrB,cAAc,EAAC,GAAG,SAAS,IAAM,EAAAA,cAAA,CAAM,UAAS;AAAA,GACjD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rscToHtmlStream.ts
|
|
3
|
+
*
|
|
4
|
+
* PURPOSE: Transforms RSC stream to HTML stream via worker communication
|
|
5
|
+
*
|
|
6
|
+
* This module:
|
|
7
|
+
* 1. Takes RSC stream as input
|
|
8
|
+
* 2. Communicates with worker to transform RSC to HTML
|
|
9
|
+
* 3. Returns a writeable stream of HTML content
|
|
10
|
+
* 4. Handles worker message processing and error cases
|
|
11
|
+
*/
|
|
12
|
+
import { Transform } from "node:stream";
|
|
13
|
+
import type { CreateHandlerOptions } from "../types.js";
|
|
14
|
+
export type RscToHtmlOptions = Pick<CreateHandlerOptions, "worker" | "route" | "moduleRootPath" | "moduleBaseURL" | "pipeableStreamOptions" | "build" | "cssFiles" | "projectRoot">;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a transform stream that converts RSC content to HTML via worker
|
|
17
|
+
*
|
|
18
|
+
* @param options The options for RSC to HTML transformation
|
|
19
|
+
* @returns A transform stream that outputs HTML content
|
|
20
|
+
*/
|
|
21
|
+
export declare function createRscToHtmlStream(options: RscToHtmlOptions): Transform;
|
|
22
|
+
//# sourceMappingURL=rscToHtmlStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rscToHtmlStream.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/rscToHtmlStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EAClB,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,OAAO,GACP,UAAU,GACV,aAAa,CAChB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA8C1E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { Transform } from 'node:stream';
|
|
7
|
+
|
|
8
|
+
function createRscToHtmlStream(options) {
|
|
9
|
+
const worker = options.worker;
|
|
10
|
+
if (!("postMessage" in worker)) {
|
|
11
|
+
throw new Error("Worker is not a valid worker");
|
|
12
|
+
}
|
|
13
|
+
let sequence = 0;
|
|
14
|
+
const stream = new Transform({
|
|
15
|
+
transform(chunk, _encoding, callback) {
|
|
16
|
+
try {
|
|
17
|
+
worker.postMessage({
|
|
18
|
+
type: "RSC_CHUNK",
|
|
19
|
+
id: options.route,
|
|
20
|
+
chunk,
|
|
21
|
+
sequence: sequence++
|
|
22
|
+
});
|
|
23
|
+
callback();
|
|
24
|
+
} catch (error) {
|
|
25
|
+
callback(error);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
flush(callback) {
|
|
29
|
+
try {
|
|
30
|
+
worker.postMessage({
|
|
31
|
+
type: "RSC_END",
|
|
32
|
+
id: options.route
|
|
33
|
+
});
|
|
34
|
+
callback();
|
|
35
|
+
} catch (error) {
|
|
36
|
+
callback(error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
worker.postMessage({
|
|
41
|
+
type: "ROUTE_READY",
|
|
42
|
+
id: options.route,
|
|
43
|
+
// replace server with client
|
|
44
|
+
moduleRootPath: options.moduleRootPath,
|
|
45
|
+
moduleBaseURL: options.moduleBaseURL,
|
|
46
|
+
cssFiles: options.cssFiles,
|
|
47
|
+
pipeableStreamOptions: options.pipeableStreamOptions,
|
|
48
|
+
projectRoot: options.projectRoot
|
|
49
|
+
});
|
|
50
|
+
return stream;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { createRscToHtmlStream };
|
|
54
|
+
//# sourceMappingURL=rscToHtmlStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rscToHtmlStream.js","sources":["../../../plugin/react-static/rscToHtmlStream.ts"],"sourcesContent":["/**\n * rscToHtmlStream.ts\n *\n * PURPOSE: Transforms RSC stream to HTML stream via worker communication\n *\n * This module:\n * 1. Takes RSC stream as input\n * 2. Communicates with worker to transform RSC to HTML\n * 3. Returns a writeable stream of HTML content\n * 4. Handles worker message processing and error cases\n */\n\nimport { Transform } from \"node:stream\";\nimport type {\n HtmlWorkerInputMessage,\n} from \"../worker/types.js\";\nimport type { CreateHandlerOptions } from \"../types.js\";\nimport type { Worker } from \"node:worker_threads\";\nimport type { ViteDevServer } from \"vite\";\n\nexport type RscToHtmlOptions = Pick<\n CreateHandlerOptions,\n | \"worker\"\n | \"route\"\n | \"moduleRootPath\"\n | \"moduleBaseURL\"\n | \"pipeableStreamOptions\"\n | \"build\"\n | \"cssFiles\"\n | \"projectRoot\"\n>;\n\n/**\n * Creates a transform stream that converts RSC content to HTML via worker\n *\n * @param options The options for RSC to HTML transformation\n * @returns A transform stream that outputs HTML content\n */\nexport function createRscToHtmlStream(options: RscToHtmlOptions): Transform {\n const worker = options.worker as Worker | ViteDevServer;\n if (!(\"postMessage\" in worker)) {\n throw new Error(\"Worker is not a valid worker\");\n }\n let sequence = 0;\n const stream = new Transform({\n transform(chunk, _encoding, callback) {\n try {\n worker.postMessage({\n type: \"RSC_CHUNK\",\n id: options.route,\n chunk,\n sequence: sequence++,\n } satisfies HtmlWorkerInputMessage);\n callback();\n } catch (error) {\n callback(error as Error);\n }\n },\n flush(callback) {\n try {\n worker.postMessage({\n type: \"RSC_END\",\n id: options.route,\n } satisfies HtmlWorkerInputMessage);\n callback();\n } catch (error) {\n callback(error as Error);\n }\n },\n });\n\n // Signal ready to receive HTML\n worker.postMessage({\n type: \"ROUTE_READY\",\n id: options.route,\n // replace server with client\n moduleRootPath: options.moduleRootPath,\n moduleBaseURL: options.moduleBaseURL,\n cssFiles: options.cssFiles,\n pipeableStreamOptions: options.pipeableStreamOptions,\n projectRoot: options.projectRoot,\n } satisfies HtmlWorkerInputMessage);\n\n return stream;\n}\n"],"names":[],"mappings":";;;;;;;AAsCO,SAAS,sBAAsB,OAAsC,EAAA;AAC1E,EAAA,MAAM,SAAS,OAAQ,CAAA,MAAA;AACvB,EAAI,IAAA,EAAE,iBAAiB,MAAS,CAAA,EAAA;AAC9B,IAAM,MAAA,IAAI,MAAM,8BAA8B,CAAA;AAAA;AAEhD,EAAA,IAAI,QAAW,GAAA,CAAA;AACf,EAAM,MAAA,MAAA,GAAS,IAAI,SAAU,CAAA;AAAA,IAC3B,SAAA,CAAU,KAAO,EAAA,SAAA,EAAW,QAAU,EAAA;AACpC,MAAI,IAAA;AACF,QAAA,MAAA,CAAO,WAAY,CAAA;AAAA,UACjB,IAAM,EAAA,WAAA;AAAA,UACN,IAAI,OAAQ,CAAA,KAAA;AAAA,UACZ,KAAA;AAAA,UACA,QAAU,EAAA,QAAA;AAAA,SACsB,CAAA;AAClC,QAAS,QAAA,EAAA;AAAA,eACF,KAAO,EAAA;AACd,QAAA,QAAA,CAAS,KAAc,CAAA;AAAA;AACzB,KACF;AAAA,IACA,MAAM,QAAU,EAAA;AACd,MAAI,IAAA;AACF,QAAA,MAAA,CAAO,WAAY,CAAA;AAAA,UACjB,IAAM,EAAA,SAAA;AAAA,UACN,IAAI,OAAQ,CAAA;AAAA,SACoB,CAAA;AAClC,QAAS,QAAA,EAAA;AAAA,eACF,KAAO,EAAA;AACd,QAAA,QAAA,CAAS,KAAc,CAAA;AAAA;AACzB;AACF,GACD,CAAA;AAGD,EAAA,MAAA,CAAO,WAAY,CAAA;AAAA,IACjB,IAAM,EAAA,aAAA;AAAA,IACN,IAAI,OAAQ,CAAA,KAAA;AAAA;AAAA,IAEZ,gBAAgB,OAAQ,CAAA,cAAA;AAAA,IACxB,eAAe,OAAQ,CAAA,aAAA;AAAA,IACvB,UAAU,OAAQ,CAAA,QAAA;AAAA,IAClB,uBAAuB,OAAQ,CAAA,qBAAA;AAAA,IAC/B,aAAa,OAAQ,CAAA;AAAA,GACW,CAAA;AAElC,EAAO,OAAA,MAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamHandler.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/streamHandler.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
+
import type { FileWriteEvent } from "../types.js";
|
|
1
2
|
export type ReactStaticPluginOptions = {};
|
|
3
|
+
export type ReactStaticEvent = FileWriteEvent | {
|
|
4
|
+
type: 'build.start';
|
|
5
|
+
data: {
|
|
6
|
+
pages: string[];
|
|
7
|
+
files: Array<[string, {
|
|
8
|
+
page: string;
|
|
9
|
+
props?: string;
|
|
10
|
+
}]>;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
2
13
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,EAEtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,EAEtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KAC1D,CAAC;CACH,CAAC"}
|
|
@@ -1,19 +1,36 @@
|
|
|
1
|
-
type ResolvePageOptions = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exportName: string;
|
|
1
|
+
type ResolvePageOptions<N extends string> = {
|
|
2
|
+
id: string;
|
|
3
|
+
exportName: N;
|
|
4
|
+
loader: (id: string) => Promise<any>;
|
|
6
5
|
};
|
|
7
|
-
type ResolvePageResult = {
|
|
6
|
+
type ResolvePageResult<T, N extends string> = {
|
|
8
7
|
type: "success";
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Page: T;
|
|
9
|
+
module: {
|
|
10
|
+
[key in N]: T;
|
|
11
|
+
};
|
|
11
12
|
} | {
|
|
12
13
|
type: "error";
|
|
13
14
|
error: Error;
|
|
14
15
|
} | {
|
|
15
16
|
type: "skip";
|
|
16
17
|
};
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Resolves a page component from a module.
|
|
20
|
+
*
|
|
21
|
+
* During development (ssrLoadModule):
|
|
22
|
+
* - Real modules have exports available directly on the module object
|
|
23
|
+
* - Virtual modules have exports stored in temporaryReferences
|
|
24
|
+
*
|
|
25
|
+
* @param options.id - The module ID to resolve
|
|
26
|
+
* @param options.exportName - The name of the export to resolve (e.g. 'Page')
|
|
27
|
+
* @param options.loader - The loader function to use for loading the module
|
|
28
|
+
*
|
|
29
|
+
* @returns A result object containing:
|
|
30
|
+
* - type: "success" | "error" | "skip"
|
|
31
|
+
* - Page: The resolved page component if successful
|
|
32
|
+
* - error: Error message if failed
|
|
33
|
+
*/
|
|
34
|
+
export declare const resolvePage: <T, N extends string>({ id, exportName, loader, }: ResolvePageOptions<N>) => Promise<ResolvePageResult<T, N>>;
|
|
18
35
|
export {};
|
|
19
36
|
//# sourceMappingURL=resolvePage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../plugin/resolvePage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../plugin/resolvePage.ts"],"names":[],"mappings":"AACA,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,+BAIlD,kBAAkB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAmDzD,CAAC"}
|
|
@@ -3,55 +3,57 @@
|
|
|
3
3
|
* Copyright (c) Nico Brinkkemper
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}) {
|
|
14
|
-
if (stashedPages.length > 0 && stashedPages.includes(path)) {
|
|
15
|
-
return {
|
|
16
|
-
type: "success",
|
|
17
|
-
key: path,
|
|
18
|
-
Page: pageModule
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
if (!pageModule) {
|
|
22
|
-
return {
|
|
23
|
-
type: "error",
|
|
24
|
-
error: new Error(`pageModule is ${typeof pageModule}`)
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
const keys = typeof pageModule === "object" && pageModule != null ? Object.keys(pageModule) : [];
|
|
28
|
-
const found = keys.find((v) => v === exportName || v === url || v === path);
|
|
29
|
-
if (found) {
|
|
30
|
-
if (typeof pageModule[found] === "function") {
|
|
6
|
+
const resolvePage = async ({
|
|
7
|
+
id,
|
|
8
|
+
exportName,
|
|
9
|
+
loader
|
|
10
|
+
}) => {
|
|
11
|
+
const pageLoadResult = await (async () => {
|
|
12
|
+
try {
|
|
31
13
|
return {
|
|
32
14
|
type: "success",
|
|
33
|
-
key:
|
|
34
|
-
|
|
15
|
+
key: id,
|
|
16
|
+
module: await loader(id)
|
|
35
17
|
};
|
|
36
|
-
}
|
|
37
|
-
if (typeof pageModule === "object" && pageModule != null && Object.keys(pageModule).includes("type"))
|
|
38
|
-
return pageModule;
|
|
18
|
+
} catch (error) {
|
|
39
19
|
return {
|
|
40
20
|
type: "error",
|
|
41
|
-
|
|
42
|
-
error: pageModule[found]["error"]
|
|
21
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
43
22
|
};
|
|
44
23
|
}
|
|
24
|
+
})();
|
|
25
|
+
if (pageLoadResult.type !== "success") {
|
|
26
|
+
return pageLoadResult;
|
|
27
|
+
}
|
|
28
|
+
const { module } = pageLoadResult;
|
|
29
|
+
const Page = module[exportName];
|
|
30
|
+
if (module instanceof Error) {
|
|
31
|
+
return {
|
|
32
|
+
type: "error",
|
|
33
|
+
error: module
|
|
34
|
+
};
|
|
35
|
+
} else if (!(exportName in module)) {
|
|
36
|
+
return {
|
|
37
|
+
type: "error",
|
|
38
|
+
error: new Error(`Export ${exportName} not found in module ${id}`)
|
|
39
|
+
};
|
|
40
|
+
} else if (!Page) {
|
|
41
|
+
return {
|
|
42
|
+
type: "error",
|
|
43
|
+
error: new Error(`Export ${exportName} is null or undefined in module ${id}`)
|
|
44
|
+
};
|
|
45
|
+
} else if (Page instanceof Error) {
|
|
46
|
+
return {
|
|
47
|
+
type: "error",
|
|
48
|
+
error: Page
|
|
49
|
+
};
|
|
45
50
|
}
|
|
46
|
-
if (keys.includes("type")) return pageModule;
|
|
47
51
|
return {
|
|
48
|
-
type: "
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{ cause: pageModule }
|
|
52
|
-
)
|
|
52
|
+
type: "success",
|
|
53
|
+
Page,
|
|
54
|
+
module
|
|
53
55
|
};
|
|
54
|
-
}
|
|
56
|
+
};
|
|
55
57
|
|
|
56
58
|
export { resolvePage };
|
|
57
59
|
//# sourceMappingURL=resolvePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePage.js","sources":["../../plugin/resolvePage.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"resolvePage.js","sources":["../../plugin/resolvePage.ts"],"sourcesContent":["\ntype ResolvePageOptions<N extends string> = {\n id: string;\n exportName: N;\n loader: (id: string) => Promise<any>;\n};\n\ntype ResolvePageResult<T, N extends string> =\n | { type: \"success\"; Page: T; module: { [key in N]: T } }\n | { type: \"error\"; error: Error }\n | { type: \"skip\" };\n\n/**\n * Resolves a page component from a module.\n *\n * During development (ssrLoadModule):\n * - Real modules have exports available directly on the module object\n * - Virtual modules have exports stored in temporaryReferences\n * \n * @param options.id - The module ID to resolve\n * @param options.exportName - The name of the export to resolve (e.g. 'Page')\n * @param options.loader - The loader function to use for loading the module\n *\n * @returns A result object containing:\n * - type: \"success\" | \"error\" | \"skip\"\n * - Page: The resolved page component if successful\n * - error: Error message if failed\n */\nexport const resolvePage = async <T, N extends string>({\n id,\n exportName,\n loader,\n}: ResolvePageOptions<N>): Promise<ResolvePageResult<T, N>> => {\n // Check if this is a stashed page that needs special handling\n const pageLoadResult = await (async (): Promise<\n | { type: \"success\"; key: string; module: { [key in N]: T } }\n | { type: \"error\"; error: Error; module?: never }\n > => {\n try {\n return {\n type: \"success\",\n key: id,\n module: await loader(id),\n };\n } catch (error) {\n return {\n type: \"error\",\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n })();\n\n if (pageLoadResult.type !== \"success\") {\n return pageLoadResult;\n }\n const { module } = pageLoadResult;\n const Page = module[exportName as N];\n if (module instanceof Error) {\n return {\n type: \"error\",\n error: module,\n };\n } else if (!(exportName in module)) {\n return {\n type: \"error\",\n error: new Error(`Export ${exportName} not found in module ${id}`),\n };\n } else if (!Page) {\n return {\n type: \"error\",\n error: new Error(`Export ${exportName} is null or undefined in module ${id}`),\n };\n } else if (Page instanceof Error) {\n return {\n type: \"error\",\n error: Page,\n };\n }\n return {\n type: \"success\",\n Page,\n module: module as { [key in N]: T },\n };\n};\n"],"names":[],"mappings":";;;;;AA4BO,MAAM,cAAc,OAA4B;AAAA,EACrD,EAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAA+D,KAAA;AAE7D,EAAM,MAAA,cAAA,GAAiB,OAAO,YAGzB;AACH,IAAI,IAAA;AACF,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,GAAK,EAAA,EAAA;AAAA,QACL,MAAA,EAAQ,MAAM,MAAA,CAAO,EAAE;AAAA,OACzB;AAAA,aACO,KAAO,EAAA;AACd,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,KAAA,EAAO,iBAAiB,KAAQ,GAAA,KAAA,GAAQ,IAAI,KAAM,CAAA,MAAA,CAAO,KAAK,CAAC;AAAA,OACjE;AAAA;AACF,GACC,GAAA;AAEH,EAAI,IAAA,cAAA,CAAe,SAAS,SAAW,EAAA;AACrC,IAAO,OAAA,cAAA;AAAA;AAET,EAAM,MAAA,EAAE,QAAW,GAAA,cAAA;AACnB,EAAM,MAAA,IAAA,GAAO,OAAO,UAAe,CAAA;AACnC,EAAA,IAAI,kBAAkB,KAAO,EAAA;AAC3B,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA,GACF,MAAA,IAAW,EAAE,UAAA,IAAc,MAAS,CAAA,EAAA;AAClC,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,IAAI,KAAA,CAAM,UAAU,UAAU,CAAA,qBAAA,EAAwB,EAAE,CAAE,CAAA;AAAA,KACnE;AAAA,GACF,MAAA,IAAW,CAAC,IAAM,EAAA;AAChB,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,IAAI,KAAA,CAAM,UAAU,UAAU,CAAA,gCAAA,EAAmC,EAAE,CAAE,CAAA;AAAA,KAC9E;AAAA,GACF,MAAA,IAAW,gBAAgB,KAAO,EAAA;AAChC,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA;AAEF,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,SAAA;AAAA,IACN,IAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -1,19 +1,52 @@
|
|
|
1
|
-
type ResolvePropsOptions = {
|
|
2
|
-
|
|
3
|
-
path: string;
|
|
4
|
-
exportName: string;
|
|
1
|
+
type ResolvePropsOptions<N extends string> = {
|
|
2
|
+
id: string;
|
|
5
3
|
url: string;
|
|
4
|
+
exportName: N;
|
|
5
|
+
loader: (id: string) => Promise<any>;
|
|
6
6
|
};
|
|
7
|
-
type ResolvePropsResult = {
|
|
7
|
+
type ResolvePropsResult<T, N extends string> = {
|
|
8
8
|
type: "success";
|
|
9
9
|
key: string;
|
|
10
|
-
props:
|
|
10
|
+
props: T;
|
|
11
|
+
module?: {
|
|
12
|
+
[key in N]: T;
|
|
13
|
+
};
|
|
11
14
|
} | {
|
|
12
15
|
type: "error";
|
|
13
16
|
error: Error;
|
|
14
17
|
} | {
|
|
15
18
|
type: "skip";
|
|
16
19
|
};
|
|
17
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Resolves props from a module, handling both real and virtual modules.
|
|
22
|
+
*
|
|
23
|
+
* During development (ssrLoadModule):
|
|
24
|
+
* - Real modules have exports available directly on the module object
|
|
25
|
+
* - Virtual modules have exports stored in temporaryReferences
|
|
26
|
+
*
|
|
27
|
+
* During build (createBuildLoader):
|
|
28
|
+
* - Transformed modules (with ast/code) have exports as direct properties
|
|
29
|
+
* - The exports array contains just the names of those exports
|
|
30
|
+
* - We store the module in temporaryReferences for later use
|
|
31
|
+
* - We access exports directly from the module object
|
|
32
|
+
*
|
|
33
|
+
* Props can be:
|
|
34
|
+
* 1. A function that takes a URL and returns props
|
|
35
|
+
* 2. A direct object of props
|
|
36
|
+
* 3. A renamed export (where the actual export name differs from the expected name)
|
|
37
|
+
*
|
|
38
|
+
* @param options.propsModule - The module object from ssrLoadModule or createBuildLoader
|
|
39
|
+
* @param options.path - The normalized path to the module
|
|
40
|
+
* @param options.url - The URL route this page handles
|
|
41
|
+
* @param options.exportName - The name of the export to resolve (e.g. 'props')
|
|
42
|
+
* @param options.temporaryReferences - WeakMap used to store and retrieve virtual module references
|
|
43
|
+
*
|
|
44
|
+
* @returns A result object containing:
|
|
45
|
+
* - type: "success" | "error" | "skip"
|
|
46
|
+
* - key: The export name if successful
|
|
47
|
+
* - props: The resolved props if successful
|
|
48
|
+
* - error: Error message if failed
|
|
49
|
+
*/
|
|
50
|
+
export declare const resolveProps: <T, N extends string>({ id, url, exportName, loader, }: ResolvePropsOptions<N>) => Promise<ResolvePropsResult<T, N>>;
|
|
18
51
|
export {};
|
|
19
52
|
//# sourceMappingURL=resolveProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveProps.d.ts","sourceRoot":"","sources":["../../plugin/resolveProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveProps.d.ts","sourceRoot":"","sources":["../../plugin/resolveProps.ts"],"names":[],"mappings":"AACA,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAG;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,oCAKnD,mBAAmB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CA8H3D,CAAC"}
|