vike 0.4.236-commit-eab75f6 → 0.4.237-commit-85e89b1
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/client/runtime-client-routing/globalContext.js +2 -2
- package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +5 -7
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/prerender/runPrerender.js +4 -4
- package/dist/cjs/node/runtime/globalContext.js +21 -22
- package/dist/cjs/node/runtime/html/serializeContext.js +8 -47
- package/dist/cjs/node/runtime/html/stream.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -6
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +5 -34
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +22 -9
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -3
- package/dist/cjs/node/runtime/renderPage.js +7 -6
- package/dist/cjs/node/shared/virtualFileId.js +110 -0
- package/dist/cjs/node/vite/index.js +3 -3
- package/dist/cjs/node/vite/onLoad.js +5 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +10 -10
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +1 -0
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -11
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +4 -10
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +46 -44
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +5 -12
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +5 -5
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +5 -1
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +2 -6
- package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +5 -12
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +7 -9
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -12
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +14 -12
- package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
- package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/cjs/node/vite/shared/getMagicString.js +1 -1
- package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/cjs/node/vite/shared/isViteServerBuild.js +54 -31
- package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
- package/dist/cjs/shared/createGlobalContextShared.js +23 -10
- package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
- package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +15 -16
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/cast.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +12 -12
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
- package/dist/esm/client/runtime-client-routing/globalContext.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
- package/dist/esm/client/runtime-client-routing/history.js +39 -22
- package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
- package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +4 -4
- package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
- package/dist/esm/client/runtime-client-routing/utils.js +2 -0
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +3 -3
- package/dist/esm/client/runtime-server-routing/globalContext.d.ts +2 -2
- package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +3 -3
- package/dist/esm/client/shared/createGetGlobalContextClient.js +5 -7
- package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +9 -9
- package/dist/esm/node/prerender/runPrerender.js +4 -4
- package/dist/esm/node/runtime/globalContext.d.ts +10 -10
- package/dist/esm/node/runtime/globalContext.js +21 -22
- package/dist/esm/node/runtime/html/serializeContext.d.ts +8 -3
- package/dist/esm/node/runtime/html/serializeContext.js +8 -47
- package/dist/esm/node/runtime/html/stream.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -7
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -33
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +25 -12
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +10 -11
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -3
- package/dist/esm/node/runtime/renderPage.d.ts +3 -2
- package/dist/esm/node/runtime/renderPage.js +7 -6
- package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
- package/dist/esm/node/shared/virtualFileId.js +107 -0
- package/dist/esm/node/vite/index.js +3 -3
- package/dist/esm/node/vite/onLoad.js +5 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +2 -2
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +11 -11
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +1 -0
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -12
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -8
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +47 -45
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
- package/dist/esm/node/vite/plugins/pluginExtractAssets.js +4 -4
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +2 -6
- package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +7 -9
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -12
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +14 -12
- package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
- package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
- package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/esm/node/vite/shared/getMagicString.js +1 -1
- package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
- package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
- package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
- package/dist/esm/node/vite/shared/isViteServerBuild.js +55 -31
- package/dist/esm/node/vite/shared/loggerVite.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
- package/dist/esm/shared/createGlobalContextShared.d.ts +6 -6
- package/dist/esm/shared/createGlobalContextShared.js +25 -12
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/hooks/execHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
- package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
- package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +15 -16
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/Config.d.ts +33 -98
- package/dist/esm/types/PageConfig.d.ts +9 -7
- package/dist/esm/types/VikeNamespace.d.ts +13 -0
- package/dist/esm/types/index.d.ts +3 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/cast.d.ts +2 -2
- package/dist/esm/utils/cast.js +1 -1
- package/dist/esm/utils/objectFilter.d.ts +1 -1
- package/package.json +3 -3
- package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -31
- package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -45
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
- package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -11
- package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -28
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -43
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -9
- package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
- package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
- package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
|
@@ -25,16 +25,16 @@ export { vikeConfigErrorRecoverMsg };
|
|
|
25
25
|
// - setGlobalContext_isProduction => setGlobalContext_isProductionEnvironment
|
|
26
26
|
// - sProductionEnvironment => sDevEnv
|
|
27
27
|
// The core logic revolves around:
|
|
28
|
-
// -
|
|
28
|
+
// - virtualFileExportsGlobalEntry is the main requirement
|
|
29
29
|
// - In production: globalObject.buildEntry which is the production entry set by @brillout/vite-plugin-server-entry
|
|
30
|
-
// - loadBuildEntry() sets globalObject.buildEntry and then sets
|
|
30
|
+
// - loadBuildEntry() sets globalObject.buildEntry and then sets virtualFileExportsGlobalEntry
|
|
31
31
|
// - With vike-server it's set at server start: @brillout/vite-plugin-server-entry injects `import './entry.mjs'` (the production entry generated by @brillout/vite-plugin-server-entry) as first line of code of dist/server/index.mjs while dist/server/entry.mjs calls setGlobalContext_buildEntry()
|
|
32
32
|
// - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
|
|
33
33
|
// - In development: globalObject.viteDevServer which is Vite's development server
|
|
34
|
-
// - globalObject.viteDevServer is used by updateUserFiles() which then sets
|
|
34
|
+
// - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExportsGlobalEntry
|
|
35
35
|
import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, isRunnableDevEnvironment, assertIsNotBrowser, } from './utils.js';
|
|
36
36
|
import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
|
|
37
|
-
import {
|
|
37
|
+
import { virtualFileIdGlobalEntryServer } from '../shared/virtualFileId.js';
|
|
38
38
|
import pc from '@brillout/picocolors';
|
|
39
39
|
import { loadPageRoutes, loadPageRoutesSync } from '../../shared/route/loadPageRoutes.js';
|
|
40
40
|
import { assertV1Design } from '../shared/assertV1Design.js';
|
|
@@ -159,15 +159,14 @@ function setGlobalContext_isPrerendering() {
|
|
|
159
159
|
globalObject.isPrerendering = true;
|
|
160
160
|
setIsProduction(true);
|
|
161
161
|
}
|
|
162
|
-
|
|
163
|
-
function setGlobalContext_isProduction(isProduction, tolerateContraditction = false) {
|
|
162
|
+
function setGlobalContext_isProduction(isProduction, tolerateContradiction = false) {
|
|
164
163
|
if (debug.isActivated)
|
|
165
|
-
debug('setGlobalContext_isProduction()', { isProduction,
|
|
164
|
+
debug('setGlobalContext_isProduction()', { isProduction, tolerateContradiction });
|
|
166
165
|
if (globalObject.isProduction === undefined) {
|
|
167
166
|
setIsProduction(isProduction);
|
|
168
167
|
}
|
|
169
168
|
else {
|
|
170
|
-
assert(globalObject.isProduction === isProduction ||
|
|
169
|
+
assert(globalObject.isProduction === isProduction || tolerateContradiction);
|
|
171
170
|
}
|
|
172
171
|
}
|
|
173
172
|
function getViteDevServer() {
|
|
@@ -274,7 +273,7 @@ async function loadBuildEntry(outDir) {
|
|
|
274
273
|
assertBuildEntry(buildEntry);
|
|
275
274
|
globalObject.assetsManifest = buildEntry.assetsManifest;
|
|
276
275
|
globalObject.buildInfo = buildEntry.buildInfo;
|
|
277
|
-
await createGlobalContext(buildEntry.
|
|
276
|
+
await createGlobalContext(buildEntry.virtualFileExportsGlobalEntry);
|
|
278
277
|
}
|
|
279
278
|
// This is the production entry, see:
|
|
280
279
|
// https://github.com/vikejs/vike/blob/798e5465dc3e3e6723b38b601a50350c0a006fb8/packages/vike/node/vite/plugins/pluginBuild/pluginBuildEntry.ts#L47
|
|
@@ -291,15 +290,15 @@ async function setGlobalContext_buildEntry(buildEntry) {
|
|
|
291
290
|
}
|
|
292
291
|
function assertBuildEntry(buildEntry) {
|
|
293
292
|
assert(isObject(buildEntry));
|
|
294
|
-
assert(hasProp(buildEntry, '
|
|
295
|
-
const {
|
|
293
|
+
assert(hasProp(buildEntry, 'virtualFileExportsGlobalEntry', 'object'));
|
|
294
|
+
const { virtualFileExportsGlobalEntry } = buildEntry;
|
|
296
295
|
assert(hasProp(buildEntry, 'assetsManifest', 'object'));
|
|
297
296
|
const { assetsManifest } = buildEntry;
|
|
298
297
|
assertViteManifest(assetsManifest);
|
|
299
298
|
assert(hasProp(buildEntry, 'buildInfo', 'object'));
|
|
300
299
|
const { buildInfo } = buildEntry;
|
|
301
300
|
assertBuildInfo(buildInfo);
|
|
302
|
-
checkType({
|
|
301
|
+
checkType({ virtualFileExportsGlobalEntry, assetsManifest, buildInfo });
|
|
303
302
|
}
|
|
304
303
|
function assertBuildInfo(buildInfo) {
|
|
305
304
|
assert(isObject(buildInfo));
|
|
@@ -353,15 +352,15 @@ async function updateUserFiles() {
|
|
|
353
352
|
viteDevServer !== globalObject.viteDevServer;
|
|
354
353
|
const { viteDevServer } = globalObject;
|
|
355
354
|
let hasError = false;
|
|
356
|
-
let
|
|
355
|
+
let virtualFileExportsGlobalEntry;
|
|
357
356
|
let err;
|
|
358
357
|
if (viteDevServer) {
|
|
359
358
|
assert(isRunnable(viteDevServer));
|
|
360
359
|
/* We don't use runner.import() yet, because as of vite@7.0.6 (July 2025) runner.import() unexpectedly invalidates the module graph, which is a unexpected behavior that doesn't happen with ssrLoadModule()
|
|
361
360
|
// Vite 6
|
|
362
361
|
try {
|
|
363
|
-
|
|
364
|
-
'virtual:vike:entry:server',
|
|
362
|
+
virtualFileExportsGlobalEntry = await (viteDevServer.environments.ssr as RunnableDevEnvironment).runner.import(
|
|
363
|
+
'virtual:vike:global-entry:server',
|
|
365
364
|
)
|
|
366
365
|
} catch (err_) {
|
|
367
366
|
hasError = true
|
|
@@ -370,7 +369,7 @@ async function updateUserFiles() {
|
|
|
370
369
|
*/
|
|
371
370
|
// Vite 5
|
|
372
371
|
try {
|
|
373
|
-
|
|
372
|
+
virtualFileExportsGlobalEntry = await viteDevServer.ssrLoadModule(virtualFileIdGlobalEntryServer);
|
|
374
373
|
}
|
|
375
374
|
catch (err_) {
|
|
376
375
|
hasError = true;
|
|
@@ -383,10 +382,10 @@ async function updateUserFiles() {
|
|
|
383
382
|
```js
|
|
384
383
|
assert(false)
|
|
385
384
|
// This line breaks the HMR of regular (runnable) apps, even though (as per the assert() above) it's never run. It seems to be a Vite bug: handleHotUpdate() receives an empty `modules` list.
|
|
386
|
-
import('virtual:vike:entry:server')
|
|
385
|
+
import('virtual:vike:global-entry:server')
|
|
387
386
|
```
|
|
388
387
|
*/
|
|
389
|
-
|
|
388
|
+
virtualFileExportsGlobalEntry = await __VIKE__DYNAMIC_IMPORT('virtual:vike:global-entry:server');
|
|
390
389
|
}
|
|
391
390
|
catch (err_) {
|
|
392
391
|
hasError = true;
|
|
@@ -397,12 +396,12 @@ async function updateUserFiles() {
|
|
|
397
396
|
return { success: false };
|
|
398
397
|
if (hasError)
|
|
399
398
|
return onError(err);
|
|
400
|
-
|
|
399
|
+
virtualFileExportsGlobalEntry = virtualFileExportsGlobalEntry.default || virtualFileExportsGlobalEntry;
|
|
401
400
|
if (getVikeConfigErrorBuild()) {
|
|
402
401
|
return { success: false };
|
|
403
402
|
}
|
|
404
403
|
try {
|
|
405
|
-
await createGlobalContext(
|
|
404
|
+
await createGlobalContext(virtualFileExportsGlobalEntry);
|
|
406
405
|
}
|
|
407
406
|
catch (err_) {
|
|
408
407
|
hasError = true;
|
|
@@ -414,10 +413,10 @@ async function updateUserFiles() {
|
|
|
414
413
|
return onError(err);
|
|
415
414
|
return onSuccess();
|
|
416
415
|
}
|
|
417
|
-
async function createGlobalContext(
|
|
416
|
+
async function createGlobalContext(virtualFileExportsGlobalEntry) {
|
|
418
417
|
debug('createGlobalContext()');
|
|
419
418
|
assert(!getVikeConfigErrorBuild());
|
|
420
|
-
const globalContext = await createGlobalContextShared(
|
|
419
|
+
const globalContext = await createGlobalContextShared(virtualFileExportsGlobalEntry, globalObject, addGlobalContext, addGlobalContextTmp, addGlobalContextAsync);
|
|
421
420
|
assertV1Design(
|
|
422
421
|
// pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
|
|
423
422
|
globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
|
|
@@ -3,9 +3,12 @@ export { getPageContextClientSerializedAbort };
|
|
|
3
3
|
export { getGlobalContextClientSerialized };
|
|
4
4
|
export type { PageContextSerialization };
|
|
5
5
|
export type { PassToClient };
|
|
6
|
+
export type { PassToClientPublic };
|
|
6
7
|
import type { UrlRedirect } from '../../../shared/route/abort.js';
|
|
7
8
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
8
|
-
type
|
|
9
|
+
import type { PageContextCreated } from '../renderPage/createPageContextServerSide.js';
|
|
10
|
+
import type { PageContextBegin } from '../renderPage.js';
|
|
11
|
+
type PageContextSerialization = PageContextCreated & {
|
|
9
12
|
pageId: string;
|
|
10
13
|
routeParams: Record<string, string>;
|
|
11
14
|
_passToClient: PassToClient;
|
|
@@ -13,12 +16,14 @@ type PageContextSerialization = {
|
|
|
13
16
|
pageProps?: Record<string, unknown>;
|
|
14
17
|
_pageContextInit: Record<string, unknown>;
|
|
15
18
|
_globalContext: GlobalContextServerInternal;
|
|
16
|
-
|
|
19
|
+
_isPageContextJsonRequest: null | PageContextBegin['_isPageContextJsonRequest'];
|
|
17
20
|
};
|
|
18
21
|
declare function getPageContextClientSerialized(pageContext: PageContextSerialization, isHtmlJsonScript: boolean): string;
|
|
19
22
|
declare function getGlobalContextClientSerialized(pageContext: PageContextSerialization, isHtmlJsonScript: boolean): string;
|
|
20
|
-
type PassToClient =
|
|
23
|
+
type PassToClient = string[];
|
|
24
|
+
type PassToClientPublic = (string | {
|
|
21
25
|
prop: string;
|
|
26
|
+
/** @deprecated The passToClient once setting is deprecated and no longer has any effect. Instead, see the upcoming .once.js suffix (see https://github.com/vikejs/vike/issues/2566 for more information). */
|
|
22
27
|
once?: boolean;
|
|
23
28
|
})[];
|
|
24
29
|
declare function getPageContextClientSerializedAbort(pageContext: Record<string, unknown> & ({
|
|
@@ -27,41 +27,24 @@ const passToClientBuiltInPageContext = [
|
|
|
27
27
|
const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError];
|
|
28
28
|
function getPageContextClientSerialized(pageContext, isHtmlJsonScript) {
|
|
29
29
|
const passToClientPageContext = getPassToClientPageContext(pageContext);
|
|
30
|
-
const
|
|
31
|
-
if (passToClientEntry.once)
|
|
32
|
-
return undefined; // pass it to client-side globalContext
|
|
33
|
-
return { obj: pageContext, objName: 'pageContext' };
|
|
34
|
-
};
|
|
35
|
-
const res = applyPassToClient(passToClientPageContext, getObj);
|
|
30
|
+
const res = applyPassToClient(passToClientPageContext, pageContext);
|
|
36
31
|
const pageContextClient = res.objClient;
|
|
37
32
|
const pageContextClientProps = res.objClientProps;
|
|
38
33
|
if (pageContextClientProps.some((prop) => getPropVal(pageContext._pageContextInit, prop))) {
|
|
39
34
|
pageContextClient[pageContextInitIsPassedToClient] = true;
|
|
40
35
|
}
|
|
41
|
-
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext,
|
|
36
|
+
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, 'pageContext', isHtmlJsonScript);
|
|
42
37
|
return pageContextClientSerialized;
|
|
43
38
|
}
|
|
44
39
|
function getGlobalContextClientSerialized(pageContext, isHtmlJsonScript) {
|
|
45
40
|
const passToClient = pageContext._passToClient;
|
|
46
41
|
const globalContext = pageContext._globalContext;
|
|
47
|
-
const
|
|
48
|
-
if (once && getPropVal(pageContext, prop)) {
|
|
49
|
-
assert(typeof pageContext.isClientSideNavigation === 'boolean');
|
|
50
|
-
if (!pageContext.isClientSideNavigation) {
|
|
51
|
-
return { obj: pageContext, objName: 'pageContext' }; // pass it to client-side globalContext
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
return undefined; // already passed to client-side
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return { obj: globalContext, objName: 'globalContext' };
|
|
58
|
-
};
|
|
59
|
-
const res = applyPassToClient(passToClient, getObj);
|
|
42
|
+
const res = applyPassToClient(passToClient, globalContext);
|
|
60
43
|
const globalContextClient = res.objClient;
|
|
61
|
-
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient,
|
|
44
|
+
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, 'globalContext', isHtmlJsonScript);
|
|
62
45
|
return globalContextClientSerialized;
|
|
63
46
|
}
|
|
64
|
-
function serializeObject(obj, passToClient,
|
|
47
|
+
function serializeObject(obj, passToClient, objName, isHtmlJsonScript) {
|
|
65
48
|
let serialized;
|
|
66
49
|
try {
|
|
67
50
|
serialized = serializeValue(obj, isHtmlJsonScript);
|
|
@@ -70,15 +53,11 @@ function serializeObject(obj, passToClient, getObj, isHtmlJsonScript) {
|
|
|
70
53
|
const h = (s) => pc.cyan(s);
|
|
71
54
|
let hasWarned = false;
|
|
72
55
|
const propsNonSerializable = [];
|
|
73
|
-
passToClient.forEach((
|
|
74
|
-
const entryNormalized = normalizePassToClientEntry(entry);
|
|
75
|
-
const { prop } = entryNormalized;
|
|
56
|
+
passToClient.forEach((prop) => {
|
|
76
57
|
const res = getPropVal(obj, prop);
|
|
77
58
|
if (!res)
|
|
78
59
|
return;
|
|
79
60
|
const { value } = res;
|
|
80
|
-
const { objName } = getObj(entryNormalized) ?? {};
|
|
81
|
-
assert(objName);
|
|
82
61
|
const varName = `${objName}${getPropKeys(prop).map(getPropAccessNotation).join('')}`;
|
|
83
62
|
try {
|
|
84
63
|
serializeValue(value, isHtmlJsonScript, varName);
|
|
@@ -188,15 +167,10 @@ function getPageContextClientSerializedAbort(pageContext, isHtmlJsonScript) {
|
|
|
188
167
|
}
|
|
189
168
|
return serializeValue(pageContext, isHtmlJsonScript);
|
|
190
169
|
}
|
|
191
|
-
function applyPassToClient(passToClient,
|
|
170
|
+
function applyPassToClient(passToClient, obj) {
|
|
192
171
|
const objClient = {};
|
|
193
172
|
const objClientProps = [];
|
|
194
|
-
passToClient.forEach((
|
|
195
|
-
const entryNormalized = normalizePassToClientEntry(entry);
|
|
196
|
-
const { prop } = entryNormalized;
|
|
197
|
-
const { obj } = getObj(entryNormalized) ?? {};
|
|
198
|
-
if (!obj)
|
|
199
|
-
return;
|
|
173
|
+
passToClient.forEach((prop) => {
|
|
200
174
|
// Get value from pageContext
|
|
201
175
|
const res = getPropVal(obj, prop);
|
|
202
176
|
if (!res)
|
|
@@ -208,16 +182,3 @@ function applyPassToClient(passToClient, getObj) {
|
|
|
208
182
|
});
|
|
209
183
|
return { objClient, objClientProps };
|
|
210
184
|
}
|
|
211
|
-
function normalizePassToClientEntry(entry) {
|
|
212
|
-
let once;
|
|
213
|
-
let prop;
|
|
214
|
-
if (typeof entry === 'string') {
|
|
215
|
-
prop = entry;
|
|
216
|
-
once = false;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
prop = entry.prop;
|
|
220
|
-
once = entry.once ?? false;
|
|
221
|
-
}
|
|
222
|
-
return { prop, once };
|
|
223
|
-
}
|
|
@@ -522,8 +522,8 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
|
|
|
522
522
|
const closeStream = async () => {
|
|
523
523
|
if (isClosed)
|
|
524
524
|
return;
|
|
525
|
-
isClosed = true;
|
|
526
525
|
await onEnd(isCancel);
|
|
526
|
+
isClosed = true;
|
|
527
527
|
controllerProxy.close();
|
|
528
528
|
};
|
|
529
529
|
let controllerProxy;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { analyzePage };
|
|
2
2
|
import { getVikeClientEntry } from '../../../shared/getPageFiles/analyzePageClientSide/determineClientEntry.js';
|
|
3
3
|
import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
4
|
-
import {
|
|
4
|
+
import { generateVirtualFileId } from '../../shared/virtualFileId.js';
|
|
5
5
|
import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
|
|
6
6
|
import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValueRuntime.js';
|
|
7
7
|
async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
@@ -15,14 +15,14 @@ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
|
15
15
|
clientEntries.push(getVikeClientEntry(isClientRouting));
|
|
16
16
|
const clientDependencies = [];
|
|
17
17
|
clientDependencies.push({
|
|
18
|
-
id:
|
|
18
|
+
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: true }),
|
|
19
19
|
onlyAssets: isClientRuntimeLoaded ? false : true,
|
|
20
20
|
eagerlyImported: false,
|
|
21
21
|
});
|
|
22
22
|
// In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
|
|
23
23
|
if (!globalContext._isProduction) {
|
|
24
24
|
clientDependencies.push({
|
|
25
|
-
id:
|
|
25
|
+
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: false }),
|
|
26
26
|
onlyAssets: true,
|
|
27
27
|
eagerlyImported: false,
|
|
28
28
|
});
|
|
@@ -4,7 +4,7 @@ export type { PageContextCreated };
|
|
|
4
4
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
5
5
|
import type { PageContextInit } from '../renderPage.js';
|
|
6
6
|
type PageContextCreated = Awaited<ReturnType<typeof createPageContextServerSide>>;
|
|
7
|
-
declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal,
|
|
7
|
+
declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, args: {
|
|
8
8
|
isPrerendering: false;
|
|
9
9
|
ssr: {
|
|
10
10
|
urlHandler: null | ((url: string) => string);
|
|
@@ -26,7 +26,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
26
26
|
_globalContext: {
|
|
27
27
|
isGlobalContext: true;
|
|
28
28
|
_isOriginalObject: true;
|
|
29
|
-
|
|
29
|
+
_virtualFileExportsGlobalEntry: unknown;
|
|
30
30
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
31
31
|
_pageConfigs: import("../../../types/PageConfig.js").PageConfigRuntime[];
|
|
32
32
|
_pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
@@ -39,7 +39,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
|
|
|
39
39
|
};
|
|
40
40
|
config: import("../../../types/index.js").ConfigResolved;
|
|
41
41
|
pages: {
|
|
42
|
-
[k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").
|
|
42
|
+
[k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
|
|
43
43
|
};
|
|
44
44
|
} & (({
|
|
45
45
|
_isProduction: false;
|
|
@@ -3,12 +3,9 @@ export { createPageContextServerSideWithoutGlobalContext };
|
|
|
3
3
|
import { assert, assertUsage, assertWarning, augmentType, normalizeHeaders, objectAssign } from '../utils.js';
|
|
4
4
|
import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
|
|
5
5
|
import { createPageContextObject, createPageContextShared } from '../../../shared/createPageContextShared.js';
|
|
6
|
-
function createPageContextServerSide(pageContextInit, globalContext,
|
|
7
|
-
urlHandler: null,
|
|
8
|
-
isClientSideNavigation: false,
|
|
9
|
-
}, }) {
|
|
6
|
+
function createPageContextServerSide(pageContextInit, globalContext, args) {
|
|
10
7
|
assert(pageContextInit.urlOriginal);
|
|
11
|
-
const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
|
|
8
|
+
const pageContextCreated = createPageContext(pageContextInit, args.isPrerendering);
|
|
12
9
|
objectAssign(pageContextCreated, {
|
|
13
10
|
_globalContext: globalContext,
|
|
14
11
|
_pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
|
|
@@ -17,8 +14,8 @@ function createPageContextServerSide(pageContextInit, globalContext, { isPrerend
|
|
|
17
14
|
_baseAssets: globalContext.baseAssets,
|
|
18
15
|
_pageContextInit: pageContextInit,
|
|
19
16
|
_urlRewrite: null,
|
|
20
|
-
_urlHandler: urlHandler,
|
|
21
|
-
isClientSideNavigation,
|
|
17
|
+
_urlHandler: args.ssr?.urlHandler ?? null,
|
|
18
|
+
isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
|
|
22
19
|
});
|
|
23
20
|
objectAssign(pageContextCreated, globalContext._vikeConfigPublicGlobal);
|
|
24
21
|
// pageContext.urlParsed
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { execHookServer };
|
|
2
2
|
export type { PageContextExecHookServer };
|
|
3
3
|
import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
|
|
5
5
|
import type { HookName } from '../../../types/Config.js';
|
|
6
|
-
type PageContextExecHookServer =
|
|
6
|
+
type PageContextExecHookServer = VikeConfigPublicPageLazyLoaded & PageContextForPublicUsageServer;
|
|
7
7
|
declare function execHookServer(hookName: HookName, pageContext: PageContextExecHookServer): Promise<(import("../../../shared/hooks/getHook.js").HookLoc & {
|
|
8
8
|
hookFn: (arg: import("../../../shared/preparePageContextForPublicUsage.js").PageContextPrepareMinimum | import("../../../shared/prepareGlobalContextForPublicUsage.js").GlobalContextPrepareMinimum) => unknown;
|
|
9
9
|
hookTimeout: import("../../../shared/hooks/getHook.js").HookTimeout;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { getManifestEntry };
|
|
2
2
|
import { assert, slice, assertIsImportPathNpmPackage } from '../../utils.js';
|
|
3
|
-
import {
|
|
3
|
+
import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
|
|
4
4
|
import { prependEntriesDir } from '../../../shared/prependEntriesDir.js';
|
|
5
5
|
function getManifestEntry(id, assetsManifest) {
|
|
6
6
|
const debugInfo = getDebugInfo(id, assetsManifest);
|
|
@@ -12,7 +12,8 @@ function getManifestEntry(id, assetsManifest) {
|
|
|
12
12
|
return { manifestEntry, manifestKey };
|
|
13
13
|
}
|
|
14
14
|
// Page code importer
|
|
15
|
-
|
|
15
|
+
const virtualFile = parseVirtualFileId(id);
|
|
16
|
+
if (virtualFile && virtualFile.type === 'page-entry') {
|
|
16
17
|
{
|
|
17
18
|
const manifestKey = id;
|
|
18
19
|
const manifestEntry = assetsManifest[manifestKey];
|
|
@@ -22,9 +23,9 @@ function getManifestEntry(id, assetsManifest) {
|
|
|
22
23
|
}
|
|
23
24
|
// Workaround for what seems to be a Vite bug when process.cwd() !== config.root
|
|
24
25
|
// - Manifest key is:
|
|
25
|
-
// ../../virtual:vike:
|
|
26
|
+
// ../../virtual:vike:page-entry:client:/pages/index
|
|
26
27
|
// But it should be this instead:
|
|
27
|
-
// virtual:vike:
|
|
28
|
+
// virtual:vike:page-entry:client:/pages/index
|
|
28
29
|
// - This workaround was implemented to support Vitest running /tests/*
|
|
29
30
|
// - I don't know whether end users actually need this workaround? (I'm not sure what the bug actually is.)
|
|
30
31
|
const manifestKeyEnd = id;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { retrievePageAssetsDev };
|
|
2
|
+
export { setGetClientEntrySrcDev };
|
|
3
|
+
import type { ViteDevServer } from 'vite';
|
|
4
|
+
import type { ClientDependency } from '../../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
5
|
+
import type { GetClientEntrySrcDev } from '../../../vite/shared/getClientEntrySrcDev.js';
|
|
6
|
+
declare function retrievePageAssetsDev(viteDevServer: ViteDevServer, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<{
|
|
7
|
+
clientEntriesSrc: string[];
|
|
8
|
+
assetUrls: string[];
|
|
9
|
+
}>;
|
|
10
|
+
declare function setGetClientEntrySrcDev(getClientEntrySrcDev: GetClientEntrySrcDev): void;
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
export { retrievePageAssetsDev };
|
|
2
|
+
export { setGetClientEntrySrcDev };
|
|
3
|
+
import { assert, getGlobalObject, styleFileRE } from '../../utils.js';
|
|
4
|
+
import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
|
|
5
|
+
const globalObject = getGlobalObject('getPageAssets/retrievePageAssetsDev.ts', {
|
|
6
|
+
// We cannot define getClientEntrySrcDev() in this file because it depends on utils/requireResolve.ts which isn't available in production
|
|
7
|
+
getClientEntrySrcDev: null,
|
|
8
|
+
});
|
|
9
|
+
async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
|
|
10
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.getClientEntrySrcDev(clientEntry, viteDevServer));
|
|
11
|
+
const assetUrls = await getAssetUrls(clientDependencies, viteDevServer);
|
|
12
|
+
return { clientEntriesSrc, assetUrls };
|
|
13
|
+
}
|
|
14
|
+
function setGetClientEntrySrcDev(getClientEntrySrcDev) {
|
|
15
|
+
globalObject.getClientEntrySrcDev = getClientEntrySrcDev;
|
|
16
|
+
}
|
|
17
|
+
async function getAssetUrls(clientDependencies, viteDevServer) {
|
|
5
18
|
const assetUrls = new Set();
|
|
6
19
|
await Promise.all(clientDependencies.map(async ({ id }) => {
|
|
7
20
|
if (id.startsWith('@@vike'))
|
|
8
21
|
return; // vike doesn't have any CSS
|
|
9
22
|
assert(id);
|
|
10
|
-
|
|
23
|
+
const virtualFile = parseVirtualFileId(id);
|
|
24
|
+
assert(!virtualFile || virtualFile.type !== 'global-entry');
|
|
11
25
|
const { moduleGraph } = viteDevServer;
|
|
12
26
|
const [_, graphId] = await moduleGraph.resolveUrl(id);
|
|
13
27
|
assert(graphId, { id });
|
|
@@ -34,8 +48,9 @@ function collectCss(mod, styleUrls, visitedModules, importer) {
|
|
|
34
48
|
if (visitedModules.has(mod.url))
|
|
35
49
|
return;
|
|
36
50
|
visitedModules.add(mod.url);
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
const virtualFile = parseVirtualFileId(mod.id || mod.url);
|
|
52
|
+
if (virtualFile && virtualFile.type === 'global-entry')
|
|
53
|
+
return; // virtual:vike:global-entry:server dependency list includes all pages
|
|
39
54
|
if (isStyle(mod) && (!importer || !isStyle(importer))) {
|
|
40
55
|
if (mod.url.startsWith('/')) {
|
|
41
56
|
styleUrls.add(mod.url);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { retrievePageAssetsProd };
|
|
2
|
+
export { resolveIncludeAssetsImportedByServer };
|
|
3
|
+
import type { ViteManifest } from '../../../../types/ViteManifest.js';
|
|
4
|
+
import type { ClientDependency } from '../../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
5
|
+
import type { ConfigResolved } from '../../../../types/index.js';
|
|
6
|
+
declare function retrievePageAssetsProd(assetsManifest: ViteManifest, clientDependencies: ClientDependency[], clientEntries: string[], config: ConfigResolved): {
|
|
7
|
+
clientEntriesSrc: string[];
|
|
8
|
+
assetUrls: string[];
|
|
9
|
+
};
|
|
10
|
+
declare function resolveIncludeAssetsImportedByServer(config: ConfigResolved): boolean;
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { retrievePageAssetsProd };
|
|
2
|
+
export { resolveIncludeAssetsImportedByServer };
|
|
2
3
|
import { assert, isImportPathNpmPackage } from '../../utils.js';
|
|
3
4
|
import { getManifestEntry } from './getManifestEntry.js';
|
|
4
5
|
import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
|
|
5
|
-
function
|
|
6
|
+
function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, config) {
|
|
7
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => getClientEntrySrcProd(clientEntry, assetsManifest));
|
|
8
|
+
const assetUrls = getAssetsUrl(clientDependencies, assetsManifest, config);
|
|
9
|
+
return { clientEntriesSrc, assetUrls };
|
|
10
|
+
}
|
|
11
|
+
function getClientEntrySrcProd(clientEntry, assetsManifest) {
|
|
12
|
+
const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
|
|
13
|
+
assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
14
|
+
let { file } = manifestEntry;
|
|
15
|
+
assert(!file.startsWith('/'));
|
|
16
|
+
return '/' + file;
|
|
17
|
+
}
|
|
18
|
+
function getAssetsUrl(clientDependencies, assetsManifest, config) {
|
|
19
|
+
const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(config);
|
|
6
20
|
let assetUrls = new Set();
|
|
7
21
|
assert(assetsManifest);
|
|
8
22
|
const visistedAssets = new Set();
|
|
@@ -56,3 +70,6 @@ function collectSingleStyle(assetUrls, assetsManifest) {
|
|
|
56
70
|
assetUrls.add(`/${style.file}`);
|
|
57
71
|
}
|
|
58
72
|
}
|
|
73
|
+
function resolveIncludeAssetsImportedByServer(config) {
|
|
74
|
+
return config.includeAssetsImportedByServer ?? true;
|
|
75
|
+
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
export { getPageAssets };
|
|
2
|
-
export { setResolveClientEntriesDev };
|
|
3
|
-
export { resolveIncludeAssetsImportedByServer };
|
|
4
2
|
export type { PageAsset };
|
|
5
3
|
export type { GetPageAssets };
|
|
6
4
|
export type { PageContextGetPageAssets };
|
|
7
5
|
import { type MediaType } from './inferMediaType.js';
|
|
8
6
|
import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
9
7
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
10
|
-
import type { ResolveClientEntriesDev } from '../../vite/shared/resolveClientEntriesDev.js';
|
|
11
|
-
import type { ConfigResolved } from '../../../types/index.js';
|
|
12
8
|
type PageAsset = {
|
|
13
9
|
src: string;
|
|
14
10
|
assetType: null | NonNullable<MediaType>['assetType'];
|
|
@@ -22,5 +18,3 @@ type PageContextGetPageAssets = {
|
|
|
22
18
|
_globalContext: GlobalContextServerInternal;
|
|
23
19
|
};
|
|
24
20
|
declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
|
|
25
|
-
declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
|
|
26
|
-
declare function resolveIncludeAssetsImportedByServer(config: ConfigResolved): boolean;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
export { getPageAssets };
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { assert, prependBase, toPosixPath, unique, getGlobalObject, getViteRPC } from '../utils.js';
|
|
5
|
-
import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
|
|
6
|
-
import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
|
|
2
|
+
import { retrievePageAssetsProd } from './getPageAssets/retrievePageAssetsProd.js';
|
|
3
|
+
import { retrievePageAssetsDev } from './getPageAssets/retrievePageAssetsDev.js';
|
|
7
4
|
import { inferMediaType } from './inferMediaType.js';
|
|
8
|
-
import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
|
|
9
5
|
import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
|
|
10
|
-
|
|
11
|
-
resolveClientEntriesDev: null,
|
|
12
|
-
});
|
|
6
|
+
import { assert, prependBase, toPosixPath, unique, getViteRPC } from '../utils.js';
|
|
13
7
|
async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
14
8
|
const globalContext = pageContext._globalContext;
|
|
15
9
|
const { _isProduction: isProduction } = globalContext;
|
|
@@ -18,7 +12,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
18
12
|
? !globalContext._viteDevServer
|
|
19
13
|
? await getViteRPC().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
|
|
20
14
|
: await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
|
|
21
|
-
: retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries,
|
|
15
|
+
: retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, globalContext.config);
|
|
22
16
|
let pageAssets = [];
|
|
23
17
|
unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
|
|
24
18
|
const { mediaType = null, assetType = null } = inferMediaType(src) || {};
|
|
@@ -52,26 +46,3 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
52
46
|
await sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction);
|
|
53
47
|
return pageAssets;
|
|
54
48
|
}
|
|
55
|
-
async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
|
|
56
|
-
const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
|
|
57
|
-
const assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
|
|
58
|
-
return { clientEntriesSrc, assetUrls };
|
|
59
|
-
}
|
|
60
|
-
function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, includeAssetsImportedByServer) {
|
|
61
|
-
const clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
|
|
62
|
-
const assetUrls = retrieveAssetsProd(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(includeAssetsImportedByServer));
|
|
63
|
-
return { clientEntriesSrc, assetUrls };
|
|
64
|
-
}
|
|
65
|
-
function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
66
|
-
const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
|
|
67
|
-
assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
68
|
-
let { file } = manifestEntry;
|
|
69
|
-
assert(!file.startsWith('/'));
|
|
70
|
-
return '/' + file;
|
|
71
|
-
}
|
|
72
|
-
function setResolveClientEntriesDev(resolveClientEntriesDev) {
|
|
73
|
-
globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
|
|
74
|
-
}
|
|
75
|
-
function resolveIncludeAssetsImportedByServer(config) {
|
|
76
|
-
return config.includeAssetsImportedByServer ?? true;
|
|
77
|
-
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { handleErrorWithoutErrorPage };
|
|
2
2
|
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
3
3
|
import type { PageContextAfterRender } from './renderPageAlreadyRouted.js';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import type { PageContextCreated } from './createPageContextServerSide.js';
|
|
5
|
+
declare function handleErrorWithoutErrorPage<PageContext extends PageContextCreated & {
|
|
6
6
|
errorWhileRendering: null | Error;
|
|
7
7
|
is404: null | boolean;
|
|
8
8
|
pageId: null;
|