vike 0.4.218 → 0.4.220-commit-a9f46b8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__internal/index.js +11 -11
- package/dist/cjs/node/api/build.js +22 -48
- package/dist/cjs/node/api/context.js +8 -6
- package/dist/cjs/node/api/index.js +17 -7
- package/dist/cjs/node/api/prepareViteApiCall.js +40 -13
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +21 -7
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +5 -5
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
- package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/cjs/node/plugin/plugins/commonConfig.js +41 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
- package/dist/cjs/node/prerender/context.js +24 -0
- package/dist/cjs/node/prerender/runPrerender.js +146 -96
- package/dist/cjs/node/prerender/utils.js +2 -0
- package/dist/cjs/node/runtime/globalContext.js +109 -55
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/index-common.js +0 -15
- package/dist/cjs/node/runtime/onLoad.js +17 -3
- package/dist/cjs/node/runtime/page-files/setup.js +2 -4
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/cjs/node/runtime/renderPage.js +21 -22
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/node/runtime-dev/index.js +17 -7
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/cjs/shared/getPageFiles.js +3 -9
- package/dist/cjs/shared/hooks/getHook.js +3 -3
- package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +4 -3
- package/dist/cjs/utils/assertSetup.js +47 -16
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/debug.js +11 -6
- package/dist/cjs/utils/getGlobalObject.js +1 -2
- package/dist/cjs/utils/isDev.js +2 -0
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/objectReplace.js +9 -0
- package/dist/esm/__internal/index.d.ts +3 -5
- package/dist/esm/__internal/index.js +6 -8
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
- package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/entry.js +0 -1
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +23 -18
- package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/index.js +0 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +3 -4
- package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -62
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/entry.js +0 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +20 -26
- package/dist/esm/node/api/context.d.ts +4 -2
- package/dist/esm/node/api/context.js +8 -7
- package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
- package/dist/esm/node/api/prepareViteApiCall.js +26 -9
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +4 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/node/plugin/index.d.ts +1 -1
- package/dist/esm/node/plugin/index.js +5 -5
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +32 -20
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +42 -5
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
- package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
- package/dist/esm/node/prerender/context.d.ts +9 -0
- package/dist/esm/node/prerender/context.js +22 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -2
- package/dist/esm/node/prerender/runPrerender.js +130 -90
- package/dist/esm/node/prerender/utils.d.ts +2 -0
- package/dist/esm/node/prerender/utils.js +2 -0
- package/dist/esm/node/runtime/globalContext.d.ts +23 -7
- package/dist/esm/node/runtime/globalContext.js +109 -55
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/index-common.d.ts +0 -1
- package/dist/esm/node/runtime/index-common.js +0 -15
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
- package/dist/esm/node/runtime/onLoad.js +16 -2
- package/dist/esm/node/runtime/page-files/setup.js +3 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
- package/dist/esm/node/runtime/renderPage.js +22 -23
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
- package/dist/esm/shared/getPageFiles.d.ts +2 -5
- package/dist/esm/shared/getPageFiles.js +1 -4
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
- package/dist/esm/shared/page-configs/Config.d.ts +20 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +13 -6
- package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
- package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +1 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +4 -3
- package/dist/esm/utils/assertSetup.js +47 -16
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +11 -6
- package/dist/esm/utils/getGlobalObject.js +1 -2
- package/dist/esm/utils/isDev.js +2 -0
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/objectReplace.d.ts +1 -0
- package/dist/esm/utils/objectReplace.js +6 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +4 -13
- package/__internal/loadImportBuild.js +0 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
- package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
- package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
- package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
- package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
- package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
- package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
- package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
- package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
- package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
- /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
- /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
- /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
|
@@ -14,6 +14,9 @@ const assertResolveAlias_js_1 = require("./commonConfig/assertResolveAlias.js");
|
|
|
14
14
|
const getEnvVarObject_js_1 = require("../shared/getEnvVarObject.js");
|
|
15
15
|
const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
|
|
16
16
|
const context_js_1 = require("../../api/context.js");
|
|
17
|
+
const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
|
|
18
|
+
const prepareViteApiCall_js_1 = require("../../api/prepareViteApiCall.js");
|
|
19
|
+
const context_js_2 = require("../../prerender/context.js");
|
|
17
20
|
const pluginName = 'vike:commonConfig';
|
|
18
21
|
function commonConfig(vikeVitePluginOptions) {
|
|
19
22
|
return [
|
|
@@ -22,10 +25,21 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
22
25
|
enforce: 'pre',
|
|
23
26
|
config: {
|
|
24
27
|
order: 'pre',
|
|
25
|
-
handler(
|
|
28
|
+
async handler(configFromUser, env) {
|
|
29
|
+
const isDev = (0, utils_js_1.isDevCheck)(env);
|
|
30
|
+
const operation = env.command === 'build' ? 'build' : env.isPreview ? 'preview' : 'dev';
|
|
31
|
+
const root = configFromUser.root ? (0, prepareViteApiCall_js_1.normalizeViteRoot)(configFromUser.root) : await (0, prepareViteApiCall_js_1.getViteRoot)(operation);
|
|
32
|
+
(0, utils_js_1.assert)(root);
|
|
33
|
+
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig2)(root, isDev, vikeVitePluginOptions);
|
|
26
34
|
return {
|
|
27
|
-
_isDev:
|
|
28
|
-
|
|
35
|
+
_isDev: isDev,
|
|
36
|
+
_root: root,
|
|
37
|
+
_vikeVitePluginOptions: vikeVitePluginOptions,
|
|
38
|
+
vike: { global: vikeConfig.global },
|
|
39
|
+
// TODO/now: remove
|
|
40
|
+
_vikeConfigGlobal: vikeConfig.vikeConfigGlobal,
|
|
41
|
+
// TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
|
|
42
|
+
configVikePromise: Promise.resolve({ prerender: !!vikeConfig.vikeConfigGlobal.prerender })
|
|
29
43
|
};
|
|
30
44
|
}
|
|
31
45
|
}
|
|
@@ -33,6 +47,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
33
47
|
{
|
|
34
48
|
name: pluginName,
|
|
35
49
|
configResolved(config) {
|
|
50
|
+
(0, prepareViteApiCall_js_1.assertViteRoot)(config._root, config);
|
|
36
51
|
assertSingleInstance(config);
|
|
37
52
|
(0, require_shim_1.installRequireShim_setUserRootDir)(config.root);
|
|
38
53
|
}
|
|
@@ -51,6 +66,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
51
66
|
(0, assertResolveAlias_js_1.assertResolveAlias)(config);
|
|
52
67
|
assertEsm(config.root);
|
|
53
68
|
assertVikeCliOrApi(config);
|
|
69
|
+
temp_supportOldInterface(config);
|
|
54
70
|
}
|
|
55
71
|
},
|
|
56
72
|
config: {
|
|
@@ -66,7 +82,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
66
82
|
// VITE_CONFIG
|
|
67
83
|
const configFromEnvVar = (0, getEnvVarObject_js_1.getEnvVarObject)('VITE_CONFIG');
|
|
68
84
|
if (configFromEnvVar)
|
|
69
|
-
configFromVike = (0, vite_1.mergeConfig)(
|
|
85
|
+
configFromVike = (0, vite_1.mergeConfig)(configFromVike, configFromEnvVar);
|
|
70
86
|
return configFromVike;
|
|
71
87
|
}
|
|
72
88
|
}
|
|
@@ -133,3 +149,24 @@ function assertVikeCliOrApi(config) {
|
|
|
133
149
|
onlyOnce: true
|
|
134
150
|
});
|
|
135
151
|
}
|
|
152
|
+
// TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
|
|
153
|
+
function temp_supportOldInterface(config) {
|
|
154
|
+
if (!('vitePluginSsr' in config))
|
|
155
|
+
return;
|
|
156
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(config.vitePluginSsr));
|
|
157
|
+
if ((0, utils_js_1.hasProp)(config.vitePluginSsr, 'prerender', 'object')) {
|
|
158
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(config.vitePluginSsr.prerender, 'disableAutoRun', 'boolean'));
|
|
159
|
+
if (config.vitePluginSsr.prerender.disableAutoRun) {
|
|
160
|
+
(0, context_js_2.temp_disablePrerenderAutoRun)();
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if ((0, utils_js_1.hasProp)(config.vitePluginSsr, 'disableAutoFullBuild')) {
|
|
165
|
+
if (config.vitePluginSsr.disableAutoFullBuild) {
|
|
166
|
+
(0, utils_js_1.assert)(config.vitePluginSsr.disableAutoFullBuild === 'prerender');
|
|
167
|
+
(0, context_js_2.temp_disablePrerenderAutoRun)();
|
|
168
|
+
}
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
(0, utils_js_1.assert)(false);
|
|
172
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.configDefinitionsBuiltInAll = void 0;
|
|
4
4
|
const utils_js_1 = require("../../../../utils.js");
|
|
5
5
|
const getConfigDefinedAt_js_1 = require("../../../../../../shared/page-configs/getConfigDefinedAt.js");
|
|
6
|
-
const
|
|
6
|
+
const configDefinitionsBuiltInAll = {
|
|
7
7
|
onRenderHtml: {
|
|
8
8
|
env: { server: true }
|
|
9
9
|
},
|
|
@@ -62,9 +62,6 @@ const configDefinitionsBuiltIn = {
|
|
|
62
62
|
clientHooks: {
|
|
63
63
|
env: { config: true }
|
|
64
64
|
},
|
|
65
|
-
prerender: {
|
|
66
|
-
env: { config: true }
|
|
67
|
-
},
|
|
68
65
|
hydrationCanBeAborted: {
|
|
69
66
|
env: { client: true }
|
|
70
67
|
},
|
|
@@ -133,30 +130,36 @@ const configDefinitionsBuiltIn = {
|
|
|
133
130
|
env: { client: true }
|
|
134
131
|
},
|
|
135
132
|
// TODO/eventually: define it as a global config.
|
|
136
|
-
middleware: { env: { server: true }, cumulative: true, eager: true }
|
|
137
|
-
};
|
|
138
|
-
exports.configDefinitionsBuiltIn = configDefinitionsBuiltIn;
|
|
139
|
-
const configDefinitionsBuiltInGlobal = {
|
|
133
|
+
middleware: { env: { server: true }, cumulative: true, eager: true },
|
|
140
134
|
onPrerenderStart: {
|
|
141
135
|
env: { server: true, production: true },
|
|
142
|
-
eager: true
|
|
136
|
+
eager: true,
|
|
137
|
+
global: true
|
|
143
138
|
},
|
|
144
139
|
onBeforeRoute: {
|
|
145
140
|
env: { server: true, client: 'if-client-routing' },
|
|
146
|
-
eager: true
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
},
|
|
151
|
-
disableAutoFullBuild: {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
141
|
+
eager: true,
|
|
142
|
+
global: true
|
|
143
|
+
},
|
|
144
|
+
prerender: { env: { config: true }, global: (value) => typeof value !== 'object', type: ['boolean', 'object'] },
|
|
145
|
+
vite: { env: { config: true }, global: true, cumulative: true, type: 'object' },
|
|
146
|
+
disableAutoFullBuild: {
|
|
147
|
+
env: { config: true },
|
|
148
|
+
global: true,
|
|
149
|
+
type: [
|
|
150
|
+
'boolean',
|
|
151
|
+
// Can be 'prerender'
|
|
152
|
+
'string'
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
includeAssetsImportedByServer: { env: { config: true }, global: true, type: 'boolean' },
|
|
156
|
+
baseAssets: { env: { config: true }, global: true, type: 'string' },
|
|
157
|
+
baseServer: { env: { config: true }, global: true, type: 'string' },
|
|
158
|
+
redirects: { env: { server: true }, global: true, type: 'string{}', cumulative: true },
|
|
159
|
+
trailingSlash: { env: { server: true }, global: true, type: 'boolean' },
|
|
160
|
+
disableUrlNormalization: { env: { server: true }, global: true, type: 'boolean' }
|
|
158
161
|
};
|
|
159
|
-
exports.
|
|
162
|
+
exports.configDefinitionsBuiltInAll = configDefinitionsBuiltInAll;
|
|
160
163
|
function getConfigEnv(configValueSources, configName) {
|
|
161
164
|
const configValueSource = getConfigValueSource(configValueSources, configName);
|
|
162
165
|
if (!configValueSource)
|
|
@@ -28,7 +28,10 @@ const resolvePointerImport_js_1 = require("./getVikeConfig/resolvePointerImport.
|
|
|
28
28
|
const getFilePath_js_1 = require("../../../shared/getFilePath.js");
|
|
29
29
|
const getConfigValueBuildTime_js_1 = require("../../../../../shared/page-configs/getConfigValueBuildTime.js");
|
|
30
30
|
const assertExtensions_js_1 = require("./assertExtensions.js");
|
|
31
|
-
const
|
|
31
|
+
const getPageConfigUserFriendly_js_1 = require("../../../../../shared/page-configs/getPageConfigUserFriendly.js");
|
|
32
|
+
const serializeConfigValues_js_1 = require("../../../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
33
|
+
const configDefinitionsBuiltIn = getConfigDefinitionsBuiltIn();
|
|
34
|
+
const configDefinitionsBuiltInGlobal = getConfigDefinitionsBuiltInGlobal();
|
|
32
35
|
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
33
36
|
let restartVite = false;
|
|
34
37
|
let wasConfigInvalid = null;
|
|
@@ -166,7 +169,7 @@ async function loadInterfaceFiles(userRootDir) {
|
|
|
166
169
|
// We don't have access to the custom config definitions defined by the user yet.
|
|
167
170
|
// - If `configDef` is `undefined` => we load the file +{configName}.js later.
|
|
168
171
|
// - We already need to load +meta.js here (to get the custom config definitions defined by the user)
|
|
169
|
-
const configDef = getConfigDefinitionOptional(
|
|
172
|
+
const configDef = getConfigDefinitionOptional(configDefinitionsBuiltIn, configName);
|
|
170
173
|
if (configDef && isLoadableAtBuildTime(configDef)) {
|
|
171
174
|
await (0, loadFileAtConfigTime_js_1.loadValueFile)(interfaceFile, configName, userRootDir);
|
|
172
175
|
}
|
|
@@ -245,7 +248,8 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
245
248
|
configDefinitions: {},
|
|
246
249
|
configValueSources: {}
|
|
247
250
|
},
|
|
248
|
-
vikeConfigGlobal:
|
|
251
|
+
vikeConfigGlobal: resolveVikeConfigGlobal({}, {}),
|
|
252
|
+
global: (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues: {} })
|
|
249
253
|
};
|
|
250
254
|
return dummyData;
|
|
251
255
|
}
|
|
@@ -254,8 +258,97 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
254
258
|
async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
255
259
|
const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir);
|
|
256
260
|
const importedFilesLoaded = {};
|
|
257
|
-
const
|
|
258
|
-
|
|
261
|
+
const [globalConfigs, pageConfigs] = await Promise.all([
|
|
262
|
+
getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded, vikeVitePluginOptions),
|
|
263
|
+
getPageConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded)
|
|
264
|
+
]);
|
|
265
|
+
return { pageConfigs, ...globalConfigs };
|
|
266
|
+
}
|
|
267
|
+
async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded, vikeVitePluginOptions) {
|
|
268
|
+
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesByLocationId);
|
|
269
|
+
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesByLocationId).filter(([locationId]) => {
|
|
270
|
+
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
271
|
+
}));
|
|
272
|
+
// Validate that global configs live in global interface files
|
|
273
|
+
{
|
|
274
|
+
const interfaceFilesGlobalPaths = [];
|
|
275
|
+
(0, utils_js_1.objectEntries)(interfaceFilesGlobal).forEach(([locationId, interfaceFiles]) => {
|
|
276
|
+
(0, utils_js_1.assert)((0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds));
|
|
277
|
+
interfaceFiles.forEach(({ filePath: { filePathAbsoluteUserRootDir } }) => {
|
|
278
|
+
if (filePathAbsoluteUserRootDir) {
|
|
279
|
+
interfaceFilesGlobalPaths.push(filePathAbsoluteUserRootDir);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
const globalPaths = Array.from(new Set(interfaceFilesGlobalPaths.map((p) => path_1.default.posix.dirname(p))));
|
|
284
|
+
(0, utils_js_1.objectEntries)(interfaceFilesByLocationId).forEach(([locationId, interfaceFiles]) => {
|
|
285
|
+
interfaceFiles.forEach((interfaceFile) => {
|
|
286
|
+
Object.keys(interfaceFile.fileExportsByConfigName).forEach((configName) => {
|
|
287
|
+
if (!(0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds) && isGlobalConfig(configName)) {
|
|
288
|
+
(0, utils_js_1.assertUsage)(false, [
|
|
289
|
+
`${interfaceFile.filePath.filePathToShowToUser} defines the config ${picocolors_1.default.cyan(configName)} which is global:`,
|
|
290
|
+
globalPaths.length
|
|
291
|
+
? `define ${picocolors_1.default.cyan(configName)} in ${(0, utils_js_1.joinEnglish)(globalPaths, 'or')} instead`
|
|
292
|
+
: `create a global config (e.g. /pages/+config.js) and define ${picocolors_1.default.cyan(configName)} there instead`
|
|
293
|
+
].join(' '));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
const pageConfigGlobalValues = {};
|
|
300
|
+
const pageConfigGlobal = {
|
|
301
|
+
configDefinitions: configDefinitionsBuiltInGlobal,
|
|
302
|
+
configValueSources: {}
|
|
303
|
+
};
|
|
304
|
+
await Promise.all((0, utils_js_1.objectEntries)(configDefinitionsBuiltInGlobal).map(async ([configName, configDef]) => {
|
|
305
|
+
const sources = await resolveConfigValueSources(configName, configDef, interfaceFilesGlobal, userRootDir, importedFilesLoaded);
|
|
306
|
+
const configValueSource = sources[0];
|
|
307
|
+
if (!configValueSource)
|
|
308
|
+
return;
|
|
309
|
+
pageConfigGlobal.configValueSources[configName] = sources;
|
|
310
|
+
// TODO/now
|
|
311
|
+
if (configName === 'onBeforeRoute' || configName === 'onPrerenderStart') {
|
|
312
|
+
(0, utils_js_1.assert)(!('value' in configValueSource));
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
(0, utils_js_1.assert)('value' in configValueSource);
|
|
316
|
+
// TODO/now
|
|
317
|
+
if (configName === 'prerender' && typeof configValueSource.value === 'boolean')
|
|
318
|
+
return;
|
|
319
|
+
pageConfigGlobalValues[configName] = configValueSource.value;
|
|
320
|
+
}
|
|
321
|
+
}));
|
|
322
|
+
const vikeConfigGlobal = resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues);
|
|
323
|
+
{
|
|
324
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeVitePluginOptions));
|
|
325
|
+
Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
|
|
326
|
+
var _a;
|
|
327
|
+
(0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltInGlobal), configName));
|
|
328
|
+
const configDef = configDefinitionsBuiltInGlobal[configName];
|
|
329
|
+
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
330
|
+
sources.push({
|
|
331
|
+
value,
|
|
332
|
+
configEnv: configDef.env,
|
|
333
|
+
definedAtFilePath: {
|
|
334
|
+
...(0, getFilePath_js_1.getFilePathResolved)({
|
|
335
|
+
userRootDir,
|
|
336
|
+
filePathAbsoluteUserRootDir: '/vite.config.js'
|
|
337
|
+
}),
|
|
338
|
+
fileExportPathToShowToUser: null
|
|
339
|
+
},
|
|
340
|
+
locationId: '/',
|
|
341
|
+
isOverriden: configDef.cumulative ? false : sources.length > 0,
|
|
342
|
+
valueIsImportedAtRuntime: false,
|
|
343
|
+
valueIsDefinedByPlusFile: false
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
const configValues = getConfigValues(pageConfigGlobal);
|
|
348
|
+
const global = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues });
|
|
349
|
+
return { pageConfigGlobal, vikeConfigGlobal, global };
|
|
350
|
+
}
|
|
351
|
+
async function getPageConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded) {
|
|
259
352
|
const pageConfigs = await Promise.all((0, utils_js_1.objectEntries)(interfaceFilesByLocationId)
|
|
260
353
|
.filter(([_pageId, interfaceFiles]) => isDefiningPage(interfaceFiles))
|
|
261
354
|
.map(async ([locationId]) => {
|
|
@@ -277,7 +370,7 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
|
277
370
|
if (isAlreadyLoaded)
|
|
278
371
|
return;
|
|
279
372
|
// Value files of built-in configs should have already been loaded at loadInterfaceFiles()
|
|
280
|
-
(0, utils_js_1.assert)(!(configName in
|
|
373
|
+
(0, utils_js_1.assert)(!(configName in configDefinitionsBuiltIn));
|
|
281
374
|
await (0, loadFileAtConfigTime_js_1.loadValueFile)(interfaceFile, configName, userRootDir);
|
|
282
375
|
}));
|
|
283
376
|
let configValueSources = {};
|
|
@@ -305,9 +398,37 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
|
305
398
|
return pageConfig;
|
|
306
399
|
}));
|
|
307
400
|
assertPageConfigs(pageConfigs);
|
|
308
|
-
return
|
|
401
|
+
return pageConfigs;
|
|
309
402
|
}
|
|
310
|
-
|
|
403
|
+
function getConfigValues(pageConfig) {
|
|
404
|
+
const configValues = {};
|
|
405
|
+
(0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, (configEnv) => !!configEnv.config, null).forEach((entry) => {
|
|
406
|
+
if (entry.configValueBase.type === 'computed') {
|
|
407
|
+
(0, utils_js_1.assert)('value' in entry); // Help TS
|
|
408
|
+
const { configValueBase, value, configName } = entry;
|
|
409
|
+
configValues[configName] = { ...configValueBase, value };
|
|
410
|
+
}
|
|
411
|
+
if (entry.configValueBase.type === 'standard') {
|
|
412
|
+
(0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
|
|
413
|
+
const { configValueBase, sourceRelevant, configName } = entry;
|
|
414
|
+
(0, utils_js_1.assert)('value' in sourceRelevant);
|
|
415
|
+
const { value } = sourceRelevant;
|
|
416
|
+
configValues[configName] = { ...configValueBase, value };
|
|
417
|
+
}
|
|
418
|
+
if (entry.configValueBase.type === 'cumulative') {
|
|
419
|
+
(0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
|
|
420
|
+
const { configValueBase, sourcesRelevant, configName } = entry;
|
|
421
|
+
const values = [];
|
|
422
|
+
sourcesRelevant.forEach((source) => {
|
|
423
|
+
(0, utils_js_1.assert)('value' in source);
|
|
424
|
+
values.push(source.value);
|
|
425
|
+
});
|
|
426
|
+
configValues[configName] = { ...configValueBase, value: values };
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
return configValues;
|
|
430
|
+
}
|
|
431
|
+
// TODO/now: refactor
|
|
311
432
|
// - Dedupe: most of the assertUsageGlobalConfigs() code below is a copy-paste of the assertUsage() logic inside getGlobalConfigs()
|
|
312
433
|
// - This assertUsage() message is slightly better: use this one for getGlobalConfigs()
|
|
313
434
|
// Global configs should be defined at global locations
|
|
@@ -324,7 +445,7 @@ function assertUsageGlobalConfigs(interfaceFilesRelevantList, configDefinitions,
|
|
|
324
445
|
if (isGlobalConfig(configName))
|
|
325
446
|
return;
|
|
326
447
|
const configDef = getConfigDefinition(configDefinitions, configName, interfaceFile.filePath.filePathToShowToUser);
|
|
327
|
-
if (configDef.global) {
|
|
448
|
+
if (configDef.global === true) {
|
|
328
449
|
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesByLocationId);
|
|
329
450
|
if (!(0, filesystemRouting_js_1.isGlobalLocation)(interfaceFile.locationId, locationIds)) {
|
|
330
451
|
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesByLocationId).filter(([locationId]) => {
|
|
@@ -383,63 +504,6 @@ function getInterfaceFilesRelevant(interfaceFilesByLocationId, locationIdPage) {
|
|
|
383
504
|
.sort(([locationId1], [locationId2]) => (0, filesystemRouting_js_1.sortAfterInheritanceOrder)(locationId1, locationId2, locationIdPage)));
|
|
384
505
|
return interfaceFilesRelevant;
|
|
385
506
|
}
|
|
386
|
-
async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded) {
|
|
387
|
-
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesByLocationId);
|
|
388
|
-
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesByLocationId).filter(([locationId]) => {
|
|
389
|
-
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
390
|
-
}));
|
|
391
|
-
// Validate that global configs live in global interface files
|
|
392
|
-
{
|
|
393
|
-
const interfaceFilesGlobalPaths = [];
|
|
394
|
-
(0, utils_js_1.objectEntries)(interfaceFilesGlobal).forEach(([locationId, interfaceFiles]) => {
|
|
395
|
-
(0, utils_js_1.assert)((0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds));
|
|
396
|
-
interfaceFiles.forEach(({ filePath: { filePathAbsoluteUserRootDir } }) => {
|
|
397
|
-
if (filePathAbsoluteUserRootDir) {
|
|
398
|
-
interfaceFilesGlobalPaths.push(filePathAbsoluteUserRootDir);
|
|
399
|
-
}
|
|
400
|
-
});
|
|
401
|
-
});
|
|
402
|
-
const globalPaths = Array.from(new Set(interfaceFilesGlobalPaths.map((p) => path_1.default.posix.dirname(p))));
|
|
403
|
-
(0, utils_js_1.objectEntries)(interfaceFilesByLocationId).forEach(([locationId, interfaceFiles]) => {
|
|
404
|
-
interfaceFiles.forEach((interfaceFile) => {
|
|
405
|
-
Object.keys(interfaceFile.fileExportsByConfigName).forEach((configName) => {
|
|
406
|
-
if (!(0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds) && isGlobalConfig(configName)) {
|
|
407
|
-
(0, utils_js_1.assertUsage)(false, [
|
|
408
|
-
`${interfaceFile.filePath.filePathToShowToUser} defines the config ${picocolors_1.default.cyan(configName)} which is global:`,
|
|
409
|
-
globalPaths.length
|
|
410
|
-
? `define ${picocolors_1.default.cyan(configName)} in ${(0, utils_js_1.joinEnglish)(globalPaths, 'or')} instead`
|
|
411
|
-
: `create a global config (e.g. /pages/+config.js) and define ${picocolors_1.default.cyan(configName)} there instead`
|
|
412
|
-
].join(' '));
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
const pageConfigGlobalValues = {};
|
|
419
|
-
const pageConfigGlobal = {
|
|
420
|
-
configDefinitions: configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInGlobal,
|
|
421
|
-
configValueSources: {}
|
|
422
|
-
};
|
|
423
|
-
await Promise.all((0, utils_js_1.objectEntries)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInGlobal).map(async ([configName, configDef]) => {
|
|
424
|
-
const sources = await resolveConfigValueSources(configName, configDef, interfaceFilesGlobal, userRootDir, importedFilesLoaded);
|
|
425
|
-
const configValueSource = sources[0];
|
|
426
|
-
if (!configValueSource)
|
|
427
|
-
return;
|
|
428
|
-
if (configName === 'onBeforeRoute' || configName === 'onPrerenderStart') {
|
|
429
|
-
(0, utils_js_1.assert)(!('value' in configValueSource));
|
|
430
|
-
pageConfigGlobal.configValueSources[configName] = [configValueSource];
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
(0, utils_js_1.assert)('value' in configValueSource);
|
|
434
|
-
if (configName === 'prerender' && typeof configValueSource.value === 'boolean')
|
|
435
|
-
return;
|
|
436
|
-
const { filePathToShowToUser } = configValueSource.definedAtFilePath;
|
|
437
|
-
(0, utils_js_1.assertWarning)(false, `Being able to define config ${picocolors_1.default.cyan(configName)} in ${filePathToShowToUser} is experimental and will likely be removed. Define the config ${picocolors_1.default.cyan(configName)} in Vike's Vite plugin options instead.`, { onlyOnce: true });
|
|
438
|
-
pageConfigGlobalValues[configName] = configValueSource.value;
|
|
439
|
-
}
|
|
440
|
-
}));
|
|
441
|
-
return { pageConfigGlobal, pageConfigGlobalValues };
|
|
442
|
-
}
|
|
443
507
|
async function resolveConfigValueSources(configName, configDef, interfaceFilesRelevant, userRootDir, importedFilesLoaded) {
|
|
444
508
|
const sourcesInfo = [];
|
|
445
509
|
// interfaceFilesRelevant is sorted by sortAfterInheritanceOrder()
|
|
@@ -653,7 +717,7 @@ function isDefiningPageConfig(configName) {
|
|
|
653
717
|
return ['Page', 'route'].includes(configName);
|
|
654
718
|
}
|
|
655
719
|
function getConfigDefinitions(interfaceFilesRelevant) {
|
|
656
|
-
const configDefinitionsMerged = { ...
|
|
720
|
+
const configDefinitionsMerged = { ...configDefinitionsBuiltIn };
|
|
657
721
|
Object.entries(interfaceFilesRelevant)
|
|
658
722
|
.reverse()
|
|
659
723
|
.forEach(([_locationId, interfaceFiles]) => {
|
|
@@ -982,13 +1046,20 @@ function isLoadableAtBuildTime(configDef) {
|
|
|
982
1046
|
return !!configDef.env.config && !configDef._valueIsFilePath;
|
|
983
1047
|
}
|
|
984
1048
|
function isGlobalConfig(configName) {
|
|
1049
|
+
// TODO/now
|
|
985
1050
|
if (configName === 'prerender')
|
|
986
1051
|
return false;
|
|
987
1052
|
const configNamesGlobal = getConfigNamesGlobal();
|
|
988
1053
|
return (0, utils_js_1.includes)(configNamesGlobal, configName);
|
|
989
1054
|
}
|
|
990
1055
|
function getConfigNamesGlobal() {
|
|
991
|
-
return Object.keys(
|
|
1056
|
+
return Object.keys(configDefinitionsBuiltInGlobal);
|
|
1057
|
+
}
|
|
1058
|
+
function getConfigDefinitionsBuiltInGlobal() {
|
|
1059
|
+
return (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInAll).filter(([_configName, configDef]) => configDef.global !== undefined));
|
|
1060
|
+
}
|
|
1061
|
+
function getConfigDefinitionsBuiltIn() {
|
|
1062
|
+
return (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInAll).filter(([_configName, configDef]) => configDef.global !== true));
|
|
992
1063
|
}
|
|
993
1064
|
function assertConfigExists(configName, configNamesRelevant, filePathToShowToUser) {
|
|
994
1065
|
const configNames = [...configNamesRelevant, ...getConfigNamesGlobal()];
|
|
@@ -1016,3 +1087,35 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
|
|
|
1016
1087
|
function getConfigValueInterfaceFile(interfaceFile, configName) {
|
|
1017
1088
|
return interfaceFile.fileExportsByConfigName[configName]?.configValue;
|
|
1018
1089
|
}
|
|
1090
|
+
// TODO/now: refactor code below
|
|
1091
|
+
function resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues) {
|
|
1092
|
+
const configs = [vikeVitePluginOptions, pageConfigGlobalValues];
|
|
1093
|
+
const vikeConfigGlobal = {
|
|
1094
|
+
disableAutoFullBuild: pickFirst(configs.map((c) => c.disableAutoFullBuild)) ?? null,
|
|
1095
|
+
prerender: resolvePrerenderOptions(configs),
|
|
1096
|
+
includeAssetsImportedByServer: pickFirst(configs.map((c) => c.includeAssetsImportedByServer)) ?? true,
|
|
1097
|
+
baseServer: pickFirst(configs.map((c) => c.baseServer)) ?? null,
|
|
1098
|
+
baseAssets: pickFirst(configs.map((c) => c.baseAssets)) ?? null,
|
|
1099
|
+
disableUrlNormalization: pickFirst(configs.map((c) => c.disableUrlNormalization)) ?? false,
|
|
1100
|
+
trailingSlash: pickFirst(configs.map((c) => c.trailingSlash)) ?? false
|
|
1101
|
+
};
|
|
1102
|
+
return vikeConfigGlobal;
|
|
1103
|
+
}
|
|
1104
|
+
function resolvePrerenderOptions(configs) {
|
|
1105
|
+
if (!configs.some((c) => c.prerender)) {
|
|
1106
|
+
return false;
|
|
1107
|
+
}
|
|
1108
|
+
const configsPrerender = configs.map((c) => c.prerender).filter(isObject2);
|
|
1109
|
+
return {
|
|
1110
|
+
partial: pickFirst(configsPrerender.map((c) => c.partial)) ?? false,
|
|
1111
|
+
noExtraDir: pickFirst(configsPrerender.map((c) => c.noExtraDir)) ?? false,
|
|
1112
|
+
parallel: pickFirst(configsPrerender.map((c) => c.parallel)) ?? true,
|
|
1113
|
+
disableAutoRun: pickFirst(configsPrerender.map((c) => c.disableAutoRun)) ?? false
|
|
1114
|
+
};
|
|
1115
|
+
}
|
|
1116
|
+
function isObject2(p) {
|
|
1117
|
+
return typeof p === 'object';
|
|
1118
|
+
}
|
|
1119
|
+
function pickFirst(arr) {
|
|
1120
|
+
return arr.filter((v) => v !== undefined)[0];
|
|
1121
|
+
}
|
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js
CHANGED
|
@@ -33,7 +33,7 @@ function getLoadConfigValuesAll(pageConfig, isForClientSide, pageId, includeAsse
|
|
|
33
33
|
const importStatements = [];
|
|
34
34
|
const isClientRouting = (0, getConfigValueBuildTime_js_1.getConfigValueBuildTime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
35
35
|
lines.push('export const configValuesSerialized = {');
|
|
36
|
-
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }),
|
|
36
|
+
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), '', false));
|
|
37
37
|
lines.push('};');
|
|
38
38
|
if (!(0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && includeAssetsImportedByServer && isForClientSide && !isDev) {
|
|
39
39
|
importStatements.push(`import '${(0, extractAssetsQuery_js_1.extractAssetsAddQuery)((0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageId, false))}'`);
|
|
@@ -7,7 +7,8 @@ const getVikeConfig_js_1 = require("./getVikeConfig.js");
|
|
|
7
7
|
const isRuntimeEnvMatch_js_1 = require("./isRuntimeEnvMatch.js");
|
|
8
8
|
const serializeConfigValues_js_1 = require("../../../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
9
9
|
async function getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, config) {
|
|
10
|
-
const
|
|
10
|
+
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config, { doNotRestartViteOnError: true });
|
|
11
|
+
const { pageConfigs, pageConfigGlobal } = vikeConfig;
|
|
11
12
|
return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting);
|
|
12
13
|
}
|
|
13
14
|
function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting) {
|
|
@@ -27,14 +28,15 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
|
|
|
27
28
|
const lines = [];
|
|
28
29
|
pageConfigs.forEach((pageConfig) => {
|
|
29
30
|
const { pageId, routeFilesystem, isErrorPage } = pageConfig;
|
|
30
|
-
const virtualFileIdPageConfigValuesAll = (0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageId, isForClientSide);
|
|
31
31
|
lines.push(` {`);
|
|
32
32
|
lines.push(` pageId: ${JSON.stringify(pageId)},`);
|
|
33
33
|
lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
|
|
34
34
|
lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
|
|
35
|
-
|
|
35
|
+
const virtualFileId = JSON.stringify((0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageId, isForClientSide));
|
|
36
|
+
const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`;
|
|
37
|
+
lines.push(` loadConfigValuesAll: ${load},`);
|
|
36
38
|
lines.push(` configValuesSerialized: {`);
|
|
37
|
-
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }),
|
|
39
|
+
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true));
|
|
38
40
|
lines.push(` },`);
|
|
39
41
|
lines.push(` },`);
|
|
40
42
|
});
|
|
@@ -44,7 +46,7 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
|
|
|
44
46
|
function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements) {
|
|
45
47
|
const lines = [];
|
|
46
48
|
lines.push(` configValuesSerialized: {`);
|
|
47
|
-
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfigGlobal, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }),
|
|
49
|
+
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfigGlobal, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', null));
|
|
48
50
|
lines.push(` },`);
|
|
49
51
|
const code = lines.join('\n');
|
|
50
52
|
return code;
|
|
@@ -35,7 +35,7 @@ function setGlobalContext() {
|
|
|
35
35
|
order: 'post',
|
|
36
36
|
async handler(config) {
|
|
37
37
|
const { outDirRoot } = (0, utils_js_1.getOutDirs)(config);
|
|
38
|
-
(0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for
|
|
38
|
+
(0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for `importServerProductionEntry({ outDir })` of @brillout/vite-plugin-server-entry
|
|
39
39
|
(0, globalContext_js_1.setGlobalContext_viteConfig)(config, outDirRoot);
|
|
40
40
|
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
|
|
41
41
|
(0, globalContext_js_1.setGlobalContext_vikeConfig)(vikeConfig);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.workaroundVite6HmrRegression = workaroundVite6HmrRegression;
|
|
4
4
|
// https://vite.dev/guide/migration (will be 404 after vite@7 release) > search for `hmrReload()`
|
|
5
5
|
// https://v6.vite.dev/guide/migration (will exist after vite@7 release) > search for `hmrReload()`
|
|
6
6
|
// Workaround seems to work for docs page /banner (which is HTML-only)
|
|
7
7
|
// But doesn't seem to work for /examples/render-modes/ (see https://github.com/vikejs/vike/pull/2069 commit `renable HMR test for HTML-only`)
|
|
8
|
-
function
|
|
8
|
+
function workaroundVite6HmrRegression() {
|
|
9
9
|
return {
|
|
10
|
-
name: 'vike:
|
|
10
|
+
name: 'vike:workaroundVite6HmrRegression',
|
|
11
11
|
enforce: 'post',
|
|
12
12
|
hotUpdate: {
|
|
13
13
|
order: 'post',
|
|
@@ -18,13 +18,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
18
18
|
}) : function(o, v) {
|
|
19
19
|
o["default"] = v;
|
|
20
20
|
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || function (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
39
|
exports.getHttpRequestAsyncStore = getHttpRequestAsyncStore;
|
|
30
40
|
exports.installHttpRequestAsyncStore = installHttpRequestAsyncStore;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPrerenderAutoRunEnabled = isPrerenderAutoRunEnabled;
|
|
4
|
+
exports.temp_disablePrerenderAutoRun = temp_disablePrerenderAutoRun;
|
|
5
|
+
exports.isPrerendering = isPrerendering;
|
|
6
|
+
exports.setContextIsPrerendering = setContextIsPrerendering;
|
|
7
|
+
const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
|
|
8
|
+
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('prerender/context.ts', {});
|
|
9
|
+
function isPrerenderAutoRunEnabled(vikeConfigGlobal) {
|
|
10
|
+
return (vikeConfigGlobal.prerender &&
|
|
11
|
+
!vikeConfigGlobal.prerender.disableAutoRun &&
|
|
12
|
+
!globalObject.isDisabled &&
|
|
13
|
+
vikeConfigGlobal.disableAutoFullBuild !== 'prerender');
|
|
14
|
+
}
|
|
15
|
+
// TODO/v1-release: remove
|
|
16
|
+
function temp_disablePrerenderAutoRun() {
|
|
17
|
+
globalObject.isDisabled = true;
|
|
18
|
+
}
|
|
19
|
+
function isPrerendering() {
|
|
20
|
+
return !!globalObject.isPrerendering;
|
|
21
|
+
}
|
|
22
|
+
function setContextIsPrerendering() {
|
|
23
|
+
globalObject.isPrerendering = true;
|
|
24
|
+
}
|