vike 0.4.239-commit-59f1017 → 0.4.239-commit-9dcde6d
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/esm/client/index.d.ts +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/runtime-client-routing/entry.js +5 -3
- package/dist/esm/client/runtime-client-routing/getBaseServer.js +0 -1
- package/dist/esm/client/runtime-client-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +1 -1
- package/dist/esm/client/runtime-client-routing/{globalContext.js → getGlobalContextClientInternal.js} +8 -4
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/runtime-client-routing/isClientSideRoutable.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +2 -4
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/runtime-server-routing/entry.js +5 -3
- package/dist/esm/client/runtime-server-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
- package/dist/esm/client/runtime-server-routing/getGlobalContextClientInternal.js +6 -0
- package/dist/esm/client/shared/execHookOnRenderClient.d.ts +1 -1
- package/dist/esm/client/shared/{createGetGlobalContextClient.d.ts → getGlobalContextClientInternalShared.d.ts} +11 -8
- package/dist/esm/client/shared/getGlobalContextClientInternalShared.js +66 -0
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -3
- package/dist/esm/node/prerender/runPrerender.js +3 -1
- package/dist/esm/node/vite/index.js +34 -15
- package/dist/esm/node/vite/plugins/pluginBaseUrls.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBaseUrls.js +37 -35
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +82 -80
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +23 -21
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +38 -36
- package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +26 -24
- package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -1
- package/dist/esm/node/vite/plugins/pluginEnvVars.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +87 -65
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +29 -27
- package/dist/esm/node/vite/plugins/pluginFileEnv.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +75 -73
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +30 -28
- package/dist/esm/node/vite/plugins/pluginPreview.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginPreview.js +35 -33
- package/dist/esm/node/vite/plugins/pluginReplaceGlobalThisConstants.d.ts +9 -0
- package/dist/esm/node/vite/plugins/pluginReplaceGlobalThisConstants.js +45 -0
- package/dist/esm/node/vite/plugins/pluginReplaceIsClientSide.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginReplaceIsClientSide.js +89 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +50 -48
- package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +12 -10
- package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +26 -24
- package/dist/esm/shared/createGlobalContextShared.d.ts +1 -1
- package/dist/esm/shared/route/abort.d.ts +22 -11
- package/dist/esm/shared/route/abort.js +37 -5
- package/dist/esm/types/PageContext.d.ts +8 -8
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/findPackageJson.js +0 -1
- package/dist/esm/utils/getViteRPC.js +0 -2
- package/dist/esm/utils/requireResolve.js +0 -1
- package/package.json +2 -21
- package/dist/cjs/__internal/index.js +0 -35
- package/dist/cjs/client/runtime-client-routing/globalContext.js +0 -49
- package/dist/cjs/client/runtime-client-routing/prefetch/PrefetchSetting.js +0 -2
- package/dist/cjs/client/runtime-server-routing/globalContext.js +0 -41
- package/dist/cjs/client/runtime-server-routing/onLoad.js +0 -7
- package/dist/cjs/client/runtime-server-routing/utils.js +0 -34
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -65
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +0 -40
- package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +0 -41
- package/dist/cjs/client/shared/utils.js +0 -23
- package/dist/cjs/node/api/build.js +0 -24
- package/dist/cjs/node/api/context.js +0 -23
- package/dist/cjs/node/api/dev.js +0 -18
- package/dist/cjs/node/api/index.js +0 -44
- package/dist/cjs/node/api/onLoad.js +0 -9
- package/dist/cjs/node/api/prepareViteApiCall.js +0 -206
- package/dist/cjs/node/api/prerender.js +0 -18
- package/dist/cjs/node/api/preview.js +0 -38
- package/dist/cjs/node/api/types.js +0 -2
- package/dist/cjs/node/api/utils.js +0 -27
- package/dist/cjs/node/cli/context.js +0 -17
- package/dist/cjs/node/cli/entry.js +0 -121
- package/dist/cjs/node/cli/index.js +0 -12
- package/dist/cjs/node/cli/onLoad.js +0 -9
- package/dist/cjs/node/cli/parseCli.js +0 -95
- package/dist/cjs/node/cli/utils.js +0 -24
- package/dist/cjs/node/client/router.js +0 -19
- package/dist/cjs/node/createPageRenderer.js +0 -132
- package/dist/cjs/node/importBuild.js +0 -3
- package/dist/cjs/node/prerender/context.js +0 -26
- package/dist/cjs/node/prerender/index.js +0 -12
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +0 -66
- package/dist/cjs/node/prerender/runPrerender.js +0 -778
- package/dist/cjs/node/prerender/runPrerenderEntry.js +0 -55
- package/dist/cjs/node/prerender/utils.js +0 -37
- package/dist/cjs/node/runtime/globalContext.js +0 -582
- package/dist/cjs/node/runtime/index-deprecated.js +0 -33
- package/dist/cjs/node/runtime/index.js +0 -74
- package/dist/cjs/node/runtime/loggerRuntime.js +0 -17
- package/dist/cjs/node/runtime/onLoad.js +0 -29
- package/dist/cjs/node/runtime/page-files/setup.js +0 -5
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +0 -71
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +0 -42
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +0 -51
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -114
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +0 -59
- package/dist/cjs/node/runtime/renderPage/csp.js +0 -47
- package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +0 -31
- package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +0 -120
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +0 -8
- package/dist/cjs/node/runtime/renderPage/getCacheControl.js +0 -24
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +0 -20
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +0 -137
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +0 -125
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.js +0 -86
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.js +0 -77
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +0 -36
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +0 -50
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +0 -41
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +0 -68
- package/dist/cjs/node/runtime/renderPage/headersResponse.js +0 -48
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/getHtmlTags.js +0 -269
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/getViteDevScript.js +0 -32
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/inferHtmlTags.js +0 -55
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectAssets__public.js +0 -31
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectHtmlTags.js +0 -161
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/mergeScriptTags.js +0 -73
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/sanitizeJson.js +0 -8
- package/dist/cjs/node/runtime/renderPage/html/injectAssets.js +0 -93
- package/dist/cjs/node/runtime/renderPage/html/propKeys.js +0 -47
- package/dist/cjs/node/runtime/renderPage/html/renderHtml.js +0 -245
- package/dist/cjs/node/runtime/renderPage/html/serializeContext.js +0 -189
- package/dist/cjs/node/runtime/renderPage/html/stream/react-streaming.js +0 -36
- package/dist/cjs/node/runtime/renderPage/html/stream.js +0 -829
- package/dist/cjs/node/runtime/renderPage/inferMediaType.js +0 -81
- package/dist/cjs/node/runtime/renderPage/isFontFallback.js +0 -29
- package/dist/cjs/node/runtime/renderPage/isNewError.js +0 -25
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +0 -124
- package/dist/cjs/node/runtime/renderPage/log404/index.js +0 -154
- package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +0 -20
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +0 -200
- package/dist/cjs/node/runtime/renderPage/loggerProd.js +0 -34
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +0 -10
- package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +0 -83
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +0 -71
- package/dist/cjs/node/runtime/renderPage.js +0 -502
- package/dist/cjs/node/runtime/universal-middleware.js +0 -20
- package/dist/cjs/node/runtime/utils.js +0 -83
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -27
- package/dist/cjs/node/runtime-dev/index.js +0 -42
- package/dist/cjs/node/shared/assertV1Design.js +0 -30
- package/dist/cjs/node/shared/extractAssetsQuery.js +0 -29
- package/dist/cjs/node/shared/getVikeConfigError.js +0 -22
- package/dist/cjs/node/shared/isErrorDebug.js +0 -7
- package/dist/cjs/node/shared/prependEntriesDir.js +0 -13
- package/dist/cjs/node/shared/resolveBase.js +0 -35
- package/dist/cjs/node/shared/utils.js +0 -35
- package/dist/cjs/node/shared/virtualFileId.js +0 -110
- package/dist/cjs/node/vite/index.js +0 -69
- package/dist/cjs/node/vite/onLoad.js +0 -21
- package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +0 -52
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +0 -357
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +0 -183
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -234
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -256
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -40
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -49
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +0 -111
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +0 -65
- package/dist/cjs/node/vite/plugins/pluginBuild.js +0 -22
- package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +0 -88
- package/dist/cjs/node/vite/plugins/pluginCommon.js +0 -183
- package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -28
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +0 -163
- package/dist/cjs/node/vite/plugins/pluginDev.js +0 -111
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +0 -92
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +0 -241
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +0 -113
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +0 -172
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +0 -70
- package/dist/cjs/node/vite/plugins/pluginPreview.js +0 -82
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +0 -95
- package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +0 -51
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/debug.js +0 -5
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +0 -56
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +0 -190
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +0 -54
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +0 -97
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +0 -233
- package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +0 -17
- package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +0 -35
- package/dist/cjs/node/vite/shared/addSsrMiddleware.js +0 -60
- package/dist/cjs/node/vite/shared/findPageFiles.js +0 -25
- package/dist/cjs/node/vite/shared/getAssetsDir.js +0 -10
- package/dist/cjs/node/vite/shared/getClientEntrySrcDev.js +0 -42
- package/dist/cjs/node/vite/shared/getEnvVarObject.js +0 -37
- package/dist/cjs/node/vite/shared/getFilePath.js +0 -172
- package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +0 -125
- package/dist/cjs/node/vite/shared/getMagicString.js +0 -18
- package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +0 -10
- package/dist/cjs/node/vite/shared/getOutDirs.js +0 -146
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +0 -21
- package/dist/cjs/node/vite/shared/isAsset.js +0 -40
- package/dist/cjs/node/vite/shared/isViteCliCall.js +0 -83
- package/dist/cjs/node/vite/shared/isViteServerSide.js +0 -68
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +0 -38
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +0 -26
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +0 -85
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +0 -30
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +0 -19
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +0 -19
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +0 -29
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +0 -13
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +0 -162
- package/dist/cjs/node/vite/shared/loggerNotProd/log.js +0 -102
- package/dist/cjs/node/vite/shared/loggerNotProd.js +0 -208
- package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +0 -26
- package/dist/cjs/node/vite/shared/loggerVite.js +0 -54
- package/dist/cjs/node/vite/shared/normalizeId.js +0 -9
- package/dist/cjs/node/vite/shared/parseEsModule.js +0 -33
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +0 -136
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +0 -262
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +0 -18
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +0 -252
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +0 -190
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getConfigFileExport.js +0 -17
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +0 -127
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +0 -129
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +0 -195
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +0 -102
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +0 -425
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +0 -1151
- package/dist/cjs/node/vite/shared/rollupIsEsm.js +0 -15
- package/dist/cjs/node/vite/utils.js +0 -45
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -4
- package/dist/cjs/shared/RenderErrorPage.js +0 -6
- package/dist/cjs/shared/abort.js +0 -16
- package/dist/cjs/shared/addIs404ToPageProps.js +0 -18
- package/dist/cjs/shared/assertHookReturnedObject.js +0 -21
- package/dist/cjs/shared/assertOnBeforeRenderHookReturn.js +0 -21
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +0 -20
- package/dist/cjs/shared/createGlobalContextShared.js +0 -109
- package/dist/cjs/shared/createPageContextShared.js +0 -17
- package/dist/cjs/shared/determinePageIdOld.js +0 -11
- package/dist/cjs/shared/error-page.js +0 -40
- package/dist/cjs/shared/getPageContext.js +0 -6
- package/dist/cjs/shared/getPageContextRequestUrl.js +0 -16
- package/dist/cjs/shared/getPageContextUrlComputed.js +0 -132
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +0 -19
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +0 -50
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +0 -30
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/getExportNames.js +0 -15
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +0 -59
- package/dist/cjs/shared/getPageFiles/analyzePageServerSide.js +0 -22
- package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +0 -24
- package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -52
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -102
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -56
- package/dist/cjs/shared/getPageFiles/parseVirtualFileExportsGlobalEntry.js +0 -100
- package/dist/cjs/shared/getPageFiles.js +0 -7
- package/dist/cjs/shared/getProxyForPublicUsage.js +0 -56
- package/dist/cjs/shared/hooks/execHook.js +0 -147
- package/dist/cjs/shared/hooks/getHook.js +0 -173
- package/dist/cjs/shared/htmlElementIds.js +0 -5
- package/dist/cjs/shared/misc/isServerSideError.js +0 -4
- package/dist/cjs/shared/misc/pageContextInitIsPassedToClient.js +0 -4
- package/dist/cjs/shared/modifyUrl.js +0 -28
- package/dist/cjs/shared/modifyUrlSameOrigin.js +0 -47
- package/dist/cjs/shared/page-configs/assertPlusFileExport.js +0 -42
- package/dist/cjs/shared/page-configs/findPageConfig.js +0 -10
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +0 -65
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +0 -68
- package/dist/cjs/shared/page-configs/getConfigValueRuntime.js +0 -10
- package/dist/cjs/shared/page-configs/getConfigValueTyped.js +0 -32
- package/dist/cjs/shared/page-configs/getExportPath.js +0 -29
- package/dist/cjs/shared/page-configs/helpers.js +0 -27
- package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +0 -25
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +0 -287
- package/dist/cjs/shared/page-configs/serialize/PageConfigSerialized.js +0 -2
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -1
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigsSerialized.js +0 -145
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +0 -290
- package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +0 -10
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +0 -80
- package/dist/cjs/shared/route/abort.js +0 -178
- package/dist/cjs/shared/route/debug.js +0 -23
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +0 -52
- package/dist/cjs/shared/route/execHookGuard.js +0 -37
- package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -84
- package/dist/cjs/shared/route/index.js +0 -107
- package/dist/cjs/shared/route/loadPageRoutes.js +0 -197
- package/dist/cjs/shared/route/noRouteMatch.js +0 -4
- package/dist/cjs/shared/route/resolvePrecedence.js +0 -93
- package/dist/cjs/shared/route/resolveRoute.js +0 -20
- package/dist/cjs/shared/route/resolveRouteFunction.js +0 -73
- package/dist/cjs/shared/route/resolveRouteString.js +0 -153
- package/dist/cjs/shared/route/resolveUrlPathname.js +0 -47
- package/dist/cjs/shared/route/routing.js +0 -9
- package/dist/cjs/shared/route/utils.js +0 -40
- package/dist/cjs/shared/utils.js +0 -49
- package/dist/cjs/types/Config/ConfigResolved.js +0 -2
- package/dist/cjs/types/Config.js +0 -2
- package/dist/cjs/types/FilePath.js +0 -2
- package/dist/cjs/types/PageConfig.js +0 -2
- package/dist/cjs/types/PageContext.js +0 -2
- package/dist/cjs/types/VikeGlobalInternal.js +0 -2
- package/dist/cjs/types/VikeNamespace.js +0 -2
- package/dist/cjs/types/ViteManifest.js +0 -2
- package/dist/cjs/types/defineConfig.js +0 -6
- package/dist/cjs/types/index-dreprecated.js +0 -3
- package/dist/cjs/types/index.js +0 -5
- package/dist/cjs/utils/PROJECT_VERSION.js +0 -5
- package/dist/cjs/utils/PromiseType.js +0 -2
- package/dist/cjs/utils/assert.js +0 -211
- package/dist/cjs/utils/assertIsBrowser.js +0 -8
- package/dist/cjs/utils/assertIsNotBrowser.js +0 -9
- package/dist/cjs/utils/assertKeys.js +0 -27
- package/dist/cjs/utils/assertNodeVersion.js +0 -14
- package/dist/cjs/utils/assertRoutingType.js +0 -29
- package/dist/cjs/utils/assertSetup.js +0 -171
- package/dist/cjs/utils/assertSingleInstance.js +0 -110
- package/dist/cjs/utils/assertVersion.js +0 -60
- package/dist/cjs/utils/capitalizeFirstLetter.js +0 -9
- package/dist/cjs/utils/cast.js +0 -6
- package/dist/cjs/utils/catchInfiniteLoop.js +0 -34
- package/dist/cjs/utils/changeEnumerable.js +0 -8
- package/dist/cjs/utils/checkType.js +0 -6
- package/dist/cjs/utils/compareString.js +0 -10
- package/dist/cjs/utils/createErrorWithCleanStackTrace.js +0 -39
- package/dist/cjs/utils/debug.js +0 -178
- package/dist/cjs/utils/debugGlob.js +0 -6
- package/dist/cjs/utils/deepEqual.js +0 -10
- package/dist/cjs/utils/escapeHtml.js +0 -13
- package/dist/cjs/utils/escapeRegex.js +0 -7
- package/dist/cjs/utils/findFile.js +0 -30
- package/dist/cjs/utils/findPackageJson.js +0 -18
- package/dist/cjs/utils/formatHintLog.js +0 -17
- package/dist/cjs/utils/freezePartial.js +0 -35
- package/dist/cjs/utils/genPromise.js +0 -51
- package/dist/cjs/utils/getFileExtension.js +0 -16
- package/dist/cjs/utils/getGlobalObject.js +0 -15
- package/dist/cjs/utils/getMostSimilar.js +0 -68
- package/dist/cjs/utils/getPropAccessNotation.js +0 -9
- package/dist/cjs/utils/getRandomId.js +0 -14
- package/dist/cjs/utils/getTerminalWidth.js +0 -7
- package/dist/cjs/utils/getValuePrintable.js +0 -10
- package/dist/cjs/utils/getViteRPC.js +0 -79
- package/dist/cjs/utils/hasProp.js +0 -50
- package/dist/cjs/utils/humanizeTime.js +0 -24
- package/dist/cjs/utils/includes.js +0 -13
- package/dist/cjs/utils/injectRollupInputs.js +0 -29
- package/dist/cjs/utils/isArray.js +0 -7
- package/dist/cjs/utils/isArrayOfStrings.js +0 -7
- package/dist/cjs/utils/isBrowser.js +0 -8
- package/dist/cjs/utils/isCallable.js +0 -6
- package/dist/cjs/utils/isDev.js +0 -20
- package/dist/cjs/utils/isDocker.js +0 -45
- package/dist/cjs/utils/isEqualStringList.js +0 -13
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +0 -66
- package/dist/cjs/utils/isHtml.js +0 -9
- package/dist/cjs/utils/isImportPath.js +0 -21
- package/dist/cjs/utils/isNodeJS.js +0 -16
- package/dist/cjs/utils/isNonRunnableDev.js +0 -12
- package/dist/cjs/utils/isNullish.js +0 -16
- package/dist/cjs/utils/isObject.js +0 -6
- package/dist/cjs/utils/isObjectOfStrings.js +0 -7
- package/dist/cjs/utils/isObjectWithKeys.js +0 -15
- package/dist/cjs/utils/isPlainObject.js +0 -19
- package/dist/cjs/utils/isPromise.js +0 -7
- package/dist/cjs/utils/isPropertyGetter.js +0 -7
- package/dist/cjs/utils/isReact.js +0 -23
- package/dist/cjs/utils/isRunnableDevEnvironment.js +0 -9
- package/dist/cjs/utils/isSameErrorMessage.js +0 -9
- package/dist/cjs/utils/isScriptFile.js +0 -67
- package/dist/cjs/utils/isVikeReactApp.js +0 -8
- package/dist/cjs/utils/isVitest.js +0 -6
- package/dist/cjs/utils/joinEnglish.js +0 -14
- package/dist/cjs/utils/normalizeHeaders.js +0 -17
- package/dist/cjs/utils/objectAssign.js +0 -14
- package/dist/cjs/utils/objectAssignSafe.js +0 -7
- package/dist/cjs/utils/objectDefineProperty.js +0 -7
- package/dist/cjs/utils/objectEntries.js +0 -8
- package/dist/cjs/utils/objectEntriesForEach.js +0 -7
- package/dist/cjs/utils/objectFilter.js +0 -10
- package/dist/cjs/utils/objectFromEntries.js +0 -7
- package/dist/cjs/utils/objectKeys.js +0 -9
- package/dist/cjs/utils/objectReplace.js +0 -9
- package/dist/cjs/utils/onPageVisibilityChange.js +0 -18
- package/dist/cjs/utils/pLimit.js +0 -134
- package/dist/cjs/utils/parseNpmPackage.js +0 -106
- package/dist/cjs/utils/parseUrl-extras.js +0 -110
- package/dist/cjs/utils/parseUrl.js +0 -338
- package/dist/cjs/utils/path.js +0 -59
- package/dist/cjs/utils/pick.js +0 -12
- package/dist/cjs/utils/preservePropertyGetters.js +0 -30
- package/dist/cjs/utils/redirectHard.js +0 -6
- package/dist/cjs/utils/removeEmptyLines.js +0 -9
- package/dist/cjs/utils/removeFileExtension.js +0 -6
- package/dist/cjs/utils/requireResolve.js +0 -214
- package/dist/cjs/utils/rollupSourceMap.js +0 -19
- package/dist/cjs/utils/sleep.js +0 -6
- package/dist/cjs/utils/slice.js +0 -35
- package/dist/cjs/utils/sorter.js +0 -117
- package/dist/cjs/utils/stringifyStringArray.js +0 -6
- package/dist/cjs/utils/stripAnsi.js +0 -21
- package/dist/cjs/utils/styleFileRE.js +0 -6
- package/dist/cjs/utils/throttle.js +0 -15
- package/dist/cjs/utils/trackLogs.js +0 -31
- package/dist/cjs/utils/trimWithAnsi.js +0 -40
- package/dist/cjs/utils/truncateString.js +0 -23
- package/dist/cjs/utils/unique.js +0 -6
- package/dist/cjs/utils/updateType.js +0 -9
- package/dist/cjs/utils/urlToFile.js +0 -36
- package/dist/cjs/utils/virtualFileId.js +0 -43
- package/dist/cjs/utils/warnIfErrorIsNotObject.js +0 -23
- package/dist/esm/client/runtime-server-routing/globalContext.js +0 -5
- package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -65
- package/dist/esm/node/vite/plugins/pluginBuild.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginBuild.js +0 -20
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.d.ts +0 -14
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +0 -92
|
@@ -1,1151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getVikeConfig = getVikeConfig;
|
|
7
|
-
exports.getVikeConfigInternal = getVikeConfigInternal;
|
|
8
|
-
exports.getVikeConfigInternalOptional = getVikeConfigInternalOptional;
|
|
9
|
-
exports.getVikeConfigInternalSync = getVikeConfigInternalSync;
|
|
10
|
-
exports.setVikeConfigContext = setVikeConfigContext;
|
|
11
|
-
exports.reloadVikeConfig = reloadVikeConfig;
|
|
12
|
-
exports.isV1Design = isV1Design;
|
|
13
|
-
exports.getConfVal = getConfVal;
|
|
14
|
-
exports.getConfigDefinitionOptional = getConfigDefinitionOptional;
|
|
15
|
-
exports.getVikeConfigFromCliOrEnv = getVikeConfigFromCliOrEnv;
|
|
16
|
-
const utils_js_1 = require("../utils.js");
|
|
17
|
-
const configDefinitionsBuiltIn_js_1 = require("./resolveVikeConfigInternal/configDefinitionsBuiltIn.js");
|
|
18
|
-
const filesystemRouting_js_1 = require("./resolveVikeConfigInternal/filesystemRouting.js");
|
|
19
|
-
const globalContext_js_1 = require("../../runtime/globalContext.js");
|
|
20
|
-
const loggerNotProd_js_1 = require("./loggerNotProd.js");
|
|
21
|
-
const removeSuperfluousViteLog_js_1 = require("./loggerVite/removeSuperfluousViteLog.js");
|
|
22
|
-
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
23
|
-
const getConfigDefinedAt_js_1 = require("../../../shared/page-configs/getConfigDefinedAt.js");
|
|
24
|
-
const loadFileAtConfigTime_js_1 = require("./resolveVikeConfigInternal/loadFileAtConfigTime.js");
|
|
25
|
-
const resolvePointerImport_js_1 = require("./resolveVikeConfigInternal/resolvePointerImport.js");
|
|
26
|
-
const getFilePath_js_1 = require("./getFilePath.js");
|
|
27
|
-
const getConfigValueBuildTime_js_1 = require("../../../shared/page-configs/getConfigValueBuildTime.js");
|
|
28
|
-
const resolveVikeConfigPublic_js_1 = require("../../../shared/page-configs/resolveVikeConfigPublic.js");
|
|
29
|
-
const serializeConfigValues_js_1 = require("../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
30
|
-
const getPlusFilesAll_js_1 = require("./resolveVikeConfigInternal/getPlusFilesAll.js");
|
|
31
|
-
const getEnvVarObject_js_1 = require("./getEnvVarObject.js");
|
|
32
|
-
const context_js_1 = require("../../api/context.js");
|
|
33
|
-
const context_js_2 = require("../../cli/context.js");
|
|
34
|
-
const resolvePrerenderConfig_js_1 = require("../../prerender/resolvePrerenderConfig.js");
|
|
35
|
-
const getProxyForPublicUsage_js_1 = require("../../../shared/getProxyForPublicUsage.js");
|
|
36
|
-
const getVikeConfigError_js_1 = require("../../shared/getVikeConfigError.js");
|
|
37
|
-
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
38
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('vite/shared/resolveVikeConfigInternal.ts', {
|
|
39
|
-
restartVite: false,
|
|
40
|
-
vikeConfigHasBuildError: null,
|
|
41
|
-
isV1Design_: null,
|
|
42
|
-
vikeConfigPromise: null,
|
|
43
|
-
// TO-DO/next-major-release: remove
|
|
44
|
-
vikeConfigSync: null,
|
|
45
|
-
vikeConfigCtx: null, // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
|
|
46
|
-
prerenderContext: null,
|
|
47
|
-
});
|
|
48
|
-
function reloadVikeConfig() {
|
|
49
|
-
(0, utils_js_1.assert)(globalObject.vikeConfigCtx);
|
|
50
|
-
const { userRootDir, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
|
|
51
|
-
(0, utils_js_1.assert)(vikeVitePluginOptions);
|
|
52
|
-
resolveVikeConfigInternal_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
|
|
53
|
-
}
|
|
54
|
-
async function getVikeConfigInternal(
|
|
55
|
-
// I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
|
|
56
|
-
// TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
|
|
57
|
-
doNotRestartViteOnError = false) {
|
|
58
|
-
(0, utils_js_1.assert)(globalObject.vikeConfigCtx);
|
|
59
|
-
const { userRootDir, isDev, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
|
|
60
|
-
const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
|
|
61
|
-
return vikeConfig;
|
|
62
|
-
}
|
|
63
|
-
// TO-DO/next-major-release: remove
|
|
64
|
-
function getVikeConfigInternalSync() {
|
|
65
|
-
(0, utils_js_1.assert)(globalObject.vikeConfigSync);
|
|
66
|
-
return globalObject.vikeConfigSync;
|
|
67
|
-
}
|
|
68
|
-
// TO-DO/eventually: this maybe(/probably?) isn't safe against race conditions upon file changes in development, thus:
|
|
69
|
-
// - Like getGlobalContext() and getGlobalContextSync() — make getVikeConfig() async and provide a getVikeConfigSync() while discourage using it
|
|
70
|
-
// Public usage
|
|
71
|
-
/**
|
|
72
|
-
* Get all the information Vike knows about the app in your Vite plugin.
|
|
73
|
-
*
|
|
74
|
-
* https://vike.dev/getVikeConfig
|
|
75
|
-
*/
|
|
76
|
-
function getVikeConfig(
|
|
77
|
-
// TO-DO/eventually: remove unused arguments (older versions used it and we didn't remove it yet to avoid a TypeScript breaking change)
|
|
78
|
-
// - No rush: we can do it later since it's getVikeConfig() is a beta feature as documented at https://vike.dev/getVikeConfig
|
|
79
|
-
config) {
|
|
80
|
-
const vikeConfig = getVikeConfigInternalSync();
|
|
81
|
-
(0, utils_js_1.assertUsage)(vikeConfig, 'getVikeConfig() can only be used when Vite is loaded (i.e. during development or build) — Vite is never loaded in production.');
|
|
82
|
-
const vikeConfigPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(vikeConfig, 'vikeConfig');
|
|
83
|
-
return vikeConfigPublic;
|
|
84
|
-
}
|
|
85
|
-
function setVikeConfigContext(vikeConfigCtx_) {
|
|
86
|
-
// If the user changes Vite's `config.root` => Vite completely reloads itself => setVikeConfigContext() is called again
|
|
87
|
-
globalObject.vikeConfigCtx = vikeConfigCtx_;
|
|
88
|
-
}
|
|
89
|
-
async function getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
|
|
90
|
-
if (!globalObject.vikeConfigPromise) {
|
|
91
|
-
resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
|
|
92
|
-
}
|
|
93
|
-
(0, utils_js_1.assert)(globalObject.vikeConfigPromise);
|
|
94
|
-
const vikeConfig = await globalObject.vikeConfigPromise;
|
|
95
|
-
return vikeConfig;
|
|
96
|
-
}
|
|
97
|
-
async function getVikeConfigInternalOptional() {
|
|
98
|
-
if (!globalObject.vikeConfigPromise)
|
|
99
|
-
return null;
|
|
100
|
-
const vikeConfig = await globalObject.vikeConfigPromise;
|
|
101
|
-
return vikeConfig;
|
|
102
|
-
}
|
|
103
|
-
function isV1Design() {
|
|
104
|
-
(0, utils_js_1.assert)(typeof globalObject.isV1Design_ === 'boolean');
|
|
105
|
-
return globalObject.isV1Design_;
|
|
106
|
-
}
|
|
107
|
-
async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
|
|
108
|
-
const { promise, resolve, reject } = (0, utils_js_1.genPromise)();
|
|
109
|
-
globalObject.vikeConfigPromise = promise;
|
|
110
|
-
const esbuildCache = {
|
|
111
|
-
transpileCache: {},
|
|
112
|
-
vikeConfigDependencies: new Set(),
|
|
113
|
-
};
|
|
114
|
-
let hasError = false;
|
|
115
|
-
let ret;
|
|
116
|
-
let err;
|
|
117
|
-
try {
|
|
118
|
-
ret = await resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache);
|
|
119
|
-
}
|
|
120
|
-
catch (err_) {
|
|
121
|
-
hasError = true;
|
|
122
|
-
err = err_;
|
|
123
|
-
}
|
|
124
|
-
// There is a newer call — let the new call supersede the old one.
|
|
125
|
-
// We deliberately swallow the intermetidate state (including any potential error) — it's now outdated and has existed only for a very short period of time.
|
|
126
|
-
if (globalObject.vikeConfigPromise !== promise) {
|
|
127
|
-
// vikeConfigPromise.then(resolve).catch(reject)
|
|
128
|
-
try {
|
|
129
|
-
resolve(await globalObject.vikeConfigPromise);
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
reject(err);
|
|
133
|
-
}
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
if (!hasError) {
|
|
137
|
-
(0, utils_js_1.assert)(ret);
|
|
138
|
-
(0, utils_js_1.assert)(err === undefined);
|
|
139
|
-
const hadError = globalObject.vikeConfigHasBuildError;
|
|
140
|
-
globalObject.vikeConfigHasBuildError = false;
|
|
141
|
-
(0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: false });
|
|
142
|
-
if (hadError) {
|
|
143
|
-
(0, loggerNotProd_js_1.logConfigErrorRecover)();
|
|
144
|
-
if (globalObject.restartVite) {
|
|
145
|
-
globalObject.restartVite = false;
|
|
146
|
-
restartViteDevServer();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
resolve(ret);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
(0, utils_js_1.assert)(ret === undefined);
|
|
153
|
-
(0, utils_js_1.assert)(err);
|
|
154
|
-
globalObject.vikeConfigHasBuildError = true;
|
|
155
|
-
(0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: { err } });
|
|
156
|
-
if (!doNotRestartViteOnError)
|
|
157
|
-
globalObject.restartVite = true;
|
|
158
|
-
if (!isDev) {
|
|
159
|
-
reject(err);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
(0, loggerNotProd_js_1.logConfigError)(err);
|
|
163
|
-
resolve(getVikeConfigDummy(esbuildCache));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache) {
|
|
168
|
-
const plusFilesAll = await (0, getPlusFilesAll_js_1.getPlusFilesAll)(userRootDir, esbuildCache);
|
|
169
|
-
const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache);
|
|
170
|
-
const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
|
|
171
|
-
if (!globalObject.isV1Design_)
|
|
172
|
-
globalObject.isV1Design_ = pageConfigs.length > 0;
|
|
173
|
-
// Backwards compatibility for vike(options) in vite.config.js
|
|
174
|
-
temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
|
|
175
|
-
setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
|
|
176
|
-
const globalConfigPublic = resolveGlobalConfig(pageConfigGlobal, pageConfigs);
|
|
177
|
-
const prerenderContext = resolvePrerenderContext({
|
|
178
|
-
config: globalConfigPublic.config,
|
|
179
|
-
_from: globalConfigPublic._from,
|
|
180
|
-
_pageConfigs: pageConfigs,
|
|
181
|
-
});
|
|
182
|
-
const vikeConfig = {
|
|
183
|
-
...globalConfigPublic,
|
|
184
|
-
prerenderContext,
|
|
185
|
-
_pageConfigs: pageConfigs,
|
|
186
|
-
_pageConfigGlobal: pageConfigGlobal,
|
|
187
|
-
_vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
|
|
188
|
-
};
|
|
189
|
-
globalObject.vikeConfigSync = vikeConfig;
|
|
190
|
-
return vikeConfig;
|
|
191
|
-
}
|
|
192
|
-
function resolveGlobalConfig(pageConfigGlobal, pageConfigs) {
|
|
193
|
-
const globalConfigPublic = (0, resolveVikeConfigPublic_js_1.resolveGlobalConfigPublic)(pageConfigs, pageConfigGlobal, getConfigValues);
|
|
194
|
-
return globalConfigPublic;
|
|
195
|
-
}
|
|
196
|
-
async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
|
|
197
|
-
const plusFilesAllOrdered = Object.values(plusFilesAll)
|
|
198
|
-
.flat()
|
|
199
|
-
.sort((plusFile1, plusFile2) => sortAfterInheritanceOrderGlobal(plusFile1, plusFile2, plusFilesAll, null));
|
|
200
|
-
const configDefinitionsGlobal = getConfigDefinitions(
|
|
201
|
-
// We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
|
|
202
|
-
plusFilesAllOrdered, (configDef) => !!configDef.global);
|
|
203
|
-
await loadCustomConfigBuildTimeFiles(plusFilesAll, configDefinitionsGlobal, userRootDir, esbuildCache);
|
|
204
|
-
const configDefinitionsAll = getConfigDefinitions(Object.values(plusFilesAll).flat());
|
|
205
|
-
const configNamesKnownAll = Object.keys(configDefinitionsAll);
|
|
206
|
-
const configNamesKnownGlobal = Object.keys(configDefinitionsGlobal);
|
|
207
|
-
(0, utils_js_1.assert)(configNamesKnownGlobal.every((configName) => configNamesKnownAll.includes(configName)));
|
|
208
|
-
const configDefinitionsLocal = {};
|
|
209
|
-
await Promise.all((0, utils_js_1.objectEntries)(plusFilesAll).map(async ([locationIdPage, plusFiles]) => {
|
|
210
|
-
const plusFilesRelevant = (0, utils_js_1.objectEntries)(plusFilesAll)
|
|
211
|
-
.filter(([locationId]) => (0, filesystemRouting_js_1.isInherited)(locationId, locationIdPage))
|
|
212
|
-
.map(([, plusFiles]) => plusFiles)
|
|
213
|
-
.flat()
|
|
214
|
-
.sort((plusFile1, plusFile2) => sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, null));
|
|
215
|
-
const configDefinitions = getConfigDefinitions(plusFilesRelevant, (configDef) => configDef.global !== true);
|
|
216
|
-
await loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache);
|
|
217
|
-
const configNamesKnownLocal = (0, utils_js_1.unique)([...Object.keys(configDefinitions), ...configNamesKnownGlobal]);
|
|
218
|
-
(0, utils_js_1.assert)(configNamesKnownLocal.every((configName) => configNamesKnownAll.includes(configName)));
|
|
219
|
-
configDefinitionsLocal[locationIdPage] = {
|
|
220
|
-
configDefinitions,
|
|
221
|
-
plusFiles,
|
|
222
|
-
plusFilesRelevant,
|
|
223
|
-
configNamesKnownLocal,
|
|
224
|
-
};
|
|
225
|
-
}));
|
|
226
|
-
const configDefinitionsResolved = {
|
|
227
|
-
configDefinitionsGlobal,
|
|
228
|
-
configDefinitionsLocal,
|
|
229
|
-
configDefinitionsAll,
|
|
230
|
-
configNamesKnownAll,
|
|
231
|
-
configNamesKnownGlobal,
|
|
232
|
-
};
|
|
233
|
-
assertKnownConfigs(configDefinitionsResolved);
|
|
234
|
-
return configDefinitionsResolved;
|
|
235
|
-
}
|
|
236
|
-
// Load value files (with `env.config===true`) of *custom* configs.
|
|
237
|
-
// - The value files of *built-in* configs are already loaded at `getPlusFilesAll()`.
|
|
238
|
-
async function loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache) {
|
|
239
|
-
const plusFileList = Object.values(plusFiles).flat(1);
|
|
240
|
-
await Promise.all(plusFileList.map(async (plusFile) => {
|
|
241
|
-
if (!plusFile.isConfigFile) {
|
|
242
|
-
await (0, loadFileAtConfigTime_js_1.loadValueFile)(plusFile, configDefinitions, userRootDir, esbuildCache);
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
await Promise.all(Object.entries(plusFile.pointerImportsByConfigName).map(async ([configName, pointerImport]) => {
|
|
246
|
-
await (0, loadFileAtConfigTime_js_1.loadPointerImport)(pointerImport, userRootDir, configName, configDefinitions, esbuildCache);
|
|
247
|
-
}));
|
|
248
|
-
}
|
|
249
|
-
}));
|
|
250
|
-
}
|
|
251
|
-
function getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir) {
|
|
252
|
-
const pageConfigGlobal = {
|
|
253
|
-
configDefinitions: configDefinitionsResolved.configDefinitionsGlobal,
|
|
254
|
-
configValueSources: {},
|
|
255
|
-
};
|
|
256
|
-
(0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsGlobal).forEach(([configName, configDef]) => {
|
|
257
|
-
const sources = resolveConfigValueSources(configName, configDef,
|
|
258
|
-
// We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
|
|
259
|
-
Object.values(plusFilesAll).flat(), userRootDir, true, plusFilesAll);
|
|
260
|
-
if (sources.length === 0)
|
|
261
|
-
return;
|
|
262
|
-
pageConfigGlobal.configValueSources[configName] = sources;
|
|
263
|
-
});
|
|
264
|
-
applyEffectsMetaEnv(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal);
|
|
265
|
-
applyEffectsConfVal(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal, plusFilesAll);
|
|
266
|
-
sortConfigValueSources(pageConfigGlobal.configValueSources, null);
|
|
267
|
-
assertPageConfigGlobal(pageConfigGlobal, plusFilesAll);
|
|
268
|
-
const pageConfigs = (0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsLocal)
|
|
269
|
-
.filter(([_locationId, { plusFiles }]) => isDefiningPage(plusFiles))
|
|
270
|
-
.map(([locationId, { configDefinitions, plusFilesRelevant }]) => {
|
|
271
|
-
const configDefinitionsLocal = configDefinitions;
|
|
272
|
-
const configValueSources = {};
|
|
273
|
-
(0, utils_js_1.objectEntries)(configDefinitionsLocal)
|
|
274
|
-
.filter(([_configName, configDef]) => configDef.global !== true)
|
|
275
|
-
.forEach(([configName, configDef]) => {
|
|
276
|
-
const sources = resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, false, plusFilesAll);
|
|
277
|
-
if (sources.length === 0)
|
|
278
|
-
return;
|
|
279
|
-
configValueSources[configName] = sources;
|
|
280
|
-
});
|
|
281
|
-
const pageConfigRoute = determineRouteFilesystem(locationId, configValueSources);
|
|
282
|
-
applyEffectsMetaEnv(configValueSources, configDefinitionsLocal);
|
|
283
|
-
applyEffectsConfVal(configValueSources, configDefinitionsLocal, plusFilesAll);
|
|
284
|
-
sortConfigValueSources(configValueSources, locationId);
|
|
285
|
-
const pageConfig = {
|
|
286
|
-
pageId: locationId,
|
|
287
|
-
...pageConfigRoute,
|
|
288
|
-
configDefinitions: configDefinitionsLocal,
|
|
289
|
-
plusFiles: plusFilesRelevant,
|
|
290
|
-
configValueSources,
|
|
291
|
-
};
|
|
292
|
-
const configValuesComputed = getComputed(pageConfig);
|
|
293
|
-
(0, utils_js_1.objectAssign)(pageConfig, { configValuesComputed });
|
|
294
|
-
(0, utils_js_1.checkType)(pageConfig);
|
|
295
|
-
return pageConfig;
|
|
296
|
-
});
|
|
297
|
-
assertPageConfigs(pageConfigs);
|
|
298
|
-
return { pageConfigs, pageConfigGlobal };
|
|
299
|
-
}
|
|
300
|
-
function assertPageConfigGlobal(pageConfigGlobal, plusFilesAll) {
|
|
301
|
-
Object.entries(pageConfigGlobal.configValueSources).forEach(([configName, sources]) => {
|
|
302
|
-
assertGlobalConfigLocation(configName, sources, plusFilesAll, pageConfigGlobal.configDefinitions);
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
function assertGlobalConfigLocation(configName, sources, plusFilesAll, configDefinitionsGlobal) {
|
|
306
|
-
// Determine existing global +config.js files
|
|
307
|
-
const configFilePathsGlobal = [];
|
|
308
|
-
const plusFilesGlobal = Object.values((0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(plusFilesAll).filter(([locationId]) => isGlobalLocation(locationId, plusFilesAll)))).flat();
|
|
309
|
-
plusFilesGlobal
|
|
310
|
-
.filter((i) => i.isConfigFile)
|
|
311
|
-
.forEach((plusFile) => {
|
|
312
|
-
const { filePathAbsoluteUserRootDir } = plusFile.filePath;
|
|
313
|
-
if (filePathAbsoluteUserRootDir) {
|
|
314
|
-
configFilePathsGlobal.push(filePathAbsoluteUserRootDir);
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
// Call assertWarning()
|
|
318
|
-
sources.forEach((source) => {
|
|
319
|
-
const { plusFile } = source;
|
|
320
|
-
// It's `null` when the config is defined by `vike(options)` in vite.config.js
|
|
321
|
-
(0, utils_js_1.assert)(plusFile);
|
|
322
|
-
const { filePathAbsoluteUserRootDir } = plusFile.filePath;
|
|
323
|
-
// Allow local Vike extensions to set global configs (`filePathAbsoluteUserRootDir===null` for Vike extension)
|
|
324
|
-
if (!filePathAbsoluteUserRootDir)
|
|
325
|
-
return;
|
|
326
|
-
(0, utils_js_1.assert)(!plusFile.isExtensionConfig);
|
|
327
|
-
if (!isGlobalLocation(source.locationId, plusFilesAll)) {
|
|
328
|
-
const configDef = configDefinitionsGlobal[configName];
|
|
329
|
-
(0, utils_js_1.assert)(configDef);
|
|
330
|
-
const isConditionallyGlobal = (0, utils_js_1.isCallable)(configDef.global);
|
|
331
|
-
const errBeg = `${filePathAbsoluteUserRootDir} (which is a local config file) sets the config ${picocolors_1.default.cyan(configName)}`;
|
|
332
|
-
const errMid = !isConditionallyGlobal
|
|
333
|
-
? "but it's a global config"
|
|
334
|
-
: 'to a value that is global';
|
|
335
|
-
const what = isConditionallyGlobal ? 'global values' : picocolors_1.default.cyan(configName);
|
|
336
|
-
const errEnd = configFilePathsGlobal.length > 0
|
|
337
|
-
? `define ${what} at a global config file such as ${(0, utils_js_1.joinEnglish)(configFilePathsGlobal.map(picocolors_1.default.bold), 'or')} instead`
|
|
338
|
-
: `create a global config file (e.g. /pages/+config.js) and define ${what} there instead`;
|
|
339
|
-
// When updating this error message => also update error message at https://vike.dev/warning/global-config
|
|
340
|
-
const errMsg = `${errBeg} ${errMid}: ${errEnd} (https://vike.dev/warning/global-config).`;
|
|
341
|
-
(0, utils_js_1.assertWarning)(false, errMsg, { onlyOnce: true });
|
|
342
|
-
}
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
function assertPageConfigs(pageConfigs) {
|
|
346
|
-
pageConfigs.forEach((pageConfig) => {
|
|
347
|
-
assertOnBeforeRenderEnv(pageConfig);
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
function assertOnBeforeRenderEnv(pageConfig) {
|
|
351
|
-
const onBeforeRenderConfig = pageConfig.configValueSources.onBeforeRender?.[0];
|
|
352
|
-
if (!onBeforeRenderConfig)
|
|
353
|
-
return;
|
|
354
|
-
const onBeforeRenderEnv = onBeforeRenderConfig.configEnv;
|
|
355
|
-
const isClientRouting = (0, getConfigValueBuildTime_js_1.getConfigValueBuildTime)(pageConfig, 'clientRouting', 'boolean');
|
|
356
|
-
// When using Server Routing, loading a onBeforeRender() hook on the client-side hasn't any effect (the Server Routing's client runtime never calls it); it unnecessarily bloats client bundle sizes
|
|
357
|
-
(0, utils_js_1.assertUsage)(!(onBeforeRenderEnv.client && !isClientRouting), `Page ${pageConfig.pageId} has an onBeforeRender() hook with env ${picocolors_1.default.cyan(JSON.stringify(onBeforeRenderEnv))} which doesn't make sense because the page is using Server Routing: onBeforeRender() can be run in the client only when using Client Routing.`);
|
|
358
|
-
}
|
|
359
|
-
function getConfigValues(pageConfig, isGlobalConfig) {
|
|
360
|
-
const tolerateMissingValue = !isGlobalConfig;
|
|
361
|
-
const configValues = {};
|
|
362
|
-
(0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, { isForConfig: true }, null).forEach((entry) => {
|
|
363
|
-
if (entry.configValueBase.type === 'computed') {
|
|
364
|
-
(0, utils_js_1.assert)('value' in entry); // Help TS
|
|
365
|
-
const { configValueBase, value, configName } = entry;
|
|
366
|
-
configValues[configName] = { ...configValueBase, value };
|
|
367
|
-
}
|
|
368
|
-
if (entry.configValueBase.type === 'standard') {
|
|
369
|
-
(0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
|
|
370
|
-
const { configValueBase, sourceRelevant, configName } = entry;
|
|
371
|
-
if (!sourceRelevant.valueIsLoaded) {
|
|
372
|
-
if (tolerateMissingValue)
|
|
373
|
-
return;
|
|
374
|
-
(0, utils_js_1.assert)(false);
|
|
375
|
-
}
|
|
376
|
-
const { value } = sourceRelevant;
|
|
377
|
-
configValues[configName] = { ...configValueBase, value };
|
|
378
|
-
}
|
|
379
|
-
if (entry.configValueBase.type === 'cumulative') {
|
|
380
|
-
(0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
|
|
381
|
-
const { configValueBase, sourcesRelevant, configName } = entry;
|
|
382
|
-
const values = [];
|
|
383
|
-
sourcesRelevant.forEach((source) => {
|
|
384
|
-
if (!source.valueIsLoaded) {
|
|
385
|
-
if (tolerateMissingValue)
|
|
386
|
-
return;
|
|
387
|
-
(0, utils_js_1.assert)(false);
|
|
388
|
-
}
|
|
389
|
-
values.push(source.value);
|
|
390
|
-
});
|
|
391
|
-
if (values.length === 0) {
|
|
392
|
-
if (tolerateMissingValue)
|
|
393
|
-
return;
|
|
394
|
-
(0, utils_js_1.assert)(false);
|
|
395
|
-
}
|
|
396
|
-
configValues[configName] = { ...configValueBase, value: values };
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
return configValues;
|
|
400
|
-
}
|
|
401
|
-
function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir) {
|
|
402
|
-
(0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeVitePluginOptions));
|
|
403
|
-
(0, utils_js_1.assertWarning)(Object.keys(vikeVitePluginOptions).length === 0, `Define Vike settings in +config.js instead of vite.config.js ${picocolors_1.default.underline('https://vike.dev/migration/settings')}`, { onlyOnce: true });
|
|
404
|
-
Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
|
|
405
|
-
var _a;
|
|
406
|
-
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
407
|
-
sources.push(getSourceNonConfigFile(configName, value, {
|
|
408
|
-
...(0, getFilePath_js_1.getFilePathResolved)({
|
|
409
|
-
userRootDir,
|
|
410
|
-
filePathAbsoluteUserRootDir: '/vite.config.js',
|
|
411
|
-
}),
|
|
412
|
-
fileExportPathToShowToUser: null,
|
|
413
|
-
}));
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
|
|
417
|
-
// Vike API — passed options [lowest precedence]
|
|
418
|
-
const vikeApiOperation = (0, context_js_1.getVikeApiOperation)();
|
|
419
|
-
if (vikeApiOperation?.options.vikeConfig) {
|
|
420
|
-
addSources(vikeApiOperation.options.vikeConfig, { definedBy: 'api', operation: vikeApiOperation.operation }, false);
|
|
421
|
-
}
|
|
422
|
-
const { configFromCliOptions, configFromEnvVar } = getVikeConfigFromCliOrEnv();
|
|
423
|
-
// Vike CLI options
|
|
424
|
-
if (configFromCliOptions) {
|
|
425
|
-
addSources(configFromCliOptions, { definedBy: 'cli' }, true);
|
|
426
|
-
}
|
|
427
|
-
// VIKE_CONFIG [highest precedence]
|
|
428
|
-
if (configFromEnvVar) {
|
|
429
|
-
addSources(configFromEnvVar, { definedBy: 'env' }, false);
|
|
430
|
-
}
|
|
431
|
-
return;
|
|
432
|
-
function addSources(configValues, definedBy, exitOnError) {
|
|
433
|
-
Object.entries(configValues).forEach(([configName, value]) => {
|
|
434
|
-
var _a;
|
|
435
|
-
const sourceName = `The ${(0, getConfigDefinedAt_js_1.getDefinedByString)(definedBy, configName)}`;
|
|
436
|
-
assertKnownConfig(configName, configDefinitionsResolved.configNamesKnownGlobal, configDefinitionsResolved, '/', false, sourceName, exitOnError);
|
|
437
|
-
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
438
|
-
sources.unshift(getSourceNonConfigFile(configName, value, definedBy));
|
|
439
|
-
});
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
function getVikeConfigFromCliOrEnv() {
|
|
443
|
-
const configFromCliOptions = (0, context_js_2.getCliOptions)();
|
|
444
|
-
const configFromEnvVar = (0, getEnvVarObject_js_1.getEnvVarObject)('VIKE_CONFIG');
|
|
445
|
-
const vikeConfigFromCliOrEnv = {
|
|
446
|
-
...configFromCliOptions, // Lower precedence
|
|
447
|
-
...configFromEnvVar, // Higher precedence
|
|
448
|
-
};
|
|
449
|
-
return {
|
|
450
|
-
vikeConfigFromCliOrEnv,
|
|
451
|
-
configFromCliOptions,
|
|
452
|
-
configFromEnvVar,
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
function getSourceNonConfigFile(configName, value, definedAt) {
|
|
456
|
-
(0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn), configName));
|
|
457
|
-
const configDef = configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn[configName];
|
|
458
|
-
const source = {
|
|
459
|
-
valueIsLoaded: true,
|
|
460
|
-
value,
|
|
461
|
-
configEnv: configDef.env,
|
|
462
|
-
definedAt,
|
|
463
|
-
locationId: '/',
|
|
464
|
-
plusFile: null,
|
|
465
|
-
valueIsLoadedWithImport: false,
|
|
466
|
-
valueIsDefinedByPlusValueFile: false,
|
|
467
|
-
};
|
|
468
|
-
return source;
|
|
469
|
-
}
|
|
470
|
-
function sortConfigValueSources(configValueSources, locationIdPage) {
|
|
471
|
-
Object.entries(configValueSources).forEach(([configName, sources]) => {
|
|
472
|
-
sources
|
|
473
|
-
.sort((source1, source2) => {
|
|
474
|
-
if (!source1.plusFile || !source2.plusFile)
|
|
475
|
-
return 0;
|
|
476
|
-
const isGlobal = !locationIdPage;
|
|
477
|
-
if (isGlobal) {
|
|
478
|
-
return sortAfterInheritanceOrderGlobal(source1.plusFile, source2.plusFile, null, configName);
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
481
|
-
return sortAfterInheritanceOrderPage(source1.plusFile, source2.plusFile, locationIdPage, configName);
|
|
482
|
-
}
|
|
483
|
-
})
|
|
484
|
-
// TO-DO/next-major-release: remove
|
|
485
|
-
// Interop with vike(options) in vite.config.js — make it least precedence.
|
|
486
|
-
.sort((0, utils_js_1.makeLast)((source) => !source.plusFile));
|
|
487
|
-
});
|
|
488
|
-
}
|
|
489
|
-
function sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, configName) {
|
|
490
|
-
{
|
|
491
|
-
const ret = (0, filesystemRouting_js_1.sortAfterInheritanceOrder)(plusFile1.locationId, plusFile2.locationId, locationIdPage);
|
|
492
|
-
if (ret !== 0)
|
|
493
|
-
return ret;
|
|
494
|
-
(0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
|
|
495
|
-
}
|
|
496
|
-
if (configName) {
|
|
497
|
-
const ret = sortPlusFilesSameLocationId(plusFile1, plusFile2, configName);
|
|
498
|
-
if (ret !== 0)
|
|
499
|
-
return ret;
|
|
500
|
-
}
|
|
501
|
-
return 0;
|
|
502
|
-
}
|
|
503
|
-
function sortAfterInheritanceOrderGlobal(plusFile1, plusFile2, plusFilesAll, configName) {
|
|
504
|
-
if (plusFilesAll) {
|
|
505
|
-
const ret = (0, utils_js_1.makeFirst)((plusFile) => isGlobalLocation(plusFile.locationId, plusFilesAll))(plusFile1, plusFile2);
|
|
506
|
-
if (ret !== 0)
|
|
507
|
-
return ret;
|
|
508
|
-
}
|
|
509
|
-
{
|
|
510
|
-
const ret = (0, utils_js_1.lowerFirst)((plusFile) => plusFile.locationId.split('/').length)(plusFile1, plusFile2);
|
|
511
|
-
if (ret !== 0)
|
|
512
|
-
return ret;
|
|
513
|
-
}
|
|
514
|
-
if (plusFile1.locationId !== plusFile2.locationId) {
|
|
515
|
-
// Same as `sort()` in `['some', 'string', 'array'].sort()`
|
|
516
|
-
return plusFile1.locationId > plusFile2.locationId ? 1 : -1;
|
|
517
|
-
}
|
|
518
|
-
if (configName) {
|
|
519
|
-
(0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
|
|
520
|
-
const ret = sortPlusFilesSameLocationId(plusFile1, plusFile2, configName);
|
|
521
|
-
if (ret !== 0)
|
|
522
|
-
return ret;
|
|
523
|
-
}
|
|
524
|
-
return 0;
|
|
525
|
-
}
|
|
526
|
-
function sortPlusFilesSameLocationId(plusFile1, plusFile2, configName) {
|
|
527
|
-
(0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
|
|
528
|
-
(0, utils_js_1.assert)(isDefiningConfig(plusFile1, configName));
|
|
529
|
-
(0, utils_js_1.assert)(isDefiningConfig(plusFile2, configName));
|
|
530
|
-
// Config set by extensions (lowest precedence)
|
|
531
|
-
{
|
|
532
|
-
const ret = (0, utils_js_1.makeLast)((plusFile) => !!plusFile.isExtensionConfig)(plusFile1, plusFile2);
|
|
533
|
-
if (ret !== 0)
|
|
534
|
-
return ret;
|
|
535
|
-
}
|
|
536
|
-
// Config set by side-export (lower precedence)
|
|
537
|
-
{
|
|
538
|
-
// - For example `export { frontmatter }` of `.mdx` files.
|
|
539
|
-
// - This only considers side-export configs that are already loaded at build-time. (E.g. it actually doesn't consider `export { frontmatter }` of .mdx files since .mdx files are loaded only at runtime.)
|
|
540
|
-
const ret = (0, utils_js_1.makeLast)((plusFile) => !plusFile.isConfigFile &&
|
|
541
|
-
// Is side-export
|
|
542
|
-
plusFile.configName !== configName)(plusFile1, plusFile2);
|
|
543
|
-
if (ret !== 0)
|
|
544
|
-
return ret;
|
|
545
|
-
}
|
|
546
|
-
// Config set by +config.js
|
|
547
|
-
{
|
|
548
|
-
const ret = (0, utils_js_1.makeLast)((plusFile) => plusFile.isConfigFile)(plusFile1, plusFile2);
|
|
549
|
-
if (ret !== 0)
|
|
550
|
-
return ret;
|
|
551
|
-
}
|
|
552
|
-
// Config set by +{configName}.js (highest precedence)
|
|
553
|
-
// No need to make it deterministic: the overall order is already deterministic, see sortMakeDeterministic() at getPlusFilesAll()
|
|
554
|
-
return 0;
|
|
555
|
-
}
|
|
556
|
-
function resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, isGlobal, plusFilesAll) {
|
|
557
|
-
let sources = plusFilesRelevant
|
|
558
|
-
.filter((plusFile) => isDefiningConfig(plusFile, configName))
|
|
559
|
-
.map((plusFile) => getConfigValueSource(configName, plusFile, configDef, userRootDir));
|
|
560
|
-
// Filter hydrid global-local configs
|
|
561
|
-
if (!(0, utils_js_1.isCallable)(configDef.global)) {
|
|
562
|
-
// Already filtered
|
|
563
|
-
(0, utils_js_1.assert)((configDef.global ?? false) === isGlobal);
|
|
564
|
-
}
|
|
565
|
-
else {
|
|
566
|
-
// We cannot filter earlier
|
|
567
|
-
(0, utils_js_1.assert)(configDef.env.config);
|
|
568
|
-
sources = sources.filter((source) => {
|
|
569
|
-
(0, utils_js_1.assert)(source.configEnv.config);
|
|
570
|
-
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
571
|
-
const valueIsGlobal = resolveIsGlobalValue(configDef.global, source, plusFilesAll);
|
|
572
|
-
return isGlobal ? valueIsGlobal : !valueIsGlobal;
|
|
573
|
-
});
|
|
574
|
-
}
|
|
575
|
-
return sources;
|
|
576
|
-
}
|
|
577
|
-
function isDefiningConfig(plusFile, configName) {
|
|
578
|
-
return getConfigNamesSetByPlusFile(plusFile).includes(configName);
|
|
579
|
-
}
|
|
580
|
-
function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
|
|
581
|
-
const confVal = getConfVal(plusFile, configName);
|
|
582
|
-
(0, utils_js_1.assert)(confVal);
|
|
583
|
-
const configValueSourceCommon = {
|
|
584
|
-
locationId: plusFile.locationId,
|
|
585
|
-
plusFile,
|
|
586
|
-
};
|
|
587
|
-
const definedAtFilePath_ = {
|
|
588
|
-
...plusFile.filePath,
|
|
589
|
-
fileExportPathToShowToUser: ['default', configName],
|
|
590
|
-
};
|
|
591
|
-
// +client.js
|
|
592
|
-
if (configDef._valueIsFilePath) {
|
|
593
|
-
let definedAtFilePath;
|
|
594
|
-
let valueFilePath;
|
|
595
|
-
if (plusFile.isConfigFile) {
|
|
596
|
-
// Defined over pointer import
|
|
597
|
-
(0, utils_js_1.assert)(confVal.valueIsLoaded);
|
|
598
|
-
const pointerImport = (0, resolvePointerImport_js_1.resolvePointerImport)(confVal.value, plusFile.filePath, userRootDir, configName);
|
|
599
|
-
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, definedAtFilePath_);
|
|
600
|
-
(0, utils_js_1.assertUsage)(pointerImport, `${configDefinedAt} should be an import`);
|
|
601
|
-
valueFilePath = pointerImport.fileExportPath.filePathAbsoluteVite;
|
|
602
|
-
definedAtFilePath = pointerImport.fileExportPath;
|
|
603
|
-
}
|
|
604
|
-
else {
|
|
605
|
-
// Defined by value file, i.e. +{configName}.js
|
|
606
|
-
(0, utils_js_1.assert)(!plusFile.isConfigFile);
|
|
607
|
-
valueFilePath = plusFile.filePath.filePathAbsoluteVite;
|
|
608
|
-
definedAtFilePath = {
|
|
609
|
-
...plusFile.filePath,
|
|
610
|
-
fileExportPathToShowToUser: [],
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
const configValueSource = {
|
|
614
|
-
...configValueSourceCommon,
|
|
615
|
-
valueIsLoaded: true,
|
|
616
|
-
value: valueFilePath,
|
|
617
|
-
valueIsFilePath: true,
|
|
618
|
-
configEnv: configDef.env,
|
|
619
|
-
valueIsLoadedWithImport: false,
|
|
620
|
-
valueIsDefinedByPlusValueFile: false,
|
|
621
|
-
definedAt: definedAtFilePath,
|
|
622
|
-
};
|
|
623
|
-
return configValueSource;
|
|
624
|
-
}
|
|
625
|
-
// +config.js
|
|
626
|
-
if (plusFile.isConfigFile) {
|
|
627
|
-
(0, utils_js_1.assert)(confVal.valueIsLoaded);
|
|
628
|
-
// Defined over pointer import
|
|
629
|
-
const pointerImport = plusFile.pointerImportsByConfigName[configName];
|
|
630
|
-
if (pointerImport) {
|
|
631
|
-
const value = pointerImport.fileExportValueLoaded
|
|
632
|
-
? {
|
|
633
|
-
valueIsLoaded: true,
|
|
634
|
-
value: pointerImport.fileExportValue,
|
|
635
|
-
}
|
|
636
|
-
: {
|
|
637
|
-
valueIsLoaded: false,
|
|
638
|
-
};
|
|
639
|
-
const configValueSource = {
|
|
640
|
-
...configValueSourceCommon,
|
|
641
|
-
...value,
|
|
642
|
-
configEnv: resolveConfigEnv(configDef.env, pointerImport.fileExportPath),
|
|
643
|
-
valueIsLoadedWithImport: true,
|
|
644
|
-
valueIsDefinedByPlusValueFile: false,
|
|
645
|
-
definedAt: pointerImport.fileExportPath,
|
|
646
|
-
};
|
|
647
|
-
return configValueSource;
|
|
648
|
-
}
|
|
649
|
-
// Defined inside +config.js
|
|
650
|
-
const configValueSource = {
|
|
651
|
-
...configValueSourceCommon,
|
|
652
|
-
valueIsLoaded: true,
|
|
653
|
-
value: confVal.value,
|
|
654
|
-
configEnv: configDef.env,
|
|
655
|
-
valueIsLoadedWithImport: false,
|
|
656
|
-
valueIsDefinedByPlusValueFile: false,
|
|
657
|
-
definedAt: definedAtFilePath_,
|
|
658
|
-
};
|
|
659
|
-
return configValueSource;
|
|
660
|
-
}
|
|
661
|
-
// Defined by value file, i.e. +{configName}.js
|
|
662
|
-
if (!plusFile.isConfigFile) {
|
|
663
|
-
const configEnvResolved = resolveConfigEnv(configDef.env, plusFile.filePath);
|
|
664
|
-
(0, utils_js_1.assert)(confVal.valueIsLoaded === !!configEnvResolved.config);
|
|
665
|
-
const configValueSource = {
|
|
666
|
-
...configValueSourceCommon,
|
|
667
|
-
...confVal,
|
|
668
|
-
configEnv: configEnvResolved,
|
|
669
|
-
valueIsLoadedWithImport: !confVal.valueIsLoaded || !(0, serializeConfigValues_js_1.isJsonValue)(confVal.value),
|
|
670
|
-
valueIsDefinedByPlusValueFile: true,
|
|
671
|
-
definedAt: {
|
|
672
|
-
...plusFile.filePath,
|
|
673
|
-
fileExportPathToShowToUser: configName === plusFile.configName
|
|
674
|
-
? []
|
|
675
|
-
: // Side-effect config (e.g. `export { frontmatter }` of .md files)
|
|
676
|
-
[configName],
|
|
677
|
-
},
|
|
678
|
-
};
|
|
679
|
-
return configValueSource;
|
|
680
|
-
}
|
|
681
|
-
(0, utils_js_1.assert)(false);
|
|
682
|
-
}
|
|
683
|
-
function isDefiningPage(plusFiles) {
|
|
684
|
-
for (const plusFile of plusFiles) {
|
|
685
|
-
const configNames = getConfigNamesSetByPlusFile(plusFile);
|
|
686
|
-
if (configNames.some((configName) => isDefiningPageConfig(configName))) {
|
|
687
|
-
return true;
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
return false;
|
|
691
|
-
}
|
|
692
|
-
function isDefiningPageConfig(configName) {
|
|
693
|
-
return ['Page', 'route'].includes(configName);
|
|
694
|
-
}
|
|
695
|
-
function resolveIsGlobalValue(configDefGlobal, source, plusFilesAll) {
|
|
696
|
-
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
697
|
-
let isGlobal;
|
|
698
|
-
if ((0, utils_js_1.isCallable)(configDefGlobal))
|
|
699
|
-
isGlobal = configDefGlobal(source.value, {
|
|
700
|
-
isGlobalLocation: isGlobalLocation(source.locationId, plusFilesAll),
|
|
701
|
-
});
|
|
702
|
-
else
|
|
703
|
-
isGlobal = configDefGlobal ?? false;
|
|
704
|
-
(0, utils_js_1.assert)(typeof isGlobal === 'boolean');
|
|
705
|
-
return isGlobal;
|
|
706
|
-
}
|
|
707
|
-
function getConfigNamesSetByPlusFile(plusFile) {
|
|
708
|
-
if (!plusFile.isConfigFile) {
|
|
709
|
-
return [plusFile.configName];
|
|
710
|
-
}
|
|
711
|
-
else {
|
|
712
|
-
return Object.keys(plusFile.fileExportsByConfigName);
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
function getConfigDefinitions(plusFilesRelevant, filter) {
|
|
716
|
-
let configDefinitions = { ...configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn };
|
|
717
|
-
// Add user-land meta configs
|
|
718
|
-
plusFilesRelevant
|
|
719
|
-
.slice()
|
|
720
|
-
.reverse()
|
|
721
|
-
.forEach((plusFile) => {
|
|
722
|
-
const confVal = getConfVal(plusFile, 'meta');
|
|
723
|
-
if (!confVal)
|
|
724
|
-
return;
|
|
725
|
-
(0, utils_js_1.assert)(confVal.valueIsLoaded);
|
|
726
|
-
const meta = confVal.value;
|
|
727
|
-
assertMetaUsage(meta, `Config ${picocolors_1.default.cyan('meta')} defined at ${plusFile.filePath.filePathToShowToUser}`);
|
|
728
|
-
// Set configDef._userEffectDefinedAtFilePath
|
|
729
|
-
Object.entries(meta).forEach(([configName, configDef]) => {
|
|
730
|
-
if ('isDefinedByPeerDependency' in configDef)
|
|
731
|
-
return;
|
|
732
|
-
if (!configDef.effect)
|
|
733
|
-
return;
|
|
734
|
-
(0, utils_js_1.assert)(plusFile.isConfigFile);
|
|
735
|
-
configDef._userEffectDefinedAtFilePath = {
|
|
736
|
-
...plusFile.filePath,
|
|
737
|
-
fileExportPathToShowToUser: ['default', 'meta', configName, 'effect'],
|
|
738
|
-
};
|
|
739
|
-
});
|
|
740
|
-
(0, utils_js_1.objectEntries)(meta).forEach(([configName, configDefinitionUserLand]) => {
|
|
741
|
-
if ('isDefinedByPeerDependency' in configDefinitionUserLand) {
|
|
742
|
-
configDefinitionUserLand = {
|
|
743
|
-
env: { client: false, server: false, config: false },
|
|
744
|
-
...configDefinitionUserLand,
|
|
745
|
-
};
|
|
746
|
-
}
|
|
747
|
-
// User can override an existing config definition
|
|
748
|
-
configDefinitions[configName] = {
|
|
749
|
-
...configDefinitions[configName],
|
|
750
|
-
...configDefinitionUserLand,
|
|
751
|
-
};
|
|
752
|
-
});
|
|
753
|
-
});
|
|
754
|
-
if (filter) {
|
|
755
|
-
configDefinitions = Object.fromEntries(Object.entries(configDefinitions).filter(([_configName, configDef]) => filter(configDef)));
|
|
756
|
-
}
|
|
757
|
-
return configDefinitions;
|
|
758
|
-
}
|
|
759
|
-
function assertMetaUsage(metaVal, metaConfigDefinedAt) {
|
|
760
|
-
if (!(0, utils_js_1.isObject)(metaVal)) {
|
|
761
|
-
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
762
|
-
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} has an invalid type ${picocolors_1.default.cyan(typeof metaVal)}: it should be an object instead.`);
|
|
763
|
-
}
|
|
764
|
-
(0, utils_js_1.objectEntries)(metaVal).forEach(([configName, def]) => {
|
|
765
|
-
if (!(0, utils_js_1.isObject)(def)) {
|
|
766
|
-
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
767
|
-
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}`)} to a value with an invalid type ${picocolors_1.default.cyan(typeof def)}: it should be an object instead.`);
|
|
768
|
-
}
|
|
769
|
-
if (def.isDefinedByPeerDependency)
|
|
770
|
-
return;
|
|
771
|
-
// env
|
|
772
|
-
let configEnv;
|
|
773
|
-
{
|
|
774
|
-
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
775
|
-
if (!('env' in def)) {
|
|
776
|
-
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} doesn't set ${picocolors_1.default.cyan(`meta.${configName}.env`)} but it's required.`);
|
|
777
|
-
}
|
|
778
|
-
configEnv = getConfigEnvValue(def.env, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.env`)} to`);
|
|
779
|
-
// Overwrite deprecated value with valid value
|
|
780
|
-
// TO-DO/next-major-release: remove once support for the deprecated values is removed
|
|
781
|
-
if (typeof def.env === 'string')
|
|
782
|
-
def.env = configEnv;
|
|
783
|
-
}
|
|
784
|
-
// effect
|
|
785
|
-
if ('effect' in def) {
|
|
786
|
-
if (!(0, utils_js_1.hasProp)(def, 'effect', 'function')) {
|
|
787
|
-
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
788
|
-
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.effect`)} to an invalid type ${picocolors_1.default.cyan(typeof def.effect)}: it should be a function instead`);
|
|
789
|
-
}
|
|
790
|
-
if (!configEnv.config) {
|
|
791
|
-
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
792
|
-
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.effect`)} but it's only supported if meta.${configName}.env has ${picocolors_1.default.cyan('{ config: true }')} (but it's ${picocolors_1.default.cyan(JSON.stringify(configEnv))} instead)`);
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
});
|
|
796
|
-
}
|
|
797
|
-
// Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/vite.config.ts#L39
|
|
798
|
-
function applyEffectsConfVal(configValueSources, configDefinitions, plusFilesAll) {
|
|
799
|
-
(0, utils_js_1.objectEntries)(configDefinitions).forEach(([configNameEffect, configDefEffect]) => {
|
|
800
|
-
const sourceEffect = configValueSources[configNameEffect]?.[0];
|
|
801
|
-
if (!sourceEffect)
|
|
802
|
-
return;
|
|
803
|
-
const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
|
|
804
|
-
if (!effect)
|
|
805
|
-
return;
|
|
806
|
-
const configModFromEffect = effect;
|
|
807
|
-
applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll);
|
|
808
|
-
});
|
|
809
|
-
}
|
|
810
|
-
// Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/pages/config-meta/effect/e2e-test.ts#L16
|
|
811
|
-
function applyEffectsMetaEnv(configValueSources, configDefinitions) {
|
|
812
|
-
(0, utils_js_1.objectEntries)(configDefinitions).forEach(([configNameEffect, configDefEffect]) => {
|
|
813
|
-
const sourceEffect = configValueSources[configNameEffect]?.[0];
|
|
814
|
-
if (!sourceEffect)
|
|
815
|
-
return;
|
|
816
|
-
const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
|
|
817
|
-
if (!effect)
|
|
818
|
-
return;
|
|
819
|
-
const configModFromEffect = effect;
|
|
820
|
-
applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEffect);
|
|
821
|
-
});
|
|
822
|
-
}
|
|
823
|
-
function runEffect(configName, configDef, source) {
|
|
824
|
-
if (!configDef.effect)
|
|
825
|
-
return null;
|
|
826
|
-
// The value needs to be loaded at config time, that's why we only support effect for configs that are config-only for now.
|
|
827
|
-
(0, utils_js_1.assertUsage)(configDef.env.config, [
|
|
828
|
-
`Cannot add meta.effect to ${picocolors_1.default.cyan(configName)} because its meta.env is ${picocolors_1.default.cyan(JSON.stringify(configDef.env))} but an effect can only be added to a config that has a meta.env with ${picocolors_1.default.cyan('{ config: true }')}.`,
|
|
829
|
-
].join(' '));
|
|
830
|
-
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
831
|
-
// Call effect
|
|
832
|
-
const configModFromEffect = configDef.effect({
|
|
833
|
-
configValue: source.value,
|
|
834
|
-
configDefinedAt: (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, source.definedAt),
|
|
835
|
-
});
|
|
836
|
-
if (!configModFromEffect)
|
|
837
|
-
return null;
|
|
838
|
-
return configModFromEffect;
|
|
839
|
-
}
|
|
840
|
-
function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll) {
|
|
841
|
-
(0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configNameTarget, configValue]) => {
|
|
842
|
-
if (configNameTarget === 'meta')
|
|
843
|
-
return;
|
|
844
|
-
const configDef = configDefinitions[configNameTarget];
|
|
845
|
-
(0, utils_js_1.assert)(configDef);
|
|
846
|
-
(0, utils_js_1.assert)(configDefEffect._userEffectDefinedAtFilePath);
|
|
847
|
-
const configValueSource = {
|
|
848
|
-
definedAt: configDefEffect._userEffectDefinedAtFilePath,
|
|
849
|
-
plusFile: sourceEffect.plusFile,
|
|
850
|
-
locationId: sourceEffect.locationId,
|
|
851
|
-
configEnv: configDef.env,
|
|
852
|
-
valueIsLoadedWithImport: false,
|
|
853
|
-
valueIsDefinedByPlusValueFile: false,
|
|
854
|
-
valueIsLoaded: true,
|
|
855
|
-
value: configValue,
|
|
856
|
-
};
|
|
857
|
-
(0, utils_js_1.assert)(sourceEffect.valueIsLoaded);
|
|
858
|
-
const isValueGlobalSource = resolveIsGlobalValue(configDefEffect.global, sourceEffect, plusFilesAll);
|
|
859
|
-
const isValueGlobalTarget = resolveIsGlobalValue(configDef.global, configValueSource, plusFilesAll);
|
|
860
|
-
const isGlobalHumanReadable = (isGlobal) => `${isGlobal ? 'non-' : ''}global`;
|
|
861
|
-
// The error message make it sound like it's an inherent limitation, it actually isn't (both ways can make senses).
|
|
862
|
-
(0, utils_js_1.assertUsage)(isValueGlobalSource === isValueGlobalTarget, `The configuration ${picocolors_1.default.cyan(configNameEffect)} is set to ${picocolors_1.default.cyan(JSON.stringify(sourceEffect.value))} which is considered ${isGlobalHumanReadable(isValueGlobalSource)}. However, it has a meta.effect that sets the configuration ${picocolors_1.default.cyan(configNameTarget)} to ${picocolors_1.default.cyan(JSON.stringify(configValue))} which is considered ${isGlobalHumanReadable(isValueGlobalTarget)}. This is contradictory: make sure the values are either both non-global or both global.`);
|
|
863
|
-
configValueSources[configNameTarget] ?? (configValueSources[configNameTarget] = []);
|
|
864
|
-
configValueSources[configNameTarget].push(configValueSource);
|
|
865
|
-
});
|
|
866
|
-
}
|
|
867
|
-
function applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEffect) {
|
|
868
|
-
const notSupported = `${picocolors_1.default.cyan('meta.effect')} currently only supports setting the value of a config, or modifying the ${picocolors_1.default.cyan('meta.env')} of a config.`;
|
|
869
|
-
(0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configNameTarget, configValue]) => {
|
|
870
|
-
if (configNameTarget !== 'meta')
|
|
871
|
-
return;
|
|
872
|
-
let configDefinedAt;
|
|
873
|
-
if (configDefEffect._userEffectDefinedAtFilePath) {
|
|
874
|
-
configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configNameTarget, configDefEffect._userEffectDefinedAtFilePath);
|
|
875
|
-
}
|
|
876
|
-
else {
|
|
877
|
-
configDefinedAt = null;
|
|
878
|
-
}
|
|
879
|
-
assertMetaUsage(configValue, configDefinedAt);
|
|
880
|
-
(0, utils_js_1.objectEntries)(configValue).forEach(([configTargetName, configTargetDef]) => {
|
|
881
|
-
(0, utils_js_1.assert)(!('isDefinedByPeerDependency' in configTargetDef));
|
|
882
|
-
{
|
|
883
|
-
const keys = Object.keys(configTargetDef);
|
|
884
|
-
(0, utils_js_1.assertUsage)(keys.includes('env'), notSupported);
|
|
885
|
-
(0, utils_js_1.assertUsage)(keys.length === 1, notSupported);
|
|
886
|
-
}
|
|
887
|
-
const envOverridden = configTargetDef.env;
|
|
888
|
-
const sources = configValueSources[configTargetName];
|
|
889
|
-
sources?.forEach((configValueSource) => {
|
|
890
|
-
// Apply effect
|
|
891
|
-
configValueSource.configEnv = envOverridden;
|
|
892
|
-
});
|
|
893
|
-
});
|
|
894
|
-
});
|
|
895
|
-
}
|
|
896
|
-
function getComputed(pageConfig) {
|
|
897
|
-
const configValuesComputed = {};
|
|
898
|
-
(0, utils_js_1.objectEntries)(pageConfig.configDefinitions).forEach(([configName, configDef]) => {
|
|
899
|
-
if (!configDef._computed)
|
|
900
|
-
return;
|
|
901
|
-
const value = configDef._computed(pageConfig);
|
|
902
|
-
if (value === undefined)
|
|
903
|
-
return;
|
|
904
|
-
configValuesComputed[configName] = {
|
|
905
|
-
value,
|
|
906
|
-
configEnv: configDef.env,
|
|
907
|
-
};
|
|
908
|
-
});
|
|
909
|
-
return configValuesComputed;
|
|
910
|
-
}
|
|
911
|
-
// Show error message upon unknown config
|
|
912
|
-
function assertKnownConfigs(configDefinitionsResolved) {
|
|
913
|
-
(0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsLocal).forEach(([_locationId, { configNamesKnownLocal, plusFiles }]) => {
|
|
914
|
-
plusFiles.forEach((plusFile) => {
|
|
915
|
-
const configNames = getConfigNamesSetByPlusFile(plusFile);
|
|
916
|
-
configNames.forEach((configName) => {
|
|
917
|
-
const { locationId } = plusFile;
|
|
918
|
-
const sourceName = plusFile.filePath.filePathToShowToUser;
|
|
919
|
-
assertKnownConfig(configName, configNamesKnownLocal, configDefinitionsResolved, locationId, true, sourceName, false);
|
|
920
|
-
});
|
|
921
|
-
});
|
|
922
|
-
});
|
|
923
|
-
}
|
|
924
|
-
function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitionsResolved, locationId, isPlusFile, sourceName, exitOnError) {
|
|
925
|
-
const { configNamesKnownAll } = configDefinitionsResolved;
|
|
926
|
-
if (configNamesKnownRelevant.includes(configName)) {
|
|
927
|
-
(0, utils_js_1.assert)(configNamesKnownAll.includes(configName));
|
|
928
|
-
return;
|
|
929
|
-
}
|
|
930
|
-
const configNameColored = picocolors_1.default.cyan(configName);
|
|
931
|
-
// Inheritance issue: config is known but isn't defined at `locationId`
|
|
932
|
-
if (configNamesKnownAll.includes(configName)) {
|
|
933
|
-
(0, utils_js_1.assertUsage)(false, `${sourceName} sets the value of the config ${configNameColored} which is a custom config that is defined with ${picocolors_1.default.underline('https://vike.dev/meta')} at a path that doesn't apply to ${locationId} — see ${picocolors_1.default.underline('https://vike.dev/config#inheritance')}`, { exitOnError });
|
|
934
|
-
}
|
|
935
|
-
const errMsg = isPlusFile
|
|
936
|
-
? `${sourceName} sets an unknown config ${configNameColored}`
|
|
937
|
-
: `${sourceName} sets an unknown Vike config, see ${picocolors_1.default.underline('https://vike.dev/cli')} for the list of CLI options`;
|
|
938
|
-
(0, utils_js_1.assert)(errMsg.includes(configName));
|
|
939
|
-
// Missing vike-{react,vue,solid} installation
|
|
940
|
-
{
|
|
941
|
-
const ui = ['vike-react', 'vike-vue', 'vike-solid'];
|
|
942
|
-
const knownVikeExntensionConfigs = {
|
|
943
|
-
description: ui,
|
|
944
|
-
favicon: ui,
|
|
945
|
-
Head: ui,
|
|
946
|
-
Layout: ui,
|
|
947
|
-
onCreateApp: ['vike-vue'],
|
|
948
|
-
title: ui,
|
|
949
|
-
ssr: ui,
|
|
950
|
-
stream: ui,
|
|
951
|
-
Wrapper: ui,
|
|
952
|
-
};
|
|
953
|
-
if (configName in knownVikeExntensionConfigs) {
|
|
954
|
-
const requiredVikeExtension = (0, utils_js_1.joinEnglish)(knownVikeExntensionConfigs[configName].map((e) => picocolors_1.default.bold(e)), 'or');
|
|
955
|
-
const errMsgEnhanced = `${errMsg}. If you want to use the configuration ${configNameColored} documented at ${picocolors_1.default.underline(`https://vike.dev/${configName}`)} then make sure to install ${requiredVikeExtension}. (Alternatively, you can define ${configNameColored} yourself by using ${picocolors_1.default.cyan('meta')}, see ${picocolors_1.default.underline('https://vike.dev/meta')} for more information.)`;
|
|
956
|
-
(0, utils_js_1.assertUsage)(false, errMsgEnhanced, { exitOnError });
|
|
957
|
-
}
|
|
958
|
-
}
|
|
959
|
-
// Similarity hint
|
|
960
|
-
let configNameSimilar = null;
|
|
961
|
-
if (configName === 'page') {
|
|
962
|
-
configNameSimilar = 'Page';
|
|
963
|
-
}
|
|
964
|
-
else {
|
|
965
|
-
configNameSimilar = (0, utils_js_1.getMostSimilar)(configName, configNamesKnownAll);
|
|
966
|
-
}
|
|
967
|
-
if (configNameSimilar) {
|
|
968
|
-
(0, utils_js_1.assert)(configNameSimilar !== configName);
|
|
969
|
-
let errMsgEnhanced = `${errMsg}. Did you mean ${picocolors_1.default.cyan(configNameSimilar)} instead?`;
|
|
970
|
-
if (configName === 'page') {
|
|
971
|
-
errMsgEnhanced += ` (The name of the config ${picocolors_1.default.cyan('Page')} starts with a capital letter ${picocolors_1.default.cyan('P')} because it defines a UI component: a ubiquitous JavaScript convention is that the name of UI components start with a capital letter.)`;
|
|
972
|
-
}
|
|
973
|
-
(0, utils_js_1.assertUsage)(false, errMsgEnhanced, { exitOnError });
|
|
974
|
-
}
|
|
975
|
-
(0, utils_js_1.assertUsage)(false, errMsg, { exitOnError });
|
|
976
|
-
}
|
|
977
|
-
function determineRouteFilesystem(locationId, configValueSources) {
|
|
978
|
-
const configName = 'filesystemRoutingRoot';
|
|
979
|
-
const configFilesystemRoutingRoot = configValueSources[configName]?.[0];
|
|
980
|
-
let filesystemRouteString = (0, filesystemRouting_js_1.getFilesystemRouteString)(locationId);
|
|
981
|
-
if (determineIsErrorPage(filesystemRouteString)) {
|
|
982
|
-
return { isErrorPage: true, routeFilesystem: undefined };
|
|
983
|
-
}
|
|
984
|
-
let filesystemRouteDefinedBy = (0, filesystemRouting_js_1.getFilesystemRouteDefinedBy)(locationId); // for log404()
|
|
985
|
-
if (configFilesystemRoutingRoot) {
|
|
986
|
-
const routingRoot = getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName);
|
|
987
|
-
if (routingRoot) {
|
|
988
|
-
const { filesystemRoutingRootEffect /*, filesystemRoutingRootConfigDefinedAt*/ } = routingRoot;
|
|
989
|
-
const debugInfo = { locationId, routeFilesystem: filesystemRouteString, configFilesystemRoutingRoot };
|
|
990
|
-
(0, utils_js_1.assert)(filesystemRouteString.startsWith(filesystemRoutingRootEffect.before), debugInfo);
|
|
991
|
-
filesystemRouteString = (0, filesystemRouting_js_1.applyFilesystemRoutingRootEffect)(filesystemRouteString, filesystemRoutingRootEffect);
|
|
992
|
-
// filesystemRouteDefinedBy = `${filesystemRouteDefinedBy} (with ${filesystemRoutingRootConfigDefinedAt})`
|
|
993
|
-
}
|
|
994
|
-
}
|
|
995
|
-
(0, utils_js_1.assert)(filesystemRouteString.startsWith('/'));
|
|
996
|
-
const routeFilesystem = {
|
|
997
|
-
routeString: filesystemRouteString,
|
|
998
|
-
definedAtLocation: filesystemRouteDefinedBy,
|
|
999
|
-
};
|
|
1000
|
-
return { routeFilesystem, isErrorPage: undefined };
|
|
1001
|
-
}
|
|
1002
|
-
function getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName) {
|
|
1003
|
-
(0, utils_js_1.assert)(configFilesystemRoutingRoot.configEnv.config);
|
|
1004
|
-
// Eagerly loaded since it's config-only
|
|
1005
|
-
(0, utils_js_1.assert)(configFilesystemRoutingRoot.valueIsLoaded);
|
|
1006
|
-
const { value } = configFilesystemRoutingRoot;
|
|
1007
|
-
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, configFilesystemRoutingRoot.definedAt);
|
|
1008
|
-
(0, utils_js_1.assertUsage)(typeof value === 'string', `${configDefinedAt} should be a string`);
|
|
1009
|
-
(0, utils_js_1.assertUsage)(value.startsWith('/'), `${configDefinedAt} is ${picocolors_1.default.cyan(value)} but it should start with a leading slash ${picocolors_1.default.cyan('/')}`);
|
|
1010
|
-
const { definedAt } = configFilesystemRoutingRoot;
|
|
1011
|
-
(0, utils_js_1.assert)(!definedAt.definedBy);
|
|
1012
|
-
const { filePathAbsoluteUserRootDir } = definedAt;
|
|
1013
|
-
(0, utils_js_1.assert)(filePathAbsoluteUserRootDir);
|
|
1014
|
-
const before = (0, filesystemRouting_js_1.getFilesystemRouteString)((0, filesystemRouting_js_1.getLocationId)(filePathAbsoluteUserRootDir));
|
|
1015
|
-
const after = value;
|
|
1016
|
-
const filesystemRoutingRootEffect = { before, after };
|
|
1017
|
-
return { filesystemRoutingRootEffect, filesystemRoutingRootConfigDefinedAt: configDefinedAt };
|
|
1018
|
-
}
|
|
1019
|
-
function determineIsErrorPage(routeFilesystem) {
|
|
1020
|
-
(0, utils_js_1.assertPosixPath)(routeFilesystem);
|
|
1021
|
-
return routeFilesystem.split('/').includes('_error');
|
|
1022
|
-
}
|
|
1023
|
-
function getConfigEnvValue(val, errMsgIntro) {
|
|
1024
|
-
const errInvalidValue = `${errMsgIntro} an invalid value ${picocolors_1.default.cyan(JSON.stringify(val))}`;
|
|
1025
|
-
// Legacy outdated values
|
|
1026
|
-
// TO-DO/next-major-release: remove
|
|
1027
|
-
if (typeof val === 'string') {
|
|
1028
|
-
const valConverted = (() => {
|
|
1029
|
-
if (val === 'client-only')
|
|
1030
|
-
return { client: true };
|
|
1031
|
-
if (val === 'server-only')
|
|
1032
|
-
return { server: true };
|
|
1033
|
-
if (val === 'server-and-client')
|
|
1034
|
-
return { server: true, client: true };
|
|
1035
|
-
if (val === 'config-only')
|
|
1036
|
-
return { config: true };
|
|
1037
|
-
if (val === '_routing-lazy')
|
|
1038
|
-
return { server: true, client: 'if-client-routing' };
|
|
1039
|
-
if (val === '_routing-eager')
|
|
1040
|
-
return { server: true, client: 'if-client-routing', eager: true };
|
|
1041
|
-
(0, utils_js_1.assertUsage)(false, errInvalidValue);
|
|
1042
|
-
})();
|
|
1043
|
-
(0, utils_js_1.assertWarning)(false, `${errMsgIntro} ${picocolors_1.default.cyan(val)} which is deprecated and will be removed in the next major release`, { onlyOnce: true });
|
|
1044
|
-
return valConverted;
|
|
1045
|
-
}
|
|
1046
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(val), `${errMsgIntro} an invalid type ${picocolors_1.default.cyan(typeof val)}`);
|
|
1047
|
-
(0, utils_js_1.assertKeys)(val, ['config', 'server', 'client'], `${errInvalidValue}:`);
|
|
1048
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'config', 'undefined') || (0, utils_js_1.hasProp)(val, 'config', 'boolean'), errInvalidValue);
|
|
1049
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'server', 'undefined') || (0, utils_js_1.hasProp)(val, 'server', 'boolean'), errInvalidValue);
|
|
1050
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'client', 'undefined') || (0, utils_js_1.hasProp)(val, 'client', 'boolean'), errInvalidValue);
|
|
1051
|
-
/* To allow users to set an eager config:
|
|
1052
|
-
* - Uncomment line below.
|
|
1053
|
-
* - Add 'eager' to assertKeys() call above.
|
|
1054
|
-
* - Add `eager: boolean` to ConfigEnv type.
|
|
1055
|
-
assertUsage(hasProp(val, 'eager', 'undefined') || hasProp(val, 'eager', 'boolean'), errInvalidValue)
|
|
1056
|
-
*/
|
|
1057
|
-
return val;
|
|
1058
|
-
}
|
|
1059
|
-
function getConfigDefinitionOptional(configDefinitions, configName) {
|
|
1060
|
-
return configDefinitions[configName] ?? null;
|
|
1061
|
-
}
|
|
1062
|
-
function getConfVal(plusFile, configName) {
|
|
1063
|
-
const configNames = getConfigNamesSetByPlusFile(plusFile);
|
|
1064
|
-
if (!configNames.includes(configName))
|
|
1065
|
-
return null;
|
|
1066
|
-
if (plusFile.isNotLoaded)
|
|
1067
|
-
return { valueIsLoaded: false };
|
|
1068
|
-
const confVal = { value: plusFile.fileExportsByConfigName[configName], valueIsLoaded: true };
|
|
1069
|
-
return confVal;
|
|
1070
|
-
}
|
|
1071
|
-
function resolveConfigEnv(configEnv, filePath) {
|
|
1072
|
-
const configEnvResolved = { ...configEnv };
|
|
1073
|
-
if (filePath.filePathAbsoluteFilesystem) {
|
|
1074
|
-
const { fileName } = filePath;
|
|
1075
|
-
if (fileName.includes('.server.')) {
|
|
1076
|
-
configEnvResolved.server = true;
|
|
1077
|
-
configEnvResolved.client = false;
|
|
1078
|
-
}
|
|
1079
|
-
else if (fileName.includes('.client.')) {
|
|
1080
|
-
configEnvResolved.client = true;
|
|
1081
|
-
configEnvResolved.server = false;
|
|
1082
|
-
}
|
|
1083
|
-
else if (fileName.includes('.shared.')) {
|
|
1084
|
-
configEnvResolved.server = true;
|
|
1085
|
-
configEnvResolved.client = true;
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
return configEnvResolved;
|
|
1089
|
-
}
|
|
1090
|
-
/** Whether configs defined in `locationId` apply to every page */
|
|
1091
|
-
function isGlobalLocation(locationId, plusFilesAll) {
|
|
1092
|
-
const locationIdsPage = (0, utils_js_1.objectEntries)(plusFilesAll)
|
|
1093
|
-
.filter(([_locationId, plusFiles]) => isDefiningPage(plusFiles))
|
|
1094
|
-
.map(([locationId]) => locationId);
|
|
1095
|
-
return locationIdsPage.every((locId) => (0, filesystemRouting_js_1.isInherited)(locationId, locId));
|
|
1096
|
-
}
|
|
1097
|
-
function resolvePrerenderContext(vikeConfig) {
|
|
1098
|
-
const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
|
|
1099
|
-
globalObject.prerenderContext ?? (globalObject.prerenderContext = {
|
|
1100
|
-
isPrerenderingEnabled: false,
|
|
1101
|
-
isPrerenderingEnabledForAllPages: false,
|
|
1102
|
-
// Set at runPrerender()
|
|
1103
|
-
output: null,
|
|
1104
|
-
// Set at runPrerender()
|
|
1105
|
-
pageContexts: null,
|
|
1106
|
-
});
|
|
1107
|
-
globalObject.prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
|
|
1108
|
-
globalObject.prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
|
|
1109
|
-
return globalObject.prerenderContext;
|
|
1110
|
-
}
|
|
1111
|
-
function restartViteDevServer() {
|
|
1112
|
-
const viteDevServer = (0, globalContext_js_1.getViteDevServer)();
|
|
1113
|
-
(0, utils_js_1.assert)(viteDevServer);
|
|
1114
|
-
(0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_enable)();
|
|
1115
|
-
(async () => {
|
|
1116
|
-
try {
|
|
1117
|
-
await viteDevServer.restart(true);
|
|
1118
|
-
}
|
|
1119
|
-
catch (err) {
|
|
1120
|
-
console.error('Vite restart error:');
|
|
1121
|
-
console.error(err);
|
|
1122
|
-
}
|
|
1123
|
-
})();
|
|
1124
|
-
(0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_disable)();
|
|
1125
|
-
}
|
|
1126
|
-
function getVikeConfigDummy(esbuildCache) {
|
|
1127
|
-
const pageConfigsDummy = [];
|
|
1128
|
-
const pageConfigGlobalDummy = {
|
|
1129
|
-
configValueSources: {},
|
|
1130
|
-
configDefinitions: {},
|
|
1131
|
-
};
|
|
1132
|
-
const globalConfigPublicDummy = resolveGlobalConfig(pageConfigGlobalDummy, pageConfigsDummy);
|
|
1133
|
-
const prerenderContextDummy = resolvePrerenderContext({
|
|
1134
|
-
config: globalConfigPublicDummy.config,
|
|
1135
|
-
_from: globalConfigPublicDummy._from,
|
|
1136
|
-
_pageConfigs: pageConfigsDummy,
|
|
1137
|
-
});
|
|
1138
|
-
const vikeConfigDummy = {
|
|
1139
|
-
_pageConfigs: pageConfigsDummy,
|
|
1140
|
-
_pageConfigGlobal: {
|
|
1141
|
-
configDefinitions: {},
|
|
1142
|
-
configValueSources: {},
|
|
1143
|
-
},
|
|
1144
|
-
...globalConfigPublicDummy,
|
|
1145
|
-
prerenderContext: prerenderContextDummy,
|
|
1146
|
-
_vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
|
|
1147
|
-
};
|
|
1148
|
-
globalObject.vikeConfigSync = vikeConfigDummy;
|
|
1149
|
-
globalObject.isV1Design_ = true;
|
|
1150
|
-
return vikeConfigDummy;
|
|
1151
|
-
}
|