vike 0.4.219 → 0.4.220-commit-9a798ce
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/node/api/build.js +23 -58
- package/dist/cjs/node/api/context.js +6 -8
- package/dist/cjs/node/api/prepareViteApiCall.js +6 -7
- package/dist/cjs/node/api/utils.js +1 -1
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +2 -0
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/{utils → node/plugin}/getOutDirs.js +11 -11
- package/dist/cjs/node/plugin/index.js +1 -7
- package/dist/cjs/node/plugin/onLoad.js +6 -1
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +43 -31
- package/dist/cjs/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/cjs/node/plugin/plugins/buildConfig.js +6 -3
- package/dist/cjs/node/plugin/plugins/buildEntry/index.js +24 -21
- package/dist/cjs/node/plugin/plugins/commonConfig.js +11 -8
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +4 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +10 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +3 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/assertExtensions.js +10 -9
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +8 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +158 -176
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +3 -2
- package/dist/cjs/node/plugin/plugins/previewConfig.js +3 -4
- package/dist/cjs/node/plugin/utils.js +1 -1
- package/dist/cjs/node/prerender/context.js +26 -0
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +25 -0
- package/dist/cjs/node/prerender/runPrerender.js +64 -37
- package/dist/cjs/node/prerender/utils.js +3 -2
- package/dist/cjs/node/runtime/globalContext.js +44 -58
- package/dist/cjs/node/runtime/page-files/setup.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +6 -3
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +6 -5
- package/dist/cjs/node/runtime/renderPage.js +10 -5
- package/dist/cjs/node/runtime/utils.js +3 -2
- package/dist/cjs/node/shared/resolveBase.js +9 -0
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +2 -2
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/utils.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +15 -1
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/findFile.js +3 -3
- package/dist/cjs/utils/isDev.js +4 -1
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +2 -2
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/requireResolve.js +3 -3
- 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/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/shared/normalizeClientSideUrl.js +2 -3
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +20 -25
- package/dist/esm/node/api/context.d.ts +4 -4
- package/dist/esm/node/api/context.js +6 -9
- package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
- package/dist/esm/node/api/prepareViteApiCall.js +7 -8
- package/dist/esm/node/api/utils.d.ts +1 -1
- package/dist/esm/node/api/utils.js +1 -1
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +2 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/{utils → node/plugin}/getOutDirs.js +5 -5
- package/dist/esm/node/plugin/index.d.ts +29 -1
- package/dist/esm/node/plugin/index.js +2 -8
- package/dist/esm/node/plugin/onLoad.js +7 -2
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +43 -31
- package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/esm/node/plugin/plugins/buildConfig.js +7 -4
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/buildEntry/index.js +25 -22
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +8 -2
- package/dist/esm/node/plugin/plugins/commonConfig.js +9 -6
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +4 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +10 -7
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +3 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.d.ts +3 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.js +10 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +8 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -95
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +159 -177
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +3 -2
- package/dist/esm/node/plugin/plugins/previewConfig.js +3 -4
- package/dist/esm/node/plugin/utils.js +1 -1
- package/dist/esm/node/prerender/context.d.ts +9 -0
- package/dist/esm/node/prerender/context.js +24 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +5 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +23 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -1
- package/dist/esm/node/prerender/runPrerender.js +65 -38
- package/dist/esm/node/prerender/utils.d.ts +3 -2
- package/dist/esm/node/prerender/utils.js +3 -2
- package/dist/esm/node/runtime/globalContext.d.ts +15 -9
- package/dist/esm/node/runtime/globalContext.js +45 -59
- package/dist/esm/node/runtime/page-files/setup.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +5 -5
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +6 -3
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +5 -5
- package/dist/esm/node/runtime/renderPage.js +10 -5
- package/dist/esm/node/runtime/utils.d.ts +3 -2
- package/dist/esm/node/runtime/utils.js +3 -2
- package/dist/esm/node/shared/resolveBase.d.ts +4 -1
- package/dist/esm/node/shared/resolveBase.js +9 -0
- package/dist/esm/shared/page-configs/Config.d.ts +76 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +25 -16
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +1 -1
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +2 -2
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/utils.d.ts +1 -1
- package/dist/esm/shared/utils.js +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/assertSetup.js +15 -1
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/isDev.js +4 -1
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -17
- package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +0 -16
- package/dist/cjs/node/shared/assertPluginManifest.js +0 -20
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -16
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -15
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +0 -5
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +0 -14
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -12
- package/dist/esm/node/shared/assertPluginManifest.js +0 -18
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -10
- package/dist/esm/node/shared/assertRuntimeManifest.js +0 -14
- /package/dist/cjs/utils/{filesystemPathHandling.js → toPosixPath.js} +0 -0
- /package/dist/esm/{utils → node/plugin}/getOutDirs.d.ts +0 -0
- /package/dist/esm/utils/{filesystemPathHandling.d.ts → toPosixPath.d.ts} +0 -0
- /package/dist/esm/utils/{filesystemPathHandling.js → toPosixPath.js} +0 -0
|
@@ -114,7 +114,7 @@ async function loadInterfaceFiles(userRootDir) {
|
|
|
114
114
|
valueFiles.push(f);
|
|
115
115
|
}
|
|
116
116
|
});
|
|
117
|
-
let
|
|
117
|
+
let interfaceFilesAll = {};
|
|
118
118
|
await Promise.all([
|
|
119
119
|
// Config files
|
|
120
120
|
...configFiles.map(async (filePath) => {
|
|
@@ -124,8 +124,8 @@ async function loadInterfaceFiles(userRootDir) {
|
|
|
124
124
|
(0, utils_js_1.assert)(filePath.filePathAbsoluteUserRootDir);
|
|
125
125
|
const locationId = (0, filesystemRouting_js_1.getLocationId)(filePathAbsoluteUserRootDir);
|
|
126
126
|
const interfaceFile = getInterfaceFileFromConfigFile(configFile, false, locationId);
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
interfaceFilesAll[locationId] = interfaceFilesAll[locationId] ?? [];
|
|
128
|
+
interfaceFilesAll[locationId].push(interfaceFile);
|
|
129
129
|
extendsConfigs.forEach((extendsConfig) => {
|
|
130
130
|
/* We purposely use the same locationId because the Vike extension's config should only apply to where it's being extended from, for example:
|
|
131
131
|
```js
|
|
@@ -145,7 +145,7 @@ async function loadInterfaceFiles(userRootDir) {
|
|
|
145
145
|
*/
|
|
146
146
|
const interfaceFile = getInterfaceFileFromConfigFile(extendsConfig, true, locationId);
|
|
147
147
|
(0, assertExtensions_js_1.assertExtensionsConventions)(interfaceFile);
|
|
148
|
-
|
|
148
|
+
interfaceFilesAll[locationId].push(interfaceFile);
|
|
149
149
|
});
|
|
150
150
|
}),
|
|
151
151
|
// Value files
|
|
@@ -170,18 +170,18 @@ async function loadInterfaceFiles(userRootDir) {
|
|
|
170
170
|
// - If `configDef` is `undefined` => we load the file +{configName}.js later.
|
|
171
171
|
// - We already need to load +meta.js here (to get the custom config definitions defined by the user)
|
|
172
172
|
const configDef = getConfigDefinitionOptional(configDefinitionsBuiltIn, configName);
|
|
173
|
-
if (configDef &&
|
|
173
|
+
if (configDef && shouldBeLoadableAtBuildTime(configDef)) {
|
|
174
174
|
await (0, loadFileAtConfigTime_js_1.loadValueFile)(interfaceFile, configName, userRootDir);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
{
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
interfaceFilesAll[locationId] = interfaceFilesAll[locationId] ?? [];
|
|
179
|
+
interfaceFilesAll[locationId].push(interfaceFile);
|
|
180
180
|
}
|
|
181
181
|
})
|
|
182
182
|
]);
|
|
183
|
-
assertAllConfigsAreKnown(
|
|
184
|
-
return
|
|
183
|
+
assertAllConfigsAreKnown(interfaceFilesAll);
|
|
184
|
+
return interfaceFilesAll;
|
|
185
185
|
}
|
|
186
186
|
function getInterfaceFileFromConfigFile(configFile, isConfigExtend, locationId) {
|
|
187
187
|
const { fileExports, filePath, extendsFilePaths } = configFile;
|
|
@@ -201,9 +201,9 @@ function getInterfaceFileFromConfigFile(configFile, isConfigExtend, locationId)
|
|
|
201
201
|
return interfaceFile;
|
|
202
202
|
}
|
|
203
203
|
/** Show error message upon unknown config */
|
|
204
|
-
function assertAllConfigsAreKnown(
|
|
205
|
-
(0, utils_js_1.objectEntries)(
|
|
206
|
-
const interfaceFilesRelevant = getInterfaceFilesRelevant(
|
|
204
|
+
function assertAllConfigsAreKnown(interfaceFilesAll) {
|
|
205
|
+
(0, utils_js_1.objectEntries)(interfaceFilesAll).forEach(([locationId, interfaceFiles]) => {
|
|
206
|
+
const interfaceFilesRelevant = getInterfaceFilesRelevant(interfaceFilesAll, locationId);
|
|
207
207
|
const configDefinitions = getConfigDefinitions(interfaceFilesRelevant);
|
|
208
208
|
interfaceFiles.forEach((interfaceFile) => {
|
|
209
209
|
Object.keys(interfaceFile.fileExportsByConfigName).forEach((configName) => {
|
|
@@ -246,9 +246,9 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
246
246
|
pageConfigs: [],
|
|
247
247
|
pageConfigGlobal: {
|
|
248
248
|
configDefinitions: {},
|
|
249
|
+
interfaceFiles: {},
|
|
249
250
|
configValueSources: {}
|
|
250
251
|
},
|
|
251
|
-
vikeConfigGlobal: resolveVikeConfigGlobal({}, {}),
|
|
252
252
|
global: (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues: {} })
|
|
253
253
|
};
|
|
254
254
|
return dummyData;
|
|
@@ -256,49 +256,86 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
259
|
-
const
|
|
259
|
+
const interfaceFilesAll = await loadInterfaceFiles(userRootDir);
|
|
260
260
|
const importedFilesLoaded = {};
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
261
|
+
const { pageConfigGlobal, pageConfigs } = await getPageConfigs(interfaceFilesAll, userRootDir, importedFilesLoaded);
|
|
262
|
+
// interop vike(options) in vite.config.js
|
|
263
|
+
temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
|
|
264
|
+
// global
|
|
265
|
+
const configValues = getConfigValues(pageConfigGlobal);
|
|
266
|
+
const global = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)({ configValues });
|
|
267
|
+
return { pageConfigs, pageConfigGlobal, global };
|
|
266
268
|
}
|
|
267
|
-
async function getGlobalConfigs(
|
|
268
|
-
|
|
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
|
-
}));
|
|
269
|
+
async function getGlobalConfigs(interfaceFilesAll, userRootDir, importedFilesLoaded) {
|
|
270
|
+
/* TODO/now: dedupe
|
|
272
271
|
// Validate that global configs live in global interface files
|
|
273
272
|
{
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
273
|
+
const interfaceFilesGlobalPaths: string[] = []
|
|
274
|
+
objectEntries(interfaceFilesGlobal).forEach(([locationId, interfaceFiles]) => {
|
|
275
|
+
assert(isGlobalLocation(locationId, locationIds))
|
|
276
|
+
interfaceFiles.forEach(({ filePath: { filePathAbsoluteUserRootDir } }) => {
|
|
277
|
+
if (filePathAbsoluteUserRootDir) {
|
|
278
|
+
interfaceFilesGlobalPaths.push(filePathAbsoluteUserRootDir)
|
|
279
|
+
}
|
|
280
|
+
})
|
|
281
|
+
})
|
|
282
|
+
const globalPaths = Array.from(new Set(interfaceFilesGlobalPaths.map((p) => path.posix.dirname(p))))
|
|
283
|
+
objectEntries(interfaceFilesAll).forEach(([locationId, interfaceFiles]) => {
|
|
284
|
+
interfaceFiles.forEach((interfaceFile) => {
|
|
285
|
+
Object.keys(interfaceFile.fileExportsByConfigName).forEach((configName) => {
|
|
286
|
+
if (!isGlobalLocation(locationId, locationIds) && isGlobalConfig(configName)) {
|
|
287
|
+
assertUsage(
|
|
288
|
+
false,
|
|
289
|
+
[
|
|
290
|
+
`${interfaceFile.filePath.filePathToShowToUser} defines the config ${pc.cyan(
|
|
291
|
+
configName
|
|
292
|
+
)} which is global:`,
|
|
293
|
+
globalPaths.length
|
|
294
|
+
? `define ${pc.cyan(configName)} in ${joinEnglish(globalPaths, 'or')} instead`
|
|
295
|
+
: `create a global config (e.g. /pages/+config.js) and define ${pc.cyan(configName)} there instead`
|
|
296
|
+
].join(' ')
|
|
297
|
+
)
|
|
298
|
+
}
|
|
299
|
+
})
|
|
300
|
+
})
|
|
301
|
+
})
|
|
298
302
|
}
|
|
299
|
-
|
|
303
|
+
//*/
|
|
304
|
+
}
|
|
305
|
+
function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir) {
|
|
306
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeVitePluginOptions));
|
|
307
|
+
(0, utils_js_1.assertWarning)(Object.keys(vikeVitePluginOptions).length === 0, `Define Vike settings in +config.js instead of vite.config.js ${picocolors_1.default.underline('https://vike.dev/migration/settings')}`, { onlyOnce: true });
|
|
308
|
+
Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
|
|
309
|
+
var _a;
|
|
310
|
+
(0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltInGlobal), configName));
|
|
311
|
+
const configDef = configDefinitionsBuiltInGlobal[configName];
|
|
312
|
+
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
313
|
+
sources.push({
|
|
314
|
+
value,
|
|
315
|
+
configEnv: configDef.env,
|
|
316
|
+
definedAtFilePath: {
|
|
317
|
+
...(0, getFilePath_js_1.getFilePathResolved)({
|
|
318
|
+
userRootDir,
|
|
319
|
+
filePathAbsoluteUserRootDir: '/vite.config.js'
|
|
320
|
+
}),
|
|
321
|
+
fileExportPathToShowToUser: null
|
|
322
|
+
},
|
|
323
|
+
locationId: '/',
|
|
324
|
+
interfaceFile: null,
|
|
325
|
+
isOverriden: configDef.cumulative ? false : sources.length > 0,
|
|
326
|
+
valueIsImportedAtRuntime: false,
|
|
327
|
+
valueIsDefinedByPlusFile: false
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
async function getPageConfigs(interfaceFilesAll, userRootDir, importedFilesLoaded) {
|
|
332
|
+
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesAll);
|
|
333
|
+
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesAll).filter(([locationId]) => {
|
|
334
|
+
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
335
|
+
}));
|
|
300
336
|
const pageConfigGlobal = {
|
|
301
337
|
configDefinitions: configDefinitionsBuiltInGlobal,
|
|
338
|
+
interfaceFiles: interfaceFilesGlobal,
|
|
302
339
|
configValueSources: {}
|
|
303
340
|
};
|
|
304
341
|
await Promise.all((0, utils_js_1.objectEntries)(configDefinitionsBuiltInGlobal).map(async ([configName, configDef]) => {
|
|
@@ -307,56 +344,15 @@ async function getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importe
|
|
|
307
344
|
if (!configValueSource)
|
|
308
345
|
return;
|
|
309
346
|
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
347
|
}));
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
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) {
|
|
352
|
-
const pageConfigs = await Promise.all((0, utils_js_1.objectEntries)(interfaceFilesByLocationId)
|
|
353
|
-
.filter(([_pageId, interfaceFiles]) => isDefiningPage(interfaceFiles))
|
|
348
|
+
const pageConfigs = [];
|
|
349
|
+
await Promise.all((0, utils_js_1.objectEntries)(interfaceFilesAll)
|
|
350
|
+
.filter(([_locationId, interfaceFiles]) => isDefiningPage(interfaceFiles))
|
|
354
351
|
.map(async ([locationId]) => {
|
|
355
|
-
const interfaceFilesRelevant = getInterfaceFilesRelevant(
|
|
352
|
+
const interfaceFilesRelevant = getInterfaceFilesRelevant(interfaceFilesAll, locationId);
|
|
356
353
|
const interfaceFilesRelevantList = Object.values(interfaceFilesRelevant).flat(1);
|
|
357
|
-
(0, assertExtensions_js_1.assertExtensionsPeerDependencies)(interfaceFilesRelevantList);
|
|
358
354
|
const configDefinitions = getConfigDefinitions(interfaceFilesRelevant);
|
|
359
|
-
// Load value files of custom
|
|
355
|
+
// Load value files of `env.config===true` custom configs
|
|
360
356
|
await Promise.all(interfaceFilesRelevantList.map(async (interfaceFile) => {
|
|
361
357
|
if (!interfaceFile.isValueFile)
|
|
362
358
|
return;
|
|
@@ -364,7 +360,7 @@ async function getPageConfigs(interfaceFilesByLocationId, userRootDir, importedF
|
|
|
364
360
|
if (isGlobalConfig(configName))
|
|
365
361
|
return;
|
|
366
362
|
const configDef = getConfigDefinition(configDefinitions, configName, interfaceFile.filePath.filePathToShowToUser);
|
|
367
|
-
if (!
|
|
363
|
+
if (!shouldBeLoadableAtBuildTime(configDef))
|
|
368
364
|
return;
|
|
369
365
|
const isAlreadyLoaded = interfacefileIsAlreaydLoaded(interfaceFile);
|
|
370
366
|
if (isAlreadyLoaded)
|
|
@@ -386,53 +382,34 @@ async function getPageConfigs(interfaceFilesByLocationId, userRootDir, importedF
|
|
|
386
382
|
const { routeFilesystem, isErrorPage } = determineRouteFilesystem(locationId, configValueSources);
|
|
387
383
|
applyEffectsAll(configValueSources, configDefinitions);
|
|
388
384
|
const configValuesComputed = getComputed(configValueSources, configDefinitions);
|
|
389
|
-
assertUsageGlobalConfigs(interfaceFilesRelevantList, configDefinitions, interfaceFilesByLocationId);
|
|
390
385
|
const pageConfig = {
|
|
391
386
|
pageId: locationId,
|
|
392
387
|
isErrorPage,
|
|
393
388
|
routeFilesystem,
|
|
394
389
|
configDefinitions,
|
|
390
|
+
interfaceFiles: interfaceFilesRelevant,
|
|
395
391
|
configValueSources,
|
|
396
392
|
configValuesComputed
|
|
397
393
|
};
|
|
398
|
-
|
|
394
|
+
pageConfigs.push(pageConfig);
|
|
399
395
|
}));
|
|
400
|
-
assertPageConfigs(pageConfigs);
|
|
401
|
-
return pageConfigs;
|
|
396
|
+
assertPageConfigs(pageConfigs, interfaceFilesAll);
|
|
397
|
+
return { pageConfigs, pageConfigGlobal };
|
|
402
398
|
}
|
|
403
|
-
function
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
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
|
-
}
|
|
399
|
+
function assertPageConfigs(pageConfigs, interfaceFilesAll) {
|
|
400
|
+
pageConfigs.forEach((pageConfig) => {
|
|
401
|
+
assertGlobalConfigs(pageConfig, interfaceFilesAll);
|
|
402
|
+
(0, assertExtensions_js_1.assertExtensionsRequire)(pageConfig);
|
|
403
|
+
assertOnBeforeRenderEnv(pageConfig);
|
|
428
404
|
});
|
|
429
|
-
return configValues;
|
|
430
405
|
}
|
|
431
406
|
// TODO/now: refactor
|
|
432
|
-
// - Dedupe: most of the
|
|
407
|
+
// - Dedupe: most of the assertGlobalConfigs() code below is a copy-paste of the assertUsage() logic inside getGlobalConfigs()
|
|
433
408
|
// - This assertUsage() message is slightly better: use this one for getGlobalConfigs()
|
|
434
409
|
// Global configs should be defined at global locations
|
|
435
|
-
function
|
|
410
|
+
function assertGlobalConfigs(pageConfig, interfaceFilesAll) {
|
|
411
|
+
const interfaceFilesRelevantList = Object.values(pageConfig.interfaceFiles).flat(1);
|
|
412
|
+
const { configDefinitions } = pageConfig;
|
|
436
413
|
interfaceFilesRelevantList.forEach((interfaceFile) => {
|
|
437
414
|
const configNames = [];
|
|
438
415
|
if (interfaceFile.isValueFile) {
|
|
@@ -446,9 +423,9 @@ function assertUsageGlobalConfigs(interfaceFilesRelevantList, configDefinitions,
|
|
|
446
423
|
return;
|
|
447
424
|
const configDef = getConfigDefinition(configDefinitions, configName, interfaceFile.filePath.filePathToShowToUser);
|
|
448
425
|
if (configDef.global === true) {
|
|
449
|
-
const locationIds = (0, utils_js_1.objectKeys)(
|
|
426
|
+
const locationIds = (0, utils_js_1.objectKeys)(interfaceFilesAll);
|
|
450
427
|
if (!(0, filesystemRouting_js_1.isGlobalLocation)(interfaceFile.locationId, locationIds)) {
|
|
451
|
-
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(
|
|
428
|
+
const interfaceFilesGlobal = (0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(interfaceFilesAll).filter(([locationId]) => {
|
|
452
429
|
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
453
430
|
}));
|
|
454
431
|
const configFilesGlobal = [];
|
|
@@ -474,11 +451,6 @@ function assertUsageGlobalConfigs(interfaceFilesRelevantList, configDefinitions,
|
|
|
474
451
|
});
|
|
475
452
|
});
|
|
476
453
|
}
|
|
477
|
-
function assertPageConfigs(pageConfigs) {
|
|
478
|
-
pageConfigs.forEach((pageConfig) => {
|
|
479
|
-
assertOnBeforeRenderEnv(pageConfig);
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
454
|
function assertOnBeforeRenderEnv(pageConfig) {
|
|
483
455
|
const onBeforeRenderConfig = pageConfig.configValueSources.onBeforeRender?.[0];
|
|
484
456
|
if (!onBeforeRenderConfig)
|
|
@@ -488,6 +460,34 @@ function assertOnBeforeRenderEnv(pageConfig) {
|
|
|
488
460
|
// When using Server Routing, loading a onBeforeRender() hook on the client-side hasn't any effect (the Server Routing's client runtime never calls it); it unnecessarily bloats client bundle sizes
|
|
489
461
|
(0, utils_js_1.assertUsage)(!(onBeforeRenderEnv.client && !isClientRouting), `Page ${pageConfig.pageId} has an onBeforeRender() hook with env ${picocolors_1.default.cyan(JSON.stringify(onBeforeRenderEnv))} which doesn't make sense because the page is using Server Routing: onBeforeRender() can be run in the client only when using Client Routing.`);
|
|
490
462
|
}
|
|
463
|
+
function getConfigValues(pageConfig) {
|
|
464
|
+
const configValues = {};
|
|
465
|
+
(0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, (configEnv) => !!configEnv.config, null).forEach((entry) => {
|
|
466
|
+
if (entry.configValueBase.type === 'computed') {
|
|
467
|
+
(0, utils_js_1.assert)('value' in entry); // Help TS
|
|
468
|
+
const { configValueBase, value, configName } = entry;
|
|
469
|
+
configValues[configName] = { ...configValueBase, value };
|
|
470
|
+
}
|
|
471
|
+
if (entry.configValueBase.type === 'standard') {
|
|
472
|
+
(0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
|
|
473
|
+
const { configValueBase, sourceRelevant, configName } = entry;
|
|
474
|
+
(0, utils_js_1.assert)('value' in sourceRelevant);
|
|
475
|
+
const { value } = sourceRelevant;
|
|
476
|
+
configValues[configName] = { ...configValueBase, value };
|
|
477
|
+
}
|
|
478
|
+
if (entry.configValueBase.type === 'cumulative') {
|
|
479
|
+
(0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
|
|
480
|
+
const { configValueBase, sourcesRelevant, configName } = entry;
|
|
481
|
+
const values = [];
|
|
482
|
+
sourcesRelevant.forEach((source) => {
|
|
483
|
+
(0, utils_js_1.assert)('value' in source);
|
|
484
|
+
values.push(source.value);
|
|
485
|
+
});
|
|
486
|
+
configValues[configName] = { ...configValueBase, value: values };
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
return configValues;
|
|
490
|
+
}
|
|
491
491
|
function interfacefileIsAlreaydLoaded(interfaceFile) {
|
|
492
492
|
const configMapValues = Object.values(interfaceFile.fileExportsByConfigName);
|
|
493
493
|
const isAlreadyLoaded = configMapValues.some((conf) => 'configValue' in conf);
|
|
@@ -496,8 +496,8 @@ function interfacefileIsAlreaydLoaded(interfaceFile) {
|
|
|
496
496
|
}
|
|
497
497
|
return isAlreadyLoaded;
|
|
498
498
|
}
|
|
499
|
-
function getInterfaceFilesRelevant(
|
|
500
|
-
const interfaceFilesRelevant = Object.fromEntries((0, utils_js_1.objectEntries)(
|
|
499
|
+
function getInterfaceFilesRelevant(interfaceFilesAll, locationIdPage) {
|
|
500
|
+
const interfaceFilesRelevant = Object.fromEntries((0, utils_js_1.objectEntries)(interfaceFilesAll)
|
|
501
501
|
.filter(([locationId]) => {
|
|
502
502
|
return (0, filesystemRouting_js_1.isInherited)(locationId, locationIdPage);
|
|
503
503
|
})
|
|
@@ -597,7 +597,10 @@ function isInterfaceFileUserLand(interfaceFile) {
|
|
|
597
597
|
async function getConfigValueSource(configName, interfaceFile, configDef, userRootDir, importedFilesLoaded, isHighestInheritancePrecedence) {
|
|
598
598
|
const conf = interfaceFile.fileExportsByConfigName[configName];
|
|
599
599
|
(0, utils_js_1.assert)(conf);
|
|
600
|
-
const
|
|
600
|
+
const configValueSourceCommon = {
|
|
601
|
+
locationId: interfaceFile.locationId,
|
|
602
|
+
interfaceFile
|
|
603
|
+
};
|
|
601
604
|
const definedAtFilePath_ = {
|
|
602
605
|
...interfaceFile.filePath,
|
|
603
606
|
fileExportPathToShowToUser: ['default', configName]
|
|
@@ -625,7 +628,7 @@ async function getConfigValueSource(configName, interfaceFile, configDef, userRo
|
|
|
625
628
|
};
|
|
626
629
|
}
|
|
627
630
|
const configValueSource = {
|
|
628
|
-
|
|
631
|
+
...configValueSourceCommon,
|
|
629
632
|
value: valueFilePath,
|
|
630
633
|
valueIsFilePath: true,
|
|
631
634
|
configEnv: configDef.env,
|
|
@@ -644,7 +647,7 @@ async function getConfigValueSource(configName, interfaceFile, configDef, userRo
|
|
|
644
647
|
const resolved = (0, resolvePointerImport_js_1.resolvePointerImportOfConfig)(configValue, interfaceFile.filePath, userRootDir, configDef.env, configName);
|
|
645
648
|
if (resolved) {
|
|
646
649
|
const configValueSource = {
|
|
647
|
-
|
|
650
|
+
...configValueSourceCommon,
|
|
648
651
|
configEnv: resolved.configEnvResolved,
|
|
649
652
|
valueIsImportedAtRuntime: true,
|
|
650
653
|
valueIsDefinedByPlusFile: false,
|
|
@@ -652,7 +655,7 @@ async function getConfigValueSource(configName, interfaceFile, configDef, userRo
|
|
|
652
655
|
definedAtFilePath: resolved.pointerImport
|
|
653
656
|
};
|
|
654
657
|
// Load pointer import
|
|
655
|
-
if (
|
|
658
|
+
if (shouldBeLoadableAtBuildTime(configDef) &&
|
|
656
659
|
// The value of `extends` was already loaded and already used: we don't need the value of `extends` anymore
|
|
657
660
|
configName !== 'extends') {
|
|
658
661
|
if (resolved.pointerImport.filePathAbsoluteFilesystem) {
|
|
@@ -668,7 +671,7 @@ async function getConfigValueSource(configName, interfaceFile, configDef, userRo
|
|
|
668
671
|
}
|
|
669
672
|
// Defined inside +config.js
|
|
670
673
|
const configValueSource = {
|
|
671
|
-
|
|
674
|
+
...configValueSourceCommon,
|
|
672
675
|
value: configValue,
|
|
673
676
|
configEnv: configDef.env,
|
|
674
677
|
valueIsImportedAtRuntime: false,
|
|
@@ -684,7 +687,7 @@ async function getConfigValueSource(configName, interfaceFile, configDef, userRo
|
|
|
684
687
|
const valueAlreadyLoaded = 'configValue' in conf;
|
|
685
688
|
(0, utils_js_1.assert)(valueAlreadyLoaded === !!configEnvResolved.config);
|
|
686
689
|
const configValueSource = {
|
|
687
|
-
|
|
690
|
+
...configValueSourceCommon,
|
|
688
691
|
configEnv: configEnvResolved,
|
|
689
692
|
valueIsImportedAtRuntime: !valueAlreadyLoaded,
|
|
690
693
|
valueIsDefinedByPlusFile: true,
|
|
@@ -1042,7 +1045,7 @@ function getConfigDefinition(configDefinitions, configName, filePathToShowToUser
|
|
|
1042
1045
|
function getConfigDefinitionOptional(configDefinitions, configName) {
|
|
1043
1046
|
return configDefinitions[configName] ?? null;
|
|
1044
1047
|
}
|
|
1045
|
-
function
|
|
1048
|
+
function shouldBeLoadableAtBuildTime(configDef) {
|
|
1046
1049
|
return !!configDef.env.config && !configDef._valueIsFilePath;
|
|
1047
1050
|
}
|
|
1048
1051
|
function isGlobalConfig(configName) {
|
|
@@ -1052,6 +1055,17 @@ function isGlobalConfig(configName) {
|
|
|
1052
1055
|
const configNamesGlobal = getConfigNamesGlobal();
|
|
1053
1056
|
return (0, utils_js_1.includes)(configNamesGlobal, configName);
|
|
1054
1057
|
}
|
|
1058
|
+
/*
|
|
1059
|
+
// TODO/now
|
|
1060
|
+
function isGlobalConfig(configName: string, configDefinitions: ConfigDefinitions): configName is ConfigNameGlobal {
|
|
1061
|
+
const configSpec = configDefinitions[configName]
|
|
1062
|
+
assert(configSpec)
|
|
1063
|
+
const globalValue = configSpec.global
|
|
1064
|
+
if (!globalValue) return false
|
|
1065
|
+
if (globalValue === true ) return true
|
|
1066
|
+
return globalValue(value)
|
|
1067
|
+
}
|
|
1068
|
+
*/
|
|
1055
1069
|
function getConfigNamesGlobal() {
|
|
1056
1070
|
return Object.keys(configDefinitionsBuiltInGlobal);
|
|
1057
1071
|
}
|
|
@@ -1087,35 +1101,3 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
|
|
|
1087
1101
|
function getConfigValueInterfaceFile(interfaceFile, configName) {
|
|
1088
1102
|
return interfaceFile.fileExportsByConfigName[configName]?.configValue;
|
|
1089
1103
|
}
|
|
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
|
@@ -24,7 +24,9 @@ async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
|
|
|
24
24
|
const { pageConfigs } = vikeConfig;
|
|
25
25
|
const pageConfig = pageConfigs.find((pageConfig) => pageConfig.pageId === pageId);
|
|
26
26
|
(0, utils_js_1.assert)(pageConfig, { id, pageId });
|
|
27
|
-
const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId,
|
|
27
|
+
const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId,
|
|
28
|
+
// TODO/now: add meta.default
|
|
29
|
+
vikeConfig.global.config.includeAssetsImportedByServer ?? true, isDev);
|
|
28
30
|
(0, debug_js_1.debug)(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
|
|
29
31
|
return code;
|
|
30
32
|
}
|
|
@@ -28,12 +28,13 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
|
|
|
28
28
|
const lines = [];
|
|
29
29
|
pageConfigs.forEach((pageConfig) => {
|
|
30
30
|
const { pageId, routeFilesystem, isErrorPage } = pageConfig;
|
|
31
|
-
const virtualFileIdPageConfigValuesAll = (0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageId, isForClientSide);
|
|
32
31
|
lines.push(` {`);
|
|
33
32
|
lines.push(` pageId: ${JSON.stringify(pageId)},`);
|
|
34
33
|
lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
|
|
35
34
|
lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
|
|
36
|
-
|
|
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},`);
|
|
37
38
|
lines.push(` configValuesSerialized: {`);
|
|
38
39
|
lines.push(...(0, serializeConfigValues_js_1.serializeConfigValues)(pageConfig, importStatements, (configEnv) => (0, isRuntimeEnvMatch_js_1.isRuntimeEnvMatch)(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true));
|
|
39
40
|
lines.push(` },`);
|
|
@@ -12,7 +12,7 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
12
12
|
const index_js_1 = require("./devConfig/index.js");
|
|
13
13
|
function previewConfig() {
|
|
14
14
|
let config;
|
|
15
|
-
// let
|
|
15
|
+
// let vikeConfig: VikeConfigObject
|
|
16
16
|
return {
|
|
17
17
|
name: 'vike:previewConfig',
|
|
18
18
|
apply: utils_js_1.applyPreview,
|
|
@@ -27,8 +27,7 @@ function previewConfig() {
|
|
|
27
27
|
async configResolved(config_) {
|
|
28
28
|
config = config_;
|
|
29
29
|
(0, index_js_1.logDockerHint)(config.preview.host);
|
|
30
|
-
//
|
|
31
|
-
// vikeConfigGlobal = vikeConfig.vikeConfigGlobal
|
|
30
|
+
// vikeConfig = await getVikeConfig(config)
|
|
32
31
|
},
|
|
33
32
|
configurePreviewServer(server) {
|
|
34
33
|
/* - Couldn't make `appType: 'mpa'` work as of npm:@brillout/vite@5.0.0-beta.14.0426910c
|
|
@@ -38,7 +37,7 @@ function previewConfig() {
|
|
|
38
37
|
return () => {
|
|
39
38
|
assertDist();
|
|
40
39
|
/* We don't use this condition (we wrongfully always use the SSR middleware) because of the regression introduced by https://github.com/vitejs/vite/pull/14756 which stops servering .html files when `appType: 'custom'`.
|
|
41
|
-
if (!
|
|
40
|
+
if (!vikeConfig.global.config.prerender || vikeConfig.global.config.prerender.partial) {
|
|
42
41
|
addSsrMiddleware(server.middlewares, config, true)
|
|
43
42
|
}
|
|
44
43
|
/*/
|
|
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
// We call onLoad() here so that it's called even when only a subset of the plugin is loaded. (Making the assert() calls inside onLoad() a lot stronger.)
|
|
19
19
|
const onLoad_js_1 = require("./onLoad.js");
|
|
20
20
|
(0, onLoad_js_1.onLoad)();
|
|
21
|
-
//
|
|
21
|
+
// It's common practice for Vike's Vite plugin to import from Vike's sever runtime
|
|
22
22
|
__exportStar(require("../runtime/utils.js"), exports);
|
|
23
23
|
// Utils only needed by `plugin/*`
|
|
24
24
|
__exportStar(require("../../utils/viteIsSSR.js"), exports);
|
|
@@ -0,0 +1,26 @@
|
|
|
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 resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
|
|
9
|
+
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('prerender/context.ts', {});
|
|
10
|
+
function isPrerenderAutoRunEnabled(vikeConfig) {
|
|
11
|
+
const prerenderConfig = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfig)(vikeConfig.global.config.prerender);
|
|
12
|
+
return (prerenderConfig &&
|
|
13
|
+
!prerenderConfig.disableAutoRun &&
|
|
14
|
+
!globalObject.isDisabled &&
|
|
15
|
+
vikeConfig.global.config.disableAutoFullBuild !== 'prerender');
|
|
16
|
+
}
|
|
17
|
+
// TODO/v1-release: remove
|
|
18
|
+
function temp_disablePrerenderAutoRun() {
|
|
19
|
+
globalObject.isDisabled = true;
|
|
20
|
+
}
|
|
21
|
+
function isPrerendering() {
|
|
22
|
+
return !!globalObject.isPrerendering;
|
|
23
|
+
}
|
|
24
|
+
function setContextIsPrerendering() {
|
|
25
|
+
globalObject.isPrerendering = true;
|
|
26
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePrerenderConfig = resolvePrerenderConfig;
|
|
4
|
+
// TODO/now:
|
|
5
|
+
// - prerender.value
|
|
6
|
+
// - correct isPrerendering
|
|
7
|
+
function resolvePrerenderConfig(prerenderConfigs) {
|
|
8
|
+
if (!prerenderConfigs || prerenderConfigs.every((configVal) => !configVal)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const prerenderSettings = prerenderConfigs.filter(isObject2);
|
|
12
|
+
const prerenderConfig = {
|
|
13
|
+
partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
|
|
14
|
+
noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
|
|
15
|
+
parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
|
|
16
|
+
disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
|
|
17
|
+
};
|
|
18
|
+
return prerenderConfig;
|
|
19
|
+
}
|
|
20
|
+
function isObject2(p) {
|
|
21
|
+
return typeof p === 'object';
|
|
22
|
+
}
|
|
23
|
+
function pickFirst(arr) {
|
|
24
|
+
return arr.filter((v) => v !== undefined)[0];
|
|
25
|
+
}
|