vike 0.4.220 → 0.4.221-commit-ab9e52a
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/dist/cjs/__internal/index.js +5 -23
- package/dist/cjs/node/api/build.js +33 -24
- package/dist/cjs/node/api/context.js +6 -8
- package/dist/cjs/node/api/prepareViteApiCall.js +23 -21
- package/dist/cjs/node/api/prerender.js +1 -0
- package/dist/cjs/node/api/utils.js +2 -1
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +2 -0
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +4 -8
- package/dist/cjs/node/plugin/onLoad.js +6 -1
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +34 -33
- package/dist/cjs/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/cjs/node/plugin/plugins/buildApp.js +72 -0
- package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +12 -12
- package/dist/cjs/node/plugin/plugins/buildConfig.js +17 -12
- package/dist/cjs/node/plugin/plugins/buildEntry/index.js +28 -24
- package/dist/cjs/node/plugin/plugins/commonConfig.js +9 -7
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +7 -4
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +15 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +11 -6
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +59 -22
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +159 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +40 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +9 -64
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +403 -590
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
- package/dist/cjs/node/plugin/plugins/packageJsonFile.js +2 -2
- package/dist/cjs/node/plugin/plugins/previewConfig.js +7 -7
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +3 -5
- package/dist/cjs/node/plugin/shared/findPageFiles.js +2 -1
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +20 -0
- package/dist/cjs/{utils → node/plugin/shared}/getOutDirs.js +70 -61
- package/dist/cjs/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
- package/dist/cjs/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
- package/dist/cjs/node/plugin/utils.js +1 -2
- package/dist/cjs/node/prerender/context.js +31 -0
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +46 -0
- package/dist/cjs/node/prerender/runPrerender.js +89 -68
- package/dist/cjs/node/prerender/utils.js +2 -2
- package/dist/cjs/node/runtime/globalContext.js +222 -150
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/cjs/node/runtime/html/injectAssets.js +4 -4
- package/dist/cjs/node/runtime/html/renderHtml.js +4 -5
- package/dist/cjs/node/runtime/page-files/setup.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +2 -27
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/cjs/node/runtime/renderPage/isFontFallback.js +29 -0
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +5 -4
- package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +6 -5
- package/dist/cjs/node/runtime/renderPage.js +31 -29
- package/dist/cjs/node/runtime/utils.js +3 -3
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/cjs/node/shared/resolveBase.js +7 -0
- package/dist/cjs/shared/getPageConfigsRuntime.js +20 -0
- package/dist/cjs/shared/getPageContextUrlComputed.js +6 -1
- package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -1
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -3
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -5
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/cjs/shared/getPageFiles.js +1 -3
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +15 -6
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +69 -18
- package/dist/cjs/shared/route/loadPageRoutes.js +1 -0
- package/dist/cjs/shared/utils.js +0 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/debug.js +8 -6
- package/dist/cjs/utils/findFile.js +4 -3
- package/dist/cjs/utils/isDev.js +2 -2
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +2 -2
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/objectAssignSafe.js +7 -0
- package/dist/cjs/utils/path.js +48 -0
- package/dist/cjs/utils/requireResolve.js +3 -3
- package/dist/esm/__internal/index.d.ts +2 -2
- package/dist/esm/__internal/index.js +7 -26
- package/dist/esm/client/client-routing-runtime/createPageContext.js +5 -9
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +23 -18
- package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/index.js +0 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.d.ts +0 -4
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +0 -11
- package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -70
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/skipLink.js +0 -1
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/getPageContext.js +3 -4
- package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -2
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +31 -25
- package/dist/esm/node/api/context.d.ts +4 -4
- package/dist/esm/node/api/context.js +6 -9
- package/dist/esm/node/api/prepareViteApiCall.d.ts +4 -3
- package/dist/esm/node/api/prepareViteApiCall.js +24 -22
- package/dist/esm/node/api/prerender.js +1 -0
- package/dist/esm/node/api/utils.d.ts +2 -1
- package/dist/esm/node/api/utils.js +2 -1
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +2 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/node/plugin/index.d.ts +29 -1
- package/dist/esm/node/plugin/index.js +5 -9
- package/dist/esm/node/plugin/onLoad.js +7 -2
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +35 -34
- package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/buildApp.js +70 -0
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -2
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +11 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +16 -11
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/buildEntry/index.js +28 -24
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +8 -2
- package/dist/esm/node/plugin/plugins/commonConfig.js +7 -5
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +6 -3
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +14 -9
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +11 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.d.ts +6 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +58 -21
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.d.ts +39 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +154 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +15 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +41 -24
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +8 -18
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +10 -65
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +6 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +12 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +10 -122
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +407 -594
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.d.ts → virtual-files/isRuntimeEnvMatch.d.ts} +1 -1
- package/dist/esm/node/plugin/plugins/packageJsonFile.js +1 -1
- package/dist/esm/node/plugin/plugins/previewConfig.js +5 -5
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +4 -6
- package/dist/esm/node/plugin/shared/findPageFiles.js +2 -1
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +2 -0
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +17 -0
- package/dist/esm/{utils → node/plugin/shared}/getOutDirs.d.ts +1 -1
- package/dist/esm/{utils → node/plugin/shared}/getOutDirs.js +52 -43
- package/dist/esm/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
- package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.d.ts +2 -5
- package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
- package/dist/esm/node/plugin/utils.d.ts +0 -1
- package/dist/esm/node/plugin/utils.js +1 -2
- package/dist/esm/node/prerender/context.d.ts +11 -0
- package/dist/esm/node/prerender/context.js +29 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +12 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +44 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -1
- package/dist/esm/node/prerender/runPrerender.js +90 -69
- package/dist/esm/node/prerender/utils.d.ts +2 -2
- package/dist/esm/node/prerender/utils.js +2 -2
- package/dist/esm/node/runtime/globalContext.d.ts +44 -36
- package/dist/esm/node/runtime/globalContext.js +223 -151
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +4 -1
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets.js +4 -4
- package/dist/esm/node/runtime/html/renderHtml.js +4 -5
- package/dist/esm/node/runtime/page-files/setup.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -26
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/esm/node/runtime/renderPage/isFontFallback.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/isFontFallback.js +27 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +6 -5
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +26 -10
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +5 -5
- package/dist/esm/node/runtime/renderPage.js +32 -30
- package/dist/esm/node/runtime/utils.d.ts +3 -3
- package/dist/esm/node/runtime/utils.js +3 -3
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/esm/node/shared/resolveBase.d.ts +5 -1
- package/dist/esm/node/shared/resolveBase.js +7 -0
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +13 -0
- package/dist/esm/shared/getPageConfigsRuntime.js +18 -0
- package/dist/esm/shared/getPageContextUrlComputed.js +6 -1
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -2
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +0 -3
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +0 -5
- package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +1 -1
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/esm/shared/getPageFiles.d.ts +0 -1
- package/dist/esm/shared/getPageFiles.js +0 -1
- package/dist/esm/shared/page-configs/Config.d.ts +83 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +30 -18
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +6 -8
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +15 -6
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +7 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +70 -19
- package/dist/esm/shared/route/loadPageRoutes.js +1 -0
- package/dist/esm/shared/utils.d.ts +0 -1
- package/dist/esm/shared/utils.js +0 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertSetup.js +1 -1
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +8 -6
- package/dist/esm/utils/findFile.js +2 -1
- package/dist/esm/utils/isDev.js +3 -3
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/objectAssignSafe.d.ts +1 -0
- package/dist/esm/utils/objectAssignSafe.js +4 -0
- package/dist/esm/utils/path.d.ts +14 -0
- package/dist/esm/utils/path.js +46 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -17
- package/dist/cjs/node/plugin/plugins/importUserCode/addImportStatement.js +0 -29
- package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +0 -16
- package/dist/cjs/node/shared/assertPluginManifest.js +0 -20
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -16
- package/dist/cjs/shared/assertPageFilePath.js +0 -11
- package/dist/cjs/shared/getPageFiles/getPageFiles.js +0 -48
- package/dist/cjs/utils/filesystemPathHandling.js +0 -18
- package/dist/cjs/utils/path-shim.js +0 -19
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -15
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +0 -14
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.js +0 -27
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.d.ts +0 -5
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +0 -5
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +0 -14
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -12
- package/dist/esm/node/shared/assertPluginManifest.js +0 -18
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -10
- package/dist/esm/node/shared/assertRuntimeManifest.js +0 -14
- package/dist/esm/shared/assertPageFilePath.d.ts +0 -2
- package/dist/esm/shared/assertPageFilePath.js +0 -9
- package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +0 -15
- package/dist/esm/shared/getPageFiles/getPageFiles.js +0 -46
- package/dist/esm/utils/filesystemPathHandling.d.ts +0 -4
- package/dist/esm/utils/filesystemPathHandling.js +0 -16
- package/dist/esm/utils/path-shim.d.ts +0 -2
- package/dist/esm/utils/path-shim.js +0 -17
- /package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.d.ts → getVikeConfig/getConfigFileExport.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.d.ts → virtual-files/debug.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.d.ts → virtual-files/getVirtualFilePageConfigValuesAll.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.d.ts → virtual-files/getVirtualFilePageConfigs.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
- /package/dist/esm/node/plugin/{resolveClientEntriesDev.d.ts → shared/resolveClientEntriesDev.d.ts} +0 -0
|
@@ -4,16 +4,15 @@ export { runPrerenderFromAutoRun };
|
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { route } from '../../shared/route/index.js';
|
|
7
|
-
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable,
|
|
7
|
+
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, changeEnumerable, onSetupPrerender, isObject, makePublicCopy } from './utils.js';
|
|
8
8
|
import { prerenderPage, prerender404Page, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
9
9
|
import pc from '@brillout/picocolors';
|
|
10
10
|
import { cpus } from 'os';
|
|
11
|
-
import {
|
|
11
|
+
import { getGlobalContextInternal, initGlobalContext_runPrerender, setGlobalContext_isPrerendering } from '../runtime/globalContext.js';
|
|
12
12
|
import { resolveConfig } from 'vite';
|
|
13
13
|
import { getPageFilesServerSide } from '../../shared/getPageFiles.js';
|
|
14
14
|
import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.js';
|
|
15
15
|
import { getUrlFromRouteString } from '../../shared/route/resolveRouteString.js';
|
|
16
|
-
import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
|
|
17
16
|
import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValueRuntime.js';
|
|
18
17
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
19
18
|
import { isErrorPage } from '../../shared/error-page.js';
|
|
@@ -25,8 +24,12 @@ import { noRouteMatch } from '../../shared/route/noRouteMatch.js';
|
|
|
25
24
|
import { getVikeConfig } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
|
|
26
25
|
import { logErrorHint } from '../runtime/renderPage/logErrorHint.js';
|
|
27
26
|
import { executeHook, isUserHookError } from '../../shared/hooks/executeHook.js';
|
|
28
|
-
import { getConfigValueBuildTime } from '../../shared/page-configs/getConfigValueBuildTime.js';
|
|
29
27
|
import { prepareViteApiCall } from '../api/prepareViteApiCall.js';
|
|
28
|
+
import { setContextIsPrerendering } from './context.js';
|
|
29
|
+
import { resolvePrerenderConfig, resolvePrerenderConfigLocal } from './resolvePrerenderConfig.js';
|
|
30
|
+
import { getOutDirs } from '../plugin/shared/getOutDirs.js';
|
|
31
|
+
import { isVikeCli } from '../cli/context.js';
|
|
32
|
+
import { isViteCliCall } from '../plugin/shared/isViteCliCall.js';
|
|
30
33
|
async function runPrerenderFromAPI(options = {}) {
|
|
31
34
|
return await runPrerender(options, 'prerender()');
|
|
32
35
|
// - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
|
|
@@ -44,18 +47,25 @@ async function runPrerenderFromCLIPrerenderCommand() {
|
|
|
44
47
|
process.exit(1);
|
|
45
48
|
}
|
|
46
49
|
runPrerender_forceExit();
|
|
50
|
+
assert(false);
|
|
47
51
|
}
|
|
48
|
-
async function runPrerenderFromAutoRun(viteConfig) {
|
|
52
|
+
async function runPrerenderFromAutoRun(viteConfig, config) {
|
|
53
|
+
let prerenderContextPublic;
|
|
49
54
|
try {
|
|
50
|
-
await runPrerender({ viteConfig });
|
|
55
|
+
const ret = await runPrerender({ viteConfig });
|
|
56
|
+
prerenderContextPublic = ret.prerenderContextPublic;
|
|
51
57
|
}
|
|
52
58
|
catch (err) {
|
|
53
59
|
console.error(err);
|
|
54
60
|
logErrorHint(err);
|
|
55
61
|
process.exit(1);
|
|
56
62
|
}
|
|
63
|
+
config.vike.prerenderContext = prerenderContextPublic;
|
|
64
|
+
const forceExit = isVikeCli() || isViteCliCall();
|
|
65
|
+
return { forceExit };
|
|
57
66
|
}
|
|
58
67
|
async function runPrerender(options = {}, standaloneTrigger) {
|
|
68
|
+
setContextIsPrerendering();
|
|
59
69
|
checkOutdatedOptions(options);
|
|
60
70
|
onSetupPrerender();
|
|
61
71
|
setGlobalContext_isPrerendering();
|
|
@@ -69,7 +79,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
69
79
|
const vikeConfig = await getVikeConfig(viteConfig);
|
|
70
80
|
const { outDirClient } = getOutDirs(viteConfig);
|
|
71
81
|
const { root } = viteConfig;
|
|
72
|
-
const prerenderConfig = vikeConfig
|
|
82
|
+
const prerenderConfig = resolvePrerenderConfig(vikeConfig);
|
|
73
83
|
validatePrerenderConfig(prerenderConfig);
|
|
74
84
|
if (!prerenderConfig) {
|
|
75
85
|
assert(standaloneTrigger);
|
|
@@ -80,46 +90,47 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
80
90
|
const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
|
|
81
91
|
const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
|
|
82
92
|
await initGlobalContext_runPrerender();
|
|
83
|
-
const globalContext =
|
|
93
|
+
const globalContext = await getGlobalContextInternal();
|
|
84
94
|
globalContext.pageFilesAll.forEach(assertExportNames);
|
|
85
|
-
const prerenderContext = {
|
|
86
|
-
|
|
87
|
-
_urlHandler: null,
|
|
88
|
-
_noExtraDir: noExtraDir ?? false,
|
|
95
|
+
const prerenderContext = {
|
|
96
|
+
noExtraDir: noExtraDir ?? false,
|
|
89
97
|
pageContexts: [],
|
|
90
|
-
pageContextInit: options.pageContextInit ?? null
|
|
91
|
-
|
|
98
|
+
pageContextInit: options.pageContextInit ?? null,
|
|
99
|
+
prerenderedPageContexts: {},
|
|
100
|
+
output: []
|
|
101
|
+
};
|
|
92
102
|
const doNotPrerenderList = [];
|
|
93
|
-
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit);
|
|
94
|
-
await callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList);
|
|
95
|
-
await handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit);
|
|
96
|
-
await callOnPrerenderStartHook(prerenderContext);
|
|
97
|
-
const prerenderedPageContexts = {};
|
|
103
|
+
await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, concurrencyLimit, globalContext);
|
|
104
|
+
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
|
|
105
|
+
await handlePagesWithStaticRoutes(prerenderContext, globalContext, doNotPrerenderList, concurrencyLimit);
|
|
106
|
+
await callOnPrerenderStartHook(prerenderContext, globalContext);
|
|
98
107
|
let prerenderedCount = 0;
|
|
108
|
+
// Write files as soon as pages finish rendering (instead of writing all files at once only after all pages have rendered).
|
|
99
109
|
const onComplete = async (htmlFile) => {
|
|
100
110
|
prerenderedCount++;
|
|
101
111
|
if (htmlFile.pageId) {
|
|
102
|
-
prerenderedPageContexts[htmlFile.pageId] = htmlFile.pageContext;
|
|
112
|
+
prerenderContext.prerenderedPageContexts[htmlFile.pageId] = htmlFile.pageContext;
|
|
103
113
|
}
|
|
104
|
-
await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, logLevel);
|
|
114
|
+
await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
|
|
105
115
|
};
|
|
106
|
-
await routeAndPrerender(prerenderContext, concurrencyLimit, onComplete);
|
|
107
|
-
warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerenderList);
|
|
108
|
-
await prerender404(
|
|
116
|
+
await routeAndPrerender(prerenderContext, globalContext, concurrencyLimit, onComplete);
|
|
117
|
+
warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
|
|
118
|
+
await prerender404(prerenderContext, globalContext, onComplete);
|
|
109
119
|
if (logLevel === 'info') {
|
|
110
120
|
console.log(`${pc.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
111
121
|
}
|
|
112
|
-
warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial);
|
|
113
|
-
|
|
122
|
+
await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
|
|
123
|
+
const prerenderContextPublic = makePublic(prerenderContext);
|
|
124
|
+
return { viteConfig, prerenderContextPublic };
|
|
114
125
|
}
|
|
115
|
-
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurrencyLimit) {
|
|
126
|
+
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurrencyLimit, globalContext) {
|
|
116
127
|
// V1 design
|
|
117
128
|
pageConfigs.forEach((pageConfig) => {
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
const configValue = resolvePrerenderConfigLocal(pageConfig);
|
|
130
|
+
if (!configValue)
|
|
131
|
+
return;
|
|
132
|
+
const { value, configValueFilePathToShowToUser } = configValue;
|
|
133
|
+
if (value === false) {
|
|
123
134
|
doNotPrerenderList.push({
|
|
124
135
|
pageId: pageConfig.pageId,
|
|
125
136
|
setByConfigName: 'prerender',
|
|
@@ -130,7 +141,6 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, concurr
|
|
|
130
141
|
});
|
|
131
142
|
// Old design
|
|
132
143
|
// TODO/v1-release: remove
|
|
133
|
-
const globalContext = getGlobalContext();
|
|
134
144
|
await Promise.all(globalContext.pageFilesAll
|
|
135
145
|
.filter((p) => {
|
|
136
146
|
assertExportNames(p);
|
|
@@ -173,9 +183,8 @@ function assertExportNames(pageFile) {
|
|
|
173
183
|
const { exportNames, fileType } = pageFile;
|
|
174
184
|
assert(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
|
|
175
185
|
}
|
|
176
|
-
async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimit, doNotPrerenderList) {
|
|
186
|
+
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
|
|
177
187
|
const onBeforePrerenderStartHooks = [];
|
|
178
|
-
const globalContext = getGlobalContext();
|
|
179
188
|
// V1 design
|
|
180
189
|
await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
|
|
181
190
|
const hookName = 'onBeforePrerenderStart';
|
|
@@ -223,7 +232,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
223
232
|
}
|
|
224
233
|
const prerenderResult = await executeHook(() => hookFn(), { hookName, hookFilePath, hookTimeout }, null);
|
|
225
234
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
226
|
-
result.
|
|
235
|
+
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
227
236
|
{
|
|
228
237
|
const pageContextFound = prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, url));
|
|
229
238
|
if (pageContextFound) {
|
|
@@ -234,7 +243,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
234
243
|
assertUsage(false, `URL ${pc.cyan(url)} provided ${providedTwice}. Make sure to provide the URL only once instead.`);
|
|
235
244
|
}
|
|
236
245
|
}
|
|
237
|
-
const pageContextNew = createPageContext(url, prerenderContext);
|
|
246
|
+
const pageContextNew = await createPageContext(url, prerenderContext, globalContext);
|
|
238
247
|
objectAssign(pageContextNew, {
|
|
239
248
|
_providedByHook: {
|
|
240
249
|
hookFilePath,
|
|
@@ -248,12 +257,11 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, concurrencyLimi
|
|
|
248
257
|
});
|
|
249
258
|
objectAssign(pageContextNew, pageContext);
|
|
250
259
|
}
|
|
251
|
-
});
|
|
260
|
+
}));
|
|
252
261
|
})));
|
|
253
262
|
}
|
|
254
|
-
async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList, concurrencyLimit) {
|
|
263
|
+
async function handlePagesWithStaticRoutes(prerenderContext, globalContext, doNotPrerenderList, concurrencyLimit) {
|
|
255
264
|
// Pre-render pages with a static route
|
|
256
|
-
const globalContext = getGlobalContext();
|
|
257
265
|
await Promise.all(globalContext.pageRoutes.map((pageRoute) => concurrencyLimit(async () => {
|
|
258
266
|
const { pageId } = pageRoute;
|
|
259
267
|
if (doNotPrerenderList.find((p) => p.pageId === pageId)) {
|
|
@@ -279,7 +287,7 @@ async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList,
|
|
|
279
287
|
return;
|
|
280
288
|
}
|
|
281
289
|
const routeParams = {};
|
|
282
|
-
const pageContext = createPageContext(urlOriginal, prerenderContext);
|
|
290
|
+
const pageContext = await createPageContext(urlOriginal, prerenderContext, globalContext);
|
|
283
291
|
objectAssign(pageContext, {
|
|
284
292
|
_providedByHook: null,
|
|
285
293
|
routeParams,
|
|
@@ -297,11 +305,11 @@ async function handlePagesWithStaticRoutes(prerenderContext, doNotPrerenderList,
|
|
|
297
305
|
prerenderContext.pageContexts.push(pageContext);
|
|
298
306
|
})));
|
|
299
307
|
}
|
|
300
|
-
function createPageContext(urlOriginal, prerenderContext) {
|
|
308
|
+
async function createPageContext(urlOriginal, prerenderContext, globalContext) {
|
|
301
309
|
const pageContext = {
|
|
302
310
|
_urlHandler: null,
|
|
303
311
|
_urlRewrite: null,
|
|
304
|
-
_noExtraDir: prerenderContext.
|
|
312
|
+
_noExtraDir: prerenderContext.noExtraDir,
|
|
305
313
|
_prerenderContext: prerenderContext
|
|
306
314
|
};
|
|
307
315
|
const pageContextInit = {
|
|
@@ -309,13 +317,12 @@ function createPageContext(urlOriginal, prerenderContext) {
|
|
|
309
317
|
};
|
|
310
318
|
objectAssign(pageContextInit, prerenderContext.pageContextInit);
|
|
311
319
|
{
|
|
312
|
-
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit);
|
|
320
|
+
const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext);
|
|
313
321
|
objectAssign(pageContext, pageContextInitEnhanced);
|
|
314
322
|
}
|
|
315
323
|
return pageContext;
|
|
316
324
|
}
|
|
317
|
-
async function callOnPrerenderStartHook(prerenderContext) {
|
|
318
|
-
const globalContext = getGlobalContext();
|
|
325
|
+
async function callOnPrerenderStartHook(prerenderContext, globalContext) {
|
|
319
326
|
let onPrerenderStartHook;
|
|
320
327
|
// V1 design
|
|
321
328
|
if (globalContext.pageConfigs.length > 0) {
|
|
@@ -387,17 +394,20 @@ async function callOnPrerenderStartHook(prerenderContext) {
|
|
|
387
394
|
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
388
395
|
// Set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in onPrerenderStart() hook, e.g. /examples/i18n/
|
|
389
396
|
const { restoreEnumerable, addPageContextComputedUrl } = makePageContextComputedUrlNonEnumerable(prerenderContext.pageContexts);
|
|
390
|
-
let result = await executeHook(() =>
|
|
391
|
-
|
|
397
|
+
let result = await executeHook(() => {
|
|
398
|
+
const prerenderContextPublic = makePublic(prerenderContext);
|
|
392
399
|
// TODO/v1-release: remove warning
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
400
|
+
Object.defineProperty(prerenderContextPublic, 'prerenderPageContexts', {
|
|
401
|
+
get() {
|
|
402
|
+
assertWarning(false, `prerenderPageContexts has been renamed pageContexts, see ${docLink}`, {
|
|
403
|
+
showStackTrace: true,
|
|
404
|
+
onlyOnce: true
|
|
405
|
+
});
|
|
406
|
+
return prerenderContext.pageContexts;
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
return hookFn(prerenderContextPublic);
|
|
410
|
+
}, onPrerenderStartHook, null);
|
|
401
411
|
restoreEnumerable();
|
|
402
412
|
if (result === null || result === undefined) {
|
|
403
413
|
return;
|
|
@@ -439,8 +449,7 @@ async function callOnPrerenderStartHook(prerenderContext) {
|
|
|
439
449
|
});
|
|
440
450
|
addPageContextComputedUrl(prerenderContext.pageContexts);
|
|
441
451
|
}
|
|
442
|
-
async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete) {
|
|
443
|
-
const globalContext = getGlobalContext();
|
|
452
|
+
async function routeAndPrerender(prerenderContext, globalContext, concurrencyLimit, onComplete) {
|
|
444
453
|
assert(globalContext.isPrerendering);
|
|
445
454
|
// Route all URLs
|
|
446
455
|
await Promise.all(prerenderContext.pageContexts.map((pageContext) => concurrencyLimit(async () => {
|
|
@@ -504,7 +513,7 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
|
|
|
504
513
|
pageContext,
|
|
505
514
|
htmlString: documentHtml,
|
|
506
515
|
pageContextSerialized,
|
|
507
|
-
doNotCreateExtraDirectory: prerenderContext.
|
|
516
|
+
doNotCreateExtraDirectory: prerenderContext.noExtraDir,
|
|
508
517
|
pageId
|
|
509
518
|
});
|
|
510
519
|
})));
|
|
@@ -522,8 +531,7 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
|
|
|
522
531
|
assertWarning(false, `The ${providedByHook.hookName}() hook defined by ${providedByHook.hookFilePath} returns the URL ${pc.cyan(urlOriginal)}, while ${setByConfigFile} sets the config ${pc.cyan(setByConfigName)} to ${pc.cyan(String(setByConfigValue))}. This is contradictory: either don't set the config ${pc.cyan(setByConfigName)} to ${pc.cyan(String(setByConfigValue))} or remove the URL ${pc.cyan(urlOriginal)} from the list of URLs to be pre-rendered.`, { onlyOnce: true });
|
|
523
532
|
});
|
|
524
533
|
}
|
|
525
|
-
function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial) {
|
|
526
|
-
const globalContext = getGlobalContext();
|
|
534
|
+
async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
|
|
527
535
|
const isV1 = globalContext.pageConfigs.length > 0;
|
|
528
536
|
const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
|
|
529
537
|
/* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
|
|
@@ -539,11 +547,11 @@ function warnMissingPages(prerenderedPageContexts, doNotPrerenderList, partial)
|
|
|
539
547
|
assertWarning(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
|
|
540
548
|
});
|
|
541
549
|
}
|
|
542
|
-
async function prerender404(
|
|
543
|
-
if (!Object.values(prerenderedPageContexts).find(({ urlOriginal }) => urlOriginal === '/404')) {
|
|
550
|
+
async function prerender404(prerenderContext, globalContext, onComplete) {
|
|
551
|
+
if (!Object.values(prerenderContext.prerenderedPageContexts).find(({ urlOriginal }) => urlOriginal === '/404')) {
|
|
544
552
|
let result;
|
|
545
553
|
try {
|
|
546
|
-
result = await prerender404Page(prerenderContext.pageContextInit);
|
|
554
|
+
result = await prerender404Page(prerenderContext.pageContextInit, globalContext);
|
|
547
555
|
}
|
|
548
556
|
catch (err) {
|
|
549
557
|
assertIsNotAbort(err, 'the 404 page');
|
|
@@ -563,22 +571,23 @@ async function prerender404(prerenderedPageContexts, prerenderContext, onComplet
|
|
|
563
571
|
}
|
|
564
572
|
}
|
|
565
573
|
}
|
|
566
|
-
async function writeFiles({ urlOriginal, pageContext, htmlString, pageContextSerialized, doNotCreateExtraDirectory }, root, outDirClient, onPagePrerender, logLevel) {
|
|
574
|
+
async function writeFiles({ urlOriginal, pageContext, htmlString, pageContextSerialized, doNotCreateExtraDirectory }, root, outDirClient, onPagePrerender, output, logLevel) {
|
|
567
575
|
assert(urlOriginal.startsWith('/'));
|
|
568
576
|
const writeJobs = [
|
|
569
|
-
write(urlOriginal, pageContext, '
|
|
577
|
+
write(urlOriginal, pageContext, 'HTML', htmlString, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel)
|
|
570
578
|
];
|
|
571
579
|
if (pageContextSerialized !== null) {
|
|
572
|
-
writeJobs.push(write(urlOriginal, pageContext, '
|
|
580
|
+
writeJobs.push(write(urlOriginal, pageContext, 'JSON', pageContextSerialized, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel));
|
|
573
581
|
}
|
|
574
582
|
await Promise.all(writeJobs);
|
|
575
583
|
}
|
|
576
|
-
async function write(urlOriginal, pageContext,
|
|
584
|
+
async function write(urlOriginal, pageContext, fileType, fileContent, root, outDirClient, doNotCreateExtraDirectory, onPagePrerender, output, logLevel) {
|
|
577
585
|
let fileUrl;
|
|
578
|
-
if (
|
|
586
|
+
if (fileType === 'HTML') {
|
|
579
587
|
fileUrl = urlToFile(urlOriginal, '.html', doNotCreateExtraDirectory);
|
|
580
588
|
}
|
|
581
589
|
else {
|
|
590
|
+
assert(fileType === 'JSON');
|
|
582
591
|
fileUrl = getPageContextRequestUrl(urlOriginal);
|
|
583
592
|
}
|
|
584
593
|
assertPosixPath(fileUrl);
|
|
@@ -590,6 +599,12 @@ async function write(urlOriginal, pageContext, fileExtension, fileContent, root,
|
|
|
590
599
|
assertPosixPath(outDirClient);
|
|
591
600
|
assertPosixPath(filePathRelative);
|
|
592
601
|
const filePath = path.posix.join(outDirClient, filePathRelative);
|
|
602
|
+
output.push({
|
|
603
|
+
filePath,
|
|
604
|
+
fileType,
|
|
605
|
+
fileContent,
|
|
606
|
+
pageContext
|
|
607
|
+
});
|
|
593
608
|
if (onPagePrerender) {
|
|
594
609
|
const prerenderPageContext = {};
|
|
595
610
|
objectAssign(prerenderPageContext, pageContext);
|
|
@@ -758,3 +773,9 @@ prerenderConfig) {
|
|
|
758
773
|
assertUsage(false, `Setting ${pc.cyan(`prerender.${prop}`)} ${errMsg}`);
|
|
759
774
|
}
|
|
760
775
|
}
|
|
776
|
+
function makePublic(prerenderContext) {
|
|
777
|
+
const prerenderContextPublic = makePublicCopy(prerenderContext, 'prerenderContext', [
|
|
778
|
+
'pageContexts'
|
|
779
|
+
]);
|
|
780
|
+
return prerenderContextPublic;
|
|
781
|
+
}
|
|
@@ -4,9 +4,8 @@ export * from '../../utils/projectInfo.js';
|
|
|
4
4
|
export * from '../../utils/objectAssign.js';
|
|
5
5
|
export * from '../../utils/isObjectWithKeys.js';
|
|
6
6
|
export * from '../../utils/isCallable.js';
|
|
7
|
-
export * from '../../utils/getOutDirs.js';
|
|
8
7
|
export * from '../../utils/isPropertyGetter.js';
|
|
9
|
-
export * from '../../utils/
|
|
8
|
+
export * from '../../utils/path.js';
|
|
10
9
|
export * from '../../utils/urlToFile.js';
|
|
11
10
|
export * from '../../utils/isPlainObject.js';
|
|
12
11
|
export * from '../../utils/assertSetup.js';
|
|
@@ -15,3 +14,4 @@ export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
|
15
14
|
export * from '../../utils/isArray.js';
|
|
16
15
|
export * from '../../utils/isObject.js';
|
|
17
16
|
export * from '../../utils/changeEnumerable.js';
|
|
17
|
+
export * from '../../utils/makePublicCopy.js';
|
|
@@ -6,9 +6,8 @@ export * from '../../utils/projectInfo.js';
|
|
|
6
6
|
export * from '../../utils/objectAssign.js';
|
|
7
7
|
export * from '../../utils/isObjectWithKeys.js';
|
|
8
8
|
export * from '../../utils/isCallable.js';
|
|
9
|
-
export * from '../../utils/getOutDirs.js';
|
|
10
9
|
export * from '../../utils/isPropertyGetter.js';
|
|
11
|
-
export * from '../../utils/
|
|
10
|
+
export * from '../../utils/path.js';
|
|
12
11
|
export * from '../../utils/urlToFile.js';
|
|
13
12
|
export * from '../../utils/isPlainObject.js';
|
|
14
13
|
export * from '../../utils/assertSetup.js';
|
|
@@ -17,3 +16,4 @@ export * from '../../utils/isFilePathAbsoluteFilesystem.js';
|
|
|
17
16
|
export * from '../../utils/isArray.js';
|
|
18
17
|
export * from '../../utils/isObject.js';
|
|
19
18
|
export * from '../../utils/changeEnumerable.js';
|
|
19
|
+
export * from '../../utils/makePublicCopy.js';
|
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
export { getGlobalContextSync };
|
|
2
2
|
export { getGlobalContextAsync };
|
|
3
|
-
export {
|
|
3
|
+
export { getGlobalContextInternal };
|
|
4
4
|
export { getViteDevServer };
|
|
5
5
|
export { getViteConfig };
|
|
6
|
-
export { getRuntimeManifest };
|
|
7
6
|
export { initGlobalContext_renderPage };
|
|
8
7
|
export { initGlobalContext_runPrerender };
|
|
9
|
-
export {
|
|
8
|
+
export { initGlobalContext_getPagesAndRoutes };
|
|
10
9
|
export { setGlobalContext_viteDevServer };
|
|
11
10
|
export { setGlobalContext_viteConfig };
|
|
12
|
-
export { setGlobalContext_vikeConfig };
|
|
13
|
-
export { setGlobalContext_isViteDev };
|
|
14
11
|
export { setGlobalContext_isPrerendering };
|
|
12
|
+
export { setGlobalContext_isProduction };
|
|
15
13
|
export { setGlobalContext_buildEntry };
|
|
16
14
|
export { clearGlobalContext };
|
|
15
|
+
export { assertBuildInfo };
|
|
16
|
+
export { getViteConfigRuntime };
|
|
17
|
+
export { updateUserFiles };
|
|
18
|
+
export type { BuildInfo };
|
|
19
|
+
export type { GlobalContext };
|
|
20
|
+
export type { GlobalContextPublic };
|
|
17
21
|
import type { ViteManifest } from '../shared/ViteManifest.js';
|
|
18
22
|
import type { ResolvedConfig, ViteDevServer } from 'vite';
|
|
19
|
-
import type { VikeConfigGlobal } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
|
|
20
|
-
import { type RuntimeManifest } from '../shared/assertRuntimeManifest.js';
|
|
21
|
-
import type { VikeConfigObject } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
|
|
22
23
|
import type { ConfigUserFriendly } from '../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
23
|
-
type
|
|
24
|
-
|
|
24
|
+
import type { ConfigVitePluginServerEntry } from '@brillout/vite-plugin-server-entry/plugin';
|
|
25
|
+
type GlobalContextPublic = Pick<GlobalContext, 'assetsManifest' | 'config' | 'viteConfig'>;
|
|
26
|
+
type PageRuntimeInfo = Awaited<ReturnType<typeof getUserFiles>>;
|
|
27
|
+
type GlobalContext = GlobalContextWithoutPublicCopy & {
|
|
28
|
+
globalContext_public: GlobalContextPublic;
|
|
25
29
|
};
|
|
26
|
-
type
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
baseAssets: null | string;
|
|
30
|
-
includeAssetsImportedByServer: boolean;
|
|
31
|
-
trailingSlash: boolean;
|
|
32
|
-
disableUrlNormalization: boolean;
|
|
33
|
-
vikeConfig: {
|
|
34
|
-
global: ConfigUserFriendly;
|
|
30
|
+
type GlobalContextWithoutPublicCopy = {
|
|
31
|
+
viteConfigRuntime: {
|
|
32
|
+
_baseViteOriginal: null | string;
|
|
35
33
|
};
|
|
34
|
+
config: ConfigUserFriendly['config'];
|
|
36
35
|
} & PageRuntimeInfo & ({
|
|
37
36
|
isProduction: false;
|
|
38
37
|
isPrerendering: false;
|
|
@@ -51,32 +50,41 @@ type GlobalContext = {
|
|
|
51
50
|
usesClientRouter: boolean;
|
|
52
51
|
viteConfig: ResolvedConfig;
|
|
53
52
|
})));
|
|
54
|
-
declare function
|
|
53
|
+
declare function getGlobalContextInternal(): Promise<GlobalContext>;
|
|
55
54
|
/** @experimental https://vike.dev/getGlobalContext */
|
|
56
55
|
declare function getGlobalContextSync(): GlobalContextPublic;
|
|
57
56
|
/** @experimental https://vike.dev/getGlobalContext */
|
|
58
57
|
declare function getGlobalContextAsync(isProduction: boolean): Promise<GlobalContextPublic>;
|
|
59
|
-
declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): void
|
|
58
|
+
declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): Promise<void>;
|
|
60
59
|
declare function setGlobalContext_viteConfig(viteConfig: ResolvedConfig, outDirRoot: string): void;
|
|
61
|
-
declare function setGlobalContext_vikeConfig(vikeConfig: VikeConfigObject): void;
|
|
62
|
-
declare function setGlobalContext_isViteDev(isViteDev: boolean): void;
|
|
63
60
|
declare function setGlobalContext_isPrerendering(): void;
|
|
61
|
+
declare function setGlobalContext_isProduction(isProduction: boolean): void;
|
|
64
62
|
declare function getViteDevServer(): ViteDevServer | null;
|
|
65
63
|
declare function getViteConfig(): ResolvedConfig | null;
|
|
66
64
|
declare function initGlobalContext_renderPage(): Promise<void>;
|
|
67
65
|
declare function initGlobalContext_runPrerender(): Promise<void>;
|
|
68
|
-
declare function
|
|
69
|
-
declare function
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
globalConfig: ConfigUserFriendly;
|
|
66
|
+
declare function initGlobalContext_getPagesAndRoutes(): Promise<void>;
|
|
67
|
+
declare function getUserFiles(): Promise<{
|
|
68
|
+
pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
69
|
+
pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
70
|
+
pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
71
|
+
allPageIds: string[];
|
|
72
|
+
pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
73
|
+
onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
74
|
+
config: import("../../shared/page-configs/Config/PageContextConfig.js").ConfigResolved;
|
|
79
75
|
}>;
|
|
80
|
-
declare function
|
|
81
|
-
|
|
76
|
+
declare function setGlobalContext_buildEntry(buildEntry: unknown): Promise<void>;
|
|
77
|
+
type BuildInfo = {
|
|
78
|
+
versionAtBuildTime: string;
|
|
79
|
+
usesClientRouter: boolean;
|
|
80
|
+
viteConfigRuntime: {
|
|
81
|
+
_baseViteOriginal: string;
|
|
82
|
+
vitePluginServerEntry: {
|
|
83
|
+
inject?: NonNullable<ConfigVitePluginServerEntry['vitePluginServerEntry']>['inject'];
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
declare function assertBuildInfo(buildInfo: unknown): asserts buildInfo is BuildInfo;
|
|
88
|
+
declare function getViteConfigRuntime(viteConfig: ResolvedConfig & ConfigVitePluginServerEntry): BuildInfo['viteConfigRuntime'];
|
|
89
|
+
declare function updateUserFiles(): Promise<void>;
|
|
82
90
|
declare function clearGlobalContext(): void;
|