vike 0.4.217-commit-99ea561 → 0.4.218-commit-01a099d
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 +9 -8
- package/dist/cjs/node/api/build.js +20 -11
- package/dist/cjs/node/api/index.js +17 -7
- package/dist/cjs/node/api/prepareViteApiCall.js +109 -26
- package/dist/cjs/node/api/utils.js +2 -0
- package/dist/cjs/node/cli/entry.js +17 -7
- package/dist/cjs/node/plugin/index.js +6 -5
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +2 -3
- package/dist/cjs/node/plugin/plugins/baseUrls.js +20 -18
- 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 +6 -6
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +1 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +7 -9
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +182 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -1
- 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/isPrerenderEnabled.js +8 -0
- package/dist/cjs/node/prerender/runPrerender.js +21 -12
- package/dist/cjs/node/runtime/globalContext.js +44 -21
- 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/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 +3 -3
- package/dist/cjs/node/runtime-dev/index.js +17 -7
- package/dist/cjs/node/shared/resolveBase.js +2 -2
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +2 -3
- 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/serialize/serializeConfigValues.js +79 -54
- 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/esm/__internal/index.d.ts +3 -5
- package/dist/esm/__internal/index.js +4 -5
- package/dist/esm/client/client-routing-runtime/createPageContext.js +7 -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/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/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 +8 -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/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.js +3 -4
- package/dist/esm/node/api/prepareViteApiCall.d.ts +9 -3
- package/dist/esm/node/api/prepareViteApiCall.js +91 -21
- package/dist/esm/node/api/utils.d.ts +2 -0
- package/dist/esm/node/api/utils.js +2 -0
- package/dist/esm/node/cli/parseCli.d.ts +1 -1
- package/dist/esm/node/plugin/index.d.ts +1 -1
- package/dist/esm/node/plugin/index.js +6 -5
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +2 -3
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -2
- package/dist/esm/node/plugin/plugins/baseUrls.js +21 -19
- 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 +1 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +1 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +8 -10
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +99 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +182 -7
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -1
- 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/isPrerenderEnabled.d.ts +3 -0
- package/dist/esm/node/prerender/isPrerenderEnabled.js +6 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +1 -2
- package/dist/esm/node/prerender/runPrerender.js +3 -4
- package/dist/esm/node/runtime/globalContext.d.ts +4 -4
- package/dist/esm/node/runtime/globalContext.js +44 -21
- 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/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 +5 -5
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
- package/dist/esm/node/shared/resolveBase.js +2 -2
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +2 -3
- 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.d.ts +1 -1
- package/dist/esm/shared/page-configs/PageConfig.d.ts +7 -3
- package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +23 -12
- package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +28 -4
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +79 -54
- 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/projectInfo.d.ts +1 -1
- package/package.json +2 -21
- package/__internal/loadImportBuild.js +0 -3
- package/__internal/setup.js +0 -3
- package/dist/cjs/node/plugin/plugins/commonConfig/pluginName.js +0 -4
- 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/cjs/node/runtime/page-files/setup.js +0 -5
- 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/commonConfig/pluginName.d.ts +0 -1
- package/dist/esm/node/plugin/plugins/commonConfig/pluginName.js +0 -1
- 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/esm/node/runtime/page-files/setup.d.ts +0 -1
- package/dist/esm/node/runtime/page-files/setup.js +0 -3
- 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/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +1 -1
- /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
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js
CHANGED
|
@@ -73,10 +73,8 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
73
73
|
'git',
|
|
74
74
|
preserveUTF8,
|
|
75
75
|
'ls-files',
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
// - Performance gain seems negligible: https://github.com/vikejs/vike/pull/1688#issuecomment-2166206648
|
|
79
|
-
// ...scriptFileExtensionList.map((ext) => `"**/+*.${ext}"`),
|
|
76
|
+
// Performance gain seems negligible: https://github.com/vikejs/vike/pull/1688#issuecomment-2166206648
|
|
77
|
+
...utils_js_1.scriptFileExtensionList.map((ext) => `"**/+*.${ext}"`),
|
|
80
78
|
// Performance gain is non-negligible.
|
|
81
79
|
// - https://github.com/vikejs/vike/pull/1688#issuecomment-2166206648
|
|
82
80
|
// - When node_modules/ is untracked the performance gain could be significant?
|
|
@@ -105,18 +103,18 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
105
103
|
}
|
|
106
104
|
const files = [];
|
|
107
105
|
for (const filePath of filesAll) {
|
|
108
|
-
//
|
|
109
|
-
if (
|
|
106
|
+
// + file?
|
|
107
|
+
if (!path_1.default.posix.basename(filePath).startsWith('+'))
|
|
110
108
|
continue;
|
|
111
109
|
// We have to repeat the same exclusion logic here because the option --exclude of `$ git ls-files` only applies to untracked files. (We use --exclude only to speed up the `$ git ls-files` command.)
|
|
112
110
|
if (!ignoreAsFilterFn(filePath))
|
|
113
111
|
continue;
|
|
114
|
-
// + file?
|
|
115
|
-
if (!path_1.default.posix.basename(filePath).startsWith('+'))
|
|
116
|
-
continue;
|
|
117
112
|
// JavaScript file?
|
|
118
113
|
if (!(0, utils_js_1.isScriptFile)(filePath))
|
|
119
114
|
continue;
|
|
115
|
+
// Deleted?
|
|
116
|
+
if (filesDeleted.includes(filePath))
|
|
117
|
+
continue;
|
|
120
118
|
files.push(filePath);
|
|
121
119
|
}
|
|
122
120
|
return files;
|
|
@@ -28,7 +28,8 @@ 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");
|
|
32
33
|
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
33
34
|
let restartVite = false;
|
|
34
35
|
let wasConfigInvalid = null;
|
|
@@ -245,7 +246,10 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
245
246
|
configDefinitions: {},
|
|
246
247
|
configValueSources: {}
|
|
247
248
|
},
|
|
248
|
-
vikeConfigGlobal:
|
|
249
|
+
vikeConfigGlobal: resolveVikeConfigGlobal({}, {}),
|
|
250
|
+
vikeConfigNew: {
|
|
251
|
+
global: (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues: {} })
|
|
252
|
+
}
|
|
249
253
|
};
|
|
250
254
|
return dummyData;
|
|
251
255
|
}
|
|
@@ -254,8 +258,7 @@ 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 { pageConfigGlobal,
|
|
258
|
-
const vikeConfigGlobal = (0, resolveVikeConfigGlobal_js_1.resolveVikeConfigGlobal)(vikeVitePluginOptions, pageConfigGlobalValues);
|
|
261
|
+
const { pageConfigGlobal, vikeConfigGlobal } = await getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded, vikeVitePluginOptions);
|
|
259
262
|
const pageConfigs = await Promise.all((0, utils_js_1.objectEntries)(interfaceFilesByLocationId)
|
|
260
263
|
.filter(([_pageId, interfaceFiles]) => isDefiningPage(interfaceFiles))
|
|
261
264
|
.map(async ([locationId]) => {
|
|
@@ -305,7 +308,37 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
|
305
308
|
return pageConfig;
|
|
306
309
|
}));
|
|
307
310
|
assertPageConfigs(pageConfigs);
|
|
308
|
-
|
|
311
|
+
const configValues = getConfigValues(pageConfigGlobal);
|
|
312
|
+
const global = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues });
|
|
313
|
+
return { pageConfigs, pageConfigGlobal, vikeConfigGlobal, vikeConfigNew: { global } };
|
|
314
|
+
}
|
|
315
|
+
function getConfigValues(pageConfig) {
|
|
316
|
+
const configValues = {};
|
|
317
|
+
(0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, (configEnv) => !!configEnv.config).forEach((entry) => {
|
|
318
|
+
if (entry.configValueBase.type === 'computed') {
|
|
319
|
+
(0, utils_js_1.assert)('value' in entry); // Help TS
|
|
320
|
+
const { configValueBase, value, configName } = entry;
|
|
321
|
+
configValues[configName] = { ...configValueBase, value };
|
|
322
|
+
}
|
|
323
|
+
if (entry.configValueBase.type === 'standard') {
|
|
324
|
+
(0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
|
|
325
|
+
const { configValueBase, sourceRelevant, configName } = entry;
|
|
326
|
+
(0, utils_js_1.assert)('value' in sourceRelevant);
|
|
327
|
+
const { value } = sourceRelevant;
|
|
328
|
+
configValues[configName] = { ...configValueBase, value };
|
|
329
|
+
}
|
|
330
|
+
if (entry.configValueBase.type === 'cumulative') {
|
|
331
|
+
(0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
|
|
332
|
+
const { configValueBase, sourcesRelevant, configName } = entry;
|
|
333
|
+
const values = [];
|
|
334
|
+
sourcesRelevant.forEach((source) => {
|
|
335
|
+
(0, utils_js_1.assert)('value' in source);
|
|
336
|
+
values.push(source.value);
|
|
337
|
+
});
|
|
338
|
+
configValues[configName] = { ...configValueBase, value: values };
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
return configValues;
|
|
309
342
|
}
|
|
310
343
|
// TODO/soon: refactor
|
|
311
344
|
// - Dedupe: most of the assertUsageGlobalConfigs() code below is a copy-paste of the assertUsage() logic inside getGlobalConfigs()
|
|
@@ -383,7 +416,7 @@ function getInterfaceFilesRelevant(interfaceFilesByLocationId, locationIdPage) {
|
|
|
383
416
|
.sort(([locationId1], [locationId2]) => (0, filesystemRouting_js_1.sortAfterInheritanceOrder)(locationId1, locationId2, locationIdPage)));
|
|
384
417
|
return interfaceFilesRelevant;
|
|
385
418
|
}
|
|
386
|
-
async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded) {
|
|
419
|
+
async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded, vikeVitePluginOptions) {
|
|
387
420
|
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesByLocationId);
|
|
388
421
|
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesByLocationId).filter(([locationId]) => {
|
|
389
422
|
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
@@ -438,7 +471,31 @@ async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importe
|
|
|
438
471
|
pageConfigGlobalValues[configName] = configValueSource.value;
|
|
439
472
|
}
|
|
440
473
|
}));
|
|
441
|
-
|
|
474
|
+
const vikeConfigGlobal = resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues);
|
|
475
|
+
{
|
|
476
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeVitePluginOptions));
|
|
477
|
+
Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
|
|
478
|
+
if (pageConfigGlobal.configValueSources[configName])
|
|
479
|
+
return;
|
|
480
|
+
pageConfigGlobal.configValueSources[configName] = [];
|
|
481
|
+
pageConfigGlobal.configValueSources[configName].push({
|
|
482
|
+
value,
|
|
483
|
+
configEnv: { config: true },
|
|
484
|
+
definedAtFilePath: {
|
|
485
|
+
...(0, getFilePath_js_1.getFilePathResolved)({
|
|
486
|
+
userRootDir,
|
|
487
|
+
filePathAbsoluteUserRootDir: '/vite.config.js'
|
|
488
|
+
}),
|
|
489
|
+
fileExportPathToShowToUser: null
|
|
490
|
+
},
|
|
491
|
+
locationId: '/',
|
|
492
|
+
isOverriden: false,
|
|
493
|
+
valueIsImportedAtRuntime: false,
|
|
494
|
+
valueIsDefinedByPlusFile: false
|
|
495
|
+
});
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
return { pageConfigGlobal, pageConfigGlobalValues, vikeConfigGlobal };
|
|
442
499
|
}
|
|
443
500
|
async function resolveConfigValueSources(configName, configDef, interfaceFilesRelevant, userRootDir, importedFilesLoaded) {
|
|
444
501
|
const sourcesInfo = [];
|
|
@@ -1016,3 +1073,121 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
|
|
|
1016
1073
|
function getConfigValueInterfaceFile(interfaceFile, configName) {
|
|
1017
1074
|
return interfaceFile.fileExportsByConfigName[configName]?.configValue;
|
|
1018
1075
|
}
|
|
1076
|
+
// TODO: refactor code below
|
|
1077
|
+
function resolveVikeConfigGlobal(vikeVitePluginOptions, pageConfigGlobalValues) {
|
|
1078
|
+
// TODO/v1-release: remove
|
|
1079
|
+
assertVikeConfigGlobal(vikeVitePluginOptions, ({ prop, errMsg }) => `vite.config.js > vike option ${prop} ${errMsg}`);
|
|
1080
|
+
const configs = [vikeVitePluginOptions];
|
|
1081
|
+
assertVikeConfigGlobal(pageConfigGlobalValues, ({ prop, errMsg }) => {
|
|
1082
|
+
// Can we add the config file path ?
|
|
1083
|
+
return `config ${picocolors_1.default.cyan(prop)} ${errMsg}`;
|
|
1084
|
+
});
|
|
1085
|
+
configs.push(pageConfigGlobalValues);
|
|
1086
|
+
const vikeConfigGlobal = {
|
|
1087
|
+
disableAutoFullBuild: pickFirst(configs.map((c) => c.disableAutoFullBuild)) ?? null,
|
|
1088
|
+
prerender: resolvePrerenderOptions(configs),
|
|
1089
|
+
includeAssetsImportedByServer: pickFirst(configs.map((c) => c.includeAssetsImportedByServer)) ?? true,
|
|
1090
|
+
baseServer: pickFirst(configs.map((c) => c.baseServer)) ?? null,
|
|
1091
|
+
baseAssets: pickFirst(configs.map((c) => c.baseAssets)) ?? null,
|
|
1092
|
+
redirects: merge(configs.map((c) => c.redirects)) ?? {},
|
|
1093
|
+
disableUrlNormalization: pickFirst(configs.map((c) => c.disableUrlNormalization)) ?? false,
|
|
1094
|
+
trailingSlash: pickFirst(configs.map((c) => c.trailingSlash)) ?? false
|
|
1095
|
+
};
|
|
1096
|
+
return vikeConfigGlobal;
|
|
1097
|
+
}
|
|
1098
|
+
function resolvePrerenderOptions(configs) {
|
|
1099
|
+
if (!configs.some((c) => c.prerender)) {
|
|
1100
|
+
return false;
|
|
1101
|
+
}
|
|
1102
|
+
const configsPrerender = configs.map((c) => c.prerender).filter(isObject2);
|
|
1103
|
+
return {
|
|
1104
|
+
partial: pickFirst(configsPrerender.map((c) => c.partial)) ?? false,
|
|
1105
|
+
noExtraDir: pickFirst(configsPrerender.map((c) => c.noExtraDir)) ?? false,
|
|
1106
|
+
parallel: pickFirst(configsPrerender.map((c) => c.parallel)) ?? true,
|
|
1107
|
+
disableAutoRun: pickFirst(configsPrerender.map((c) => c.disableAutoRun)) ?? false
|
|
1108
|
+
};
|
|
1109
|
+
}
|
|
1110
|
+
function isObject2(p) {
|
|
1111
|
+
return typeof p === 'object';
|
|
1112
|
+
}
|
|
1113
|
+
function merge(objs) {
|
|
1114
|
+
const obj = {};
|
|
1115
|
+
objs.forEach((e) => {
|
|
1116
|
+
Object.assign(obj, e);
|
|
1117
|
+
});
|
|
1118
|
+
return obj;
|
|
1119
|
+
}
|
|
1120
|
+
function pickFirst(arr) {
|
|
1121
|
+
return arr.filter((v) => v !== undefined)[0];
|
|
1122
|
+
}
|
|
1123
|
+
function assertVikeConfigGlobal(vikeConfigGlobal, wrongUsageMsg) {
|
|
1124
|
+
const wrongUsageError = check(vikeConfigGlobal);
|
|
1125
|
+
if (wrongUsageError) {
|
|
1126
|
+
(0, utils_js_1.assertUsage)(false, wrongUsageMsg(wrongUsageError));
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
function check(vikeConfigGlobal) {
|
|
1130
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeConfigGlobal));
|
|
1131
|
+
{
|
|
1132
|
+
const prop = 'disableUrlNormalization';
|
|
1133
|
+
if (!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'boolean') && !(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'undefined'))
|
|
1134
|
+
return { prop, errMsg: 'should be a boolean' };
|
|
1135
|
+
}
|
|
1136
|
+
{
|
|
1137
|
+
const prop = 'trailingSlash';
|
|
1138
|
+
if (!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'boolean') && !(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'undefined'))
|
|
1139
|
+
return { prop, errMsg: 'should be a boolean' };
|
|
1140
|
+
}
|
|
1141
|
+
{
|
|
1142
|
+
const prop = 'redirects';
|
|
1143
|
+
const { redirects } = vikeConfigGlobal;
|
|
1144
|
+
if (!(redirects === undefined ||
|
|
1145
|
+
((0, utils_js_1.isObject)(redirects) && Object.values(redirects).every((v) => typeof v === 'string'))))
|
|
1146
|
+
return { prop, errMsg: 'should be an object of strings' };
|
|
1147
|
+
}
|
|
1148
|
+
{
|
|
1149
|
+
const prop = 'disableAutoFullBuild';
|
|
1150
|
+
if (!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'boolean') &&
|
|
1151
|
+
!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'undefined') &&
|
|
1152
|
+
!(vikeConfigGlobal[prop] === 'prerender'))
|
|
1153
|
+
return { prop, errMsg: "should be a boolean or 'prerender'" };
|
|
1154
|
+
}
|
|
1155
|
+
{
|
|
1156
|
+
const prop = 'includeAssetsImportedByServer';
|
|
1157
|
+
if (!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'boolean') && !(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'undefined'))
|
|
1158
|
+
return { prop, errMsg: 'should be a boolean' };
|
|
1159
|
+
}
|
|
1160
|
+
{
|
|
1161
|
+
const prop = 'prerender';
|
|
1162
|
+
if (!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'object') &&
|
|
1163
|
+
!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'boolean') &&
|
|
1164
|
+
!(0, utils_js_1.hasProp)(vikeConfigGlobal, prop, 'undefined'))
|
|
1165
|
+
return { prop, errMsg: 'should be an object or a boolean' };
|
|
1166
|
+
}
|
|
1167
|
+
const configVikePrerender = vikeConfigGlobal.prerender;
|
|
1168
|
+
if (typeof configVikePrerender === 'object') {
|
|
1169
|
+
{
|
|
1170
|
+
const p = 'partial';
|
|
1171
|
+
if (!(0, utils_js_1.hasProp)(configVikePrerender, p, 'boolean') && !(0, utils_js_1.hasProp)(configVikePrerender, p, 'undefined'))
|
|
1172
|
+
return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
|
|
1173
|
+
}
|
|
1174
|
+
{
|
|
1175
|
+
const p = 'noExtraDir';
|
|
1176
|
+
if (!(0, utils_js_1.hasProp)(configVikePrerender, p, 'boolean') && !(0, utils_js_1.hasProp)(configVikePrerender, p, 'undefined'))
|
|
1177
|
+
return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
|
|
1178
|
+
}
|
|
1179
|
+
{
|
|
1180
|
+
const p = 'disableAutoRun';
|
|
1181
|
+
if (!(0, utils_js_1.hasProp)(configVikePrerender, p, 'boolean') && !(0, utils_js_1.hasProp)(configVikePrerender, p, 'undefined'))
|
|
1182
|
+
return { prop: `prerender.${p}`, errMsg: 'should be a boolean' };
|
|
1183
|
+
}
|
|
1184
|
+
{
|
|
1185
|
+
const p = 'parallel';
|
|
1186
|
+
if (!(0, utils_js_1.hasProp)(configVikePrerender, p, 'boolean') &&
|
|
1187
|
+
!(0, utils_js_1.hasProp)(configVikePrerender, p, 'number') &&
|
|
1188
|
+
!(0, utils_js_1.hasProp)(configVikePrerender, p, 'undefined'))
|
|
1189
|
+
return { prop: `prerender.${p}`, errMsg: 'should be a boolean or a number' };
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
return null;
|
|
1193
|
+
}
|
|
@@ -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) {
|
|
@@ -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,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPrerenderEnabled = isPrerenderEnabled;
|
|
4
|
+
function isPrerenderEnabled(vikeConfigGlobal) {
|
|
5
|
+
return (vikeConfigGlobal.prerender &&
|
|
6
|
+
!vikeConfigGlobal.prerender.disableAutoRun &&
|
|
7
|
+
vikeConfigGlobal.disableAutoFullBuild !== 'prerender');
|
|
8
|
+
}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -30,7 +40,6 @@ exports.runPrerenderFromAPI = runPrerenderFromAPI;
|
|
|
30
40
|
exports.runPrerenderFromCLIPrerenderCommand = runPrerenderFromCLIPrerenderCommand;
|
|
31
41
|
exports.runPrerenderFromAutoRun = runPrerenderFromAutoRun;
|
|
32
42
|
exports.runPrerender_forceExit = runPrerender_forceExit;
|
|
33
|
-
require("../runtime/page-files/setup.js");
|
|
34
43
|
const path_1 = __importDefault(require("path"));
|
|
35
44
|
const index_js_1 = require("../../shared/route/index.js");
|
|
36
45
|
const utils_js_1 = require("./utils.js");
|
|
@@ -43,7 +52,7 @@ const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
|
|
|
43
52
|
const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
|
|
44
53
|
const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
|
|
45
54
|
const helpers_js_1 = require("../../shared/page-configs/helpers.js");
|
|
46
|
-
const
|
|
55
|
+
const getConfigValueRuntime_js_1 = require("../../shared/page-configs/getConfigValueRuntime.js");
|
|
47
56
|
const loadConfigValues_js_1 = require("../../shared/page-configs/loadConfigValues.js");
|
|
48
57
|
const error_page_js_1 = require("../../shared/error-page.js");
|
|
49
58
|
const getPageContextUrlComputed_js_1 = require("../../shared/getPageContextUrlComputed.js");
|
|
@@ -96,7 +105,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
96
105
|
console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.projectInfo.projectVersion}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
|
|
97
106
|
}
|
|
98
107
|
await disableReactStreaming();
|
|
99
|
-
const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, '
|
|
108
|
+
const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
|
|
100
109
|
assertLoadedConfig(viteConfig, options);
|
|
101
110
|
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(viteConfig);
|
|
102
111
|
const { outDirClient } = (0, utils_js_1.getOutDirs)(viteConfig);
|
|
@@ -506,10 +515,10 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
|
|
|
506
515
|
if (pageContext._pageConfigs.length > 0) {
|
|
507
516
|
const pageConfig = pageContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
508
517
|
(0, utils_js_1.assert)(pageConfig);
|
|
509
|
-
usesClientRouter = (0,
|
|
518
|
+
usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
510
519
|
}
|
|
511
520
|
else {
|
|
512
|
-
usesClientRouter = globalContext.
|
|
521
|
+
usesClientRouter = globalContext.usesClientRouter;
|
|
513
522
|
}
|
|
514
523
|
}
|
|
515
524
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
@@ -17,13 +17,14 @@ exports.setGlobalContext_viteConfig = setGlobalContext_viteConfig;
|
|
|
17
17
|
exports.setGlobalContext_vikeConfig = setGlobalContext_vikeConfig;
|
|
18
18
|
exports.setGlobalContext_isViteDev = setGlobalContext_isViteDev;
|
|
19
19
|
exports.setGlobalContext_isPrerendering = setGlobalContext_isPrerendering;
|
|
20
|
+
exports.setBuildEntry = setBuildEntry;
|
|
20
21
|
const utils_js_1 = require("./utils.js");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
22
|
+
const runtime_1 = require("@brillout/vite-plugin-server-entry/runtime");
|
|
23
|
+
const virtualFileImportUserCode_js_1 = require("../shared/virtual-files/virtualFileImportUserCode.js");
|
|
24
|
+
const getPageFiles_js_1 = require("../../shared/getPageFiles/getPageFiles.js");
|
|
23
25
|
const assertPluginManifest_js_1 = require("../shared/assertPluginManifest.js");
|
|
24
26
|
const assertRuntimeManifest_js_1 = require("../shared/assertRuntimeManifest.js");
|
|
25
27
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
26
|
-
const getPageFilesExports_js_1 = require("./page-files/getPageFilesExports.js");
|
|
27
28
|
const resolveBase_js_1 = require("../shared/resolveBase.js");
|
|
28
29
|
const globalObject = (0, utils_js_1.getGlobalObject)('globalContext.ts', (() => {
|
|
29
30
|
const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = (0, utils_js_1.genPromise)();
|
|
@@ -32,6 +33,7 @@ const globalObject = (0, utils_js_1.getGlobalObject)('globalContext.ts', (() =>
|
|
|
32
33
|
viteDevServerPromiseResolve
|
|
33
34
|
};
|
|
34
35
|
})());
|
|
36
|
+
initDevEntry();
|
|
35
37
|
function getGlobalContext() {
|
|
36
38
|
(0, utils_js_1.assert)(globalObject.globalContext);
|
|
37
39
|
return globalObject.globalContext;
|
|
@@ -155,13 +157,11 @@ async function initGlobalContext(isProduction) {
|
|
|
155
157
|
(0, utils_js_1.assert)(vikeConfig);
|
|
156
158
|
(0, utils_js_1.assert)(viteDevServer);
|
|
157
159
|
(0, utils_js_1.assert)(!isPrerendering);
|
|
158
|
-
const
|
|
159
|
-
const pluginManifest = getRuntimeManifest(vikeConfigGlobal, viteConfig);
|
|
160
|
+
const pluginManifest = getRuntimeManifest(vikeConfig.vikeConfigGlobal, viteConfig);
|
|
160
161
|
globalObject.globalContext = {
|
|
161
162
|
isProduction: false,
|
|
162
163
|
isPrerendering: false,
|
|
163
164
|
assetsManifest: null,
|
|
164
|
-
pluginManifest: null,
|
|
165
165
|
viteDevServer,
|
|
166
166
|
viteConfig,
|
|
167
167
|
vikeConfig,
|
|
@@ -174,22 +174,21 @@ async function initGlobalContext(isProduction) {
|
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
176
|
else {
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
(0, getPageFiles_js_1.setPageFiles)(pageFiles);
|
|
177
|
+
const buildEntry = await getBuildEntry(globalObject.outDirRoot);
|
|
178
|
+
const { assetsManifest, pluginManifest } = buildEntry;
|
|
179
|
+
(0, getPageFiles_js_1.setPageFiles)(buildEntry.pageFiles);
|
|
181
180
|
assertViteManifest(assetsManifest);
|
|
182
181
|
(0, assertPluginManifest_js_1.assertPluginManifest)(pluginManifest);
|
|
183
182
|
const globalContext = {
|
|
184
183
|
isProduction: true,
|
|
185
184
|
assetsManifest,
|
|
186
|
-
pluginManifest,
|
|
187
185
|
viteDevServer: null,
|
|
188
186
|
baseServer: pluginManifest.baseServer,
|
|
189
187
|
baseAssets: pluginManifest.baseAssets,
|
|
190
188
|
includeAssetsImportedByServer: pluginManifest.includeAssetsImportedByServer,
|
|
191
189
|
redirects: pluginManifest.redirects,
|
|
192
190
|
trailingSlash: pluginManifest.trailingSlash,
|
|
191
|
+
usesClientRouter: pluginManifest.usesClientRouter,
|
|
193
192
|
disableUrlNormalization: pluginManifest.disableUrlNormalization
|
|
194
193
|
};
|
|
195
194
|
if (isPrerendering) {
|
|
@@ -223,15 +222,6 @@ function getRuntimeManifest(vikeConfigGlobal, viteConfig) {
|
|
|
223
222
|
(0, assertRuntimeManifest_js_1.assertRuntimeManifest)(manifest);
|
|
224
223
|
return manifest;
|
|
225
224
|
}
|
|
226
|
-
function assertBuildEntries(buildEntries, isPreRendering) {
|
|
227
|
-
const errMsg = [
|
|
228
|
-
`You are tyring to run`,
|
|
229
|
-
isPreRendering ? 'pre-rendering' : 'the server for production',
|
|
230
|
-
`but your app isn't built yet. Run ${picocolors_1.default.cyan('$ vike build')} before `,
|
|
231
|
-
isPreRendering ? 'pre-rendering.' : 'running the server.'
|
|
232
|
-
].join(' ');
|
|
233
|
-
(0, utils_js_1.assertUsage)(buildEntries, errMsg);
|
|
234
|
-
}
|
|
235
225
|
function assertViteManifest(manifest) {
|
|
236
226
|
(0, utils_js_1.assert)((0, utils_js_1.isPlainObject)(manifest));
|
|
237
227
|
/* We should include these assertions but we don't as a workaround for PWA manifests: https://github.com/vikejs/vike/issues/769
|
|
@@ -248,5 +238,38 @@ function assertViteManifest(manifest) {
|
|
|
248
238
|
function eagerlyLoadUserFiles() {
|
|
249
239
|
// Other than here, the getPageFilesExports() function is only called only upon calling the renderPage() function.
|
|
250
240
|
// We call it as early as possible here for better performance.
|
|
251
|
-
|
|
241
|
+
getPageFilesExports();
|
|
242
|
+
}
|
|
243
|
+
async function getBuildEntry(outDir) {
|
|
244
|
+
if (!globalObject.buildEntry) {
|
|
245
|
+
await (0, runtime_1.importServerProductionEntry)({ outDir });
|
|
246
|
+
(0, utils_js_1.assert)(globalObject.buildEntry);
|
|
247
|
+
}
|
|
248
|
+
return globalObject.buildEntry;
|
|
249
|
+
}
|
|
250
|
+
function setBuildEntry(buildEntry) {
|
|
251
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(buildEntry));
|
|
252
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'pageFiles', 'object'));
|
|
253
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'assetsManifest', 'object'));
|
|
254
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'pluginManifest', 'object'));
|
|
255
|
+
globalObject.buildEntry = buildEntry;
|
|
256
|
+
}
|
|
257
|
+
function initDevEntry() {
|
|
258
|
+
(0, getPageFiles_js_1.setPageFilesAsync)(getPageFilesExports);
|
|
259
|
+
}
|
|
260
|
+
async function getPageFilesExports() {
|
|
261
|
+
const viteDevServer = getViteDevServer();
|
|
262
|
+
(0, utils_js_1.assert)(viteDevServer);
|
|
263
|
+
let moduleExports;
|
|
264
|
+
try {
|
|
265
|
+
moduleExports = await viteDevServer.ssrLoadModule(virtualFileImportUserCode_js_1.virtualFileIdImportUserCodeServer);
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
(0, utils_js_1.debugGlob)(`Glob error: ${virtualFileImportUserCode_js_1.virtualFileIdImportUserCodeServer} transpile error: `, err);
|
|
269
|
+
throw err;
|
|
270
|
+
}
|
|
271
|
+
moduleExports = moduleExports.default || moduleExports;
|
|
272
|
+
(0, utils_js_1.debugGlob)('Glob result: ', moduleExports);
|
|
273
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(moduleExports));
|
|
274
|
+
return moduleExports;
|
|
252
275
|
}
|
|
@@ -10,7 +10,7 @@ const sanitizeJson_js_1 = require("./sanitizeJson.js");
|
|
|
10
10
|
const inferHtmlTags_js_1 = require("./inferHtmlTags.js");
|
|
11
11
|
const mergeScriptTags_js_1 = require("./mergeScriptTags.js");
|
|
12
12
|
const helpers_js_1 = require("../../../../shared/page-configs/helpers.js");
|
|
13
|
-
const
|
|
13
|
+
const getConfigValueRuntime_js_1 = require("../../../../shared/page-configs/getConfigValueRuntime.js");
|
|
14
14
|
const globalContext_js_1 = require("../../globalContext.js");
|
|
15
15
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
16
16
|
const getConfigDefinedAt_js_1 = require("../../../../shared/page-configs/getConfigDefinedAt.js");
|
|
@@ -218,7 +218,7 @@ function getInjectScriptsAt(pageId, pageConfigs) {
|
|
|
218
218
|
if (pageConfigs.length === 0)
|
|
219
219
|
return null; // only support V1 design
|
|
220
220
|
const pageConfig = (0, helpers_js_1.getPageConfig)(pageId, pageConfigs);
|
|
221
|
-
const configValue = (0,
|
|
221
|
+
const configValue = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'injectScriptsAt');
|
|
222
222
|
if (!configValue)
|
|
223
223
|
return null;
|
|
224
224
|
const injectScriptsAt = configValue.value;
|
|
@@ -24,18 +24,3 @@ Object.defineProperty(exports, "_injectAssets", { enumerable: true, get: functio
|
|
|
24
24
|
// TODO/v1-release: remove
|
|
25
25
|
var createPageRenderer_js_1 = require("../createPageRenderer.js");
|
|
26
26
|
Object.defineProperty(exports, "createPageRenderer", { enumerable: true, get: function () { return createPageRenderer_js_1.createPageRenderer; } });
|
|
27
|
-
addEcosystemStamp();
|
|
28
|
-
require("./page-files/setup.js");
|
|
29
|
-
// Used by:
|
|
30
|
-
// - Telefunc (to detect the user's stack https://github.com/brillout/telefunc/blob/8288310e88e06a42b710d39c39fb502364ca6d30/telefunc/utils/isVikeApp.ts#L4)
|
|
31
|
-
function addEcosystemStamp() {
|
|
32
|
-
const g = globalThis;
|
|
33
|
-
g._isVikeApp =
|
|
34
|
-
/* Don't set to true so that consumers do `!!globalThis._isVikeApp` instead of `globalThis._isVikeApp === true`.
|
|
35
|
-
true
|
|
36
|
-
*/
|
|
37
|
-
// We use an object so that we can eventually, in the future, add helpful information as needed. (E.g. the Vike version, or global settings.)
|
|
38
|
-
{};
|
|
39
|
-
// We keep the old stamp for older Telefunc versions
|
|
40
|
-
g._isVitePluginSsr = true;
|
|
41
|
-
}
|
|
@@ -3,13 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.onLoad = onLoad;
|
|
4
4
|
const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
|
|
5
5
|
const assertNodeVersion_js_1 = require("../../utils/assertNodeVersion.js");
|
|
6
|
+
const assert_js_1 = require("../../utils/assert.js");
|
|
6
7
|
const require_shim_1 = require("@brillout/require-shim");
|
|
7
|
-
const utils_js_1 = require("./utils.js");
|
|
8
8
|
const isErrorDebug_js_1 = require("../shared/isErrorDebug.js");
|
|
9
9
|
function onLoad() {
|
|
10
10
|
(0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
|
|
11
11
|
(0, assertNodeVersion_js_1.assertNodeVersion)();
|
|
12
|
-
(0, require_shim_1.installRequireShim)();
|
|
13
12
|
if ((0, isErrorDebug_js_1.isErrorDebug)())
|
|
14
|
-
(0,
|
|
13
|
+
(0, assert_js_1.setAlwaysShowStackTrace)();
|
|
14
|
+
addEcosystemStamp();
|
|
15
|
+
(0, require_shim_1.installRequireShim)();
|
|
16
|
+
}
|
|
17
|
+
// Used by:
|
|
18
|
+
// - Telefunc (to detect the user's stack https://github.com/brillout/telefunc/blob/8288310e88e06a42b710d39c39fb502364ca6d30/telefunc/utils/isVikeApp.ts#L4)
|
|
19
|
+
function addEcosystemStamp() {
|
|
20
|
+
const g = globalThis;
|
|
21
|
+
g._isVikeApp =
|
|
22
|
+
/* Don't set to true so that consumers do `!!globalThis._isVikeApp` instead of `globalThis._isVikeApp === true`.
|
|
23
|
+
true
|
|
24
|
+
*/
|
|
25
|
+
// We use an object so that we can eventually, in the future, add helpful information as needed. (E.g. the Vike version, or global settings.)
|
|
26
|
+
{};
|
|
27
|
+
// We keep the old stamp for older Telefunc versions
|
|
28
|
+
g._isVitePluginSsr = true;
|
|
15
29
|
}
|
|
@@ -6,12 +6,12 @@ const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyze
|
|
|
6
6
|
const virtualFilePageConfigValuesAll_js_1 = require("../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
|
|
7
7
|
const analyzeClientSide_js_1 = require("../../../shared/getPageFiles/analyzeClientSide.js");
|
|
8
8
|
const globalContext_js_1 = require("../globalContext.js");
|
|
9
|
-
const
|
|
9
|
+
const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
|
|
10
10
|
function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
11
11
|
if (pageConfig) {
|
|
12
12
|
const { isClientRuntimeLoaded, isClientRouting } = (0, analyzeClientSide_js_1.analyzeClientSide)(pageConfig, pageFilesAll, pageId);
|
|
13
13
|
const clientEntries = [];
|
|
14
|
-
const clientFilePath = (0,
|
|
14
|
+
const clientFilePath = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'client', 'string')?.value ?? null;
|
|
15
15
|
if (clientFilePath)
|
|
16
16
|
clientEntries.push(clientFilePath);
|
|
17
17
|
if (isClientRuntimeLoaded)
|