vike 0.4.267 → 0.4.268-commit-ca58695
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/RenderErrorPage.js +2 -2
- package/abort.js +2 -2
- package/dist/client/__internal/index.d.ts +3 -0
- package/dist/client/__internal/index.js +4 -0
- package/dist/client/runtime-client-routing/createPageContextClient.d.ts +5 -0
- package/dist/client/runtime-client-routing/getGlobalContextClientInternal.d.ts +5 -0
- package/dist/client/runtime-client-routing/getPageContextFromHooks.d.ts +28 -2
- package/dist/client/runtime-client-routing/getPageContextFromHooks.js +5 -5
- package/dist/client/runtime-client-routing/renderPageClient.d.ts +490 -10
- package/dist/client/runtime-client-routing/renderPageClient.js +149 -43
- package/dist/client/runtime-client-routing/streamedValues.d.ts +5 -0
- package/dist/client/runtime-client-routing/streamedValues.js +23 -0
- package/dist/client/runtime-server-routing/createPageContextClient.d.ts +5 -0
- package/dist/client/runtime-server-routing/entry.js +1 -1
- package/dist/client/runtime-server-routing/getGlobalContextClientInternal.d.ts +5 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.d.ts +5 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.js +2 -0
- package/dist/client/shared/getJsonSerializedInHtml.d.ts +2 -2
- package/dist/client/shared/getJsonSerializedInHtml.js +9 -6
- package/dist/client/shared/loadPageConfigsLazyClientSide.js +0 -4
- package/dist/client/shared/removeFoucBuster.js +14 -3
- package/dist/client/shared/streamedValues/asyncIterable.d.ts +4 -0
- package/dist/client/shared/streamedValues/asyncIterable.js +26 -0
- package/dist/client/shared/streamedValues/lines.d.ts +11 -0
- package/dist/client/shared/streamedValues/lines.js +19 -0
- package/dist/client/shared/streamedValues/promise.d.ts +4 -0
- package/dist/client/shared/streamedValues/promise.js +19 -0
- package/dist/client/shared/streamedValues/readableStream.d.ts +4 -0
- package/dist/client/shared/streamedValues/readableStream.js +44 -0
- package/dist/client/shared/streamedValues/registry.d.ts +21 -0
- package/dist/client/shared/streamedValues/registry.js +40 -0
- package/dist/client/shared/streamedValues.d.ts +7 -0
- package/dist/client/shared/streamedValues.js +82 -0
- package/dist/node/api/dev.js +15 -1
- package/dist/node/api/resolveViteConfigUser.js +2 -2
- package/dist/node/api/serverEntryDev.d.ts +10 -0
- package/dist/node/api/serverEntryDev.js +125 -0
- package/dist/node/createDevMiddleware.js +12 -0
- package/dist/node/prerender/resolvePrerenderConfig.d.ts +1 -1
- package/dist/node/prerender/resolvePrerenderConfig.js +4 -1
- package/dist/node/prerender/runPrerender.d.ts +18 -18
- package/dist/node/prerender/runPrerender.js +61 -16
- package/dist/node/vite/assertEnvVite.js +1 -1
- package/dist/node/vite/index.js +2 -0
- package/dist/node/vite/plugins/build/handleAssetsManifest.js +6 -2
- package/dist/node/vite/plugins/build/pluginBuildApp.js +25 -26
- package/dist/node/vite/plugins/build/pluginBuildConfig.d.ts +2 -2
- package/dist/node/vite/plugins/build/pluginBuildConfig.js +25 -17
- package/dist/node/vite/plugins/build/pluginDistFileNames.js +70 -50
- package/dist/node/vite/plugins/build/pluginEnvironmentEntries.d.ts +6 -0
- package/dist/node/vite/plugins/build/pluginEnvironmentEntries.js +71 -0
- package/dist/node/vite/plugins/build/pluginSuppressRollupWarning.js +19 -17
- package/dist/node/vite/plugins/pluginCommon.js +10 -7
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.d.ts +2 -2
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.js +6 -2
- package/dist/node/vite/plugins/pluginReplaceConstantsGlobalThis.js +6 -4
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.d.ts +3 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.js +28 -2
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginServerEntryAlias.d.ts +1 -1
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginServerEntryAlias.js +22 -11
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginWrapServerFile.d.ts +4 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginWrapServerFile.js +29 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy.js +29 -5
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -1
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +29 -12
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +3 -2
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +7 -7
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +10 -6
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +5 -11
- package/dist/node/vite/plugins/pluginVirtualFiles.js +20 -0
- package/dist/node/vite/shared/addSsrMiddleware.js +11 -27
- package/dist/node/vite/shared/findPageFiles.d.ts +1 -1
- package/dist/node/vite/shared/findPageFiles.js +1 -11
- package/dist/node/vite/shared/getAssetsDir.d.ts +3 -2
- package/dist/node/vite/shared/getAssetsDir.js +3 -3
- package/dist/node/vite/shared/isViteCli.d.ts +3 -3
- package/dist/node/vite/shared/isViteCli.js +80 -84
- package/dist/node/vite/shared/isViteServerSide.js +2 -7
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.d.ts +6 -4
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.js +17 -6
- package/dist/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +9 -2
- package/dist/node/vite/shared/resolveVikeConfigInternal.d.ts +5 -1
- package/dist/node/vite/shared/resolveVikeConfigInternal.js +86 -13
- package/dist/server/__internal/fetch-deprecated.d.ts +2 -0
- package/dist/server/__internal/fetch-deprecated.js +6 -0
- package/dist/server/__internal/fetch.d.ts +9 -0
- package/dist/server/__internal/fetch.js +5 -0
- package/dist/server/__internal/index.d.ts +4 -0
- package/dist/server/__internal/index.js +8 -0
- package/dist/server/createPageRenderer.d.ts +2 -2
- package/dist/server/createPageRenderer.js +2 -2
- package/dist/server/runtime/createDevMiddleware.js +3 -1
- package/dist/server/runtime/globalContext.d.ts +69 -10
- package/dist/server/runtime/globalContext.js +35 -2
- package/dist/server/runtime/index.d.ts +1 -1
- package/dist/server/runtime/index.js +1 -1
- package/dist/server/runtime/renderPageServer/analyzePage.js +3 -3
- package/dist/server/runtime/renderPageServer/createHttpResponse.d.ts +20 -9
- package/dist/server/runtime/renderPageServer/createHttpResponse.js +34 -21
- package/dist/server/runtime/renderPageServer/createPageContextServer.d.ts +13 -23
- package/dist/server/runtime/renderPageServer/csp.d.ts +2 -1
- package/dist/server/runtime/renderPageServer/csp.js +2 -1
- package/dist/server/runtime/renderPageServer/execHookOnError.js +1 -1
- package/dist/server/runtime/renderPageServer/execHookOnRenderHtml.d.ts +9 -0
- package/dist/server/runtime/renderPageServer/execHookOnRenderHtml.js +21 -9
- package/dist/server/runtime/renderPageServer/getHttpResponseBody.d.ts +2 -2
- package/dist/server/runtime/renderPageServer/getHttpResponseBody.js +19 -12
- package/dist/server/runtime/renderPageServer/getPageContextJson.d.ts +8 -0
- package/dist/server/runtime/renderPageServer/getPageContextJson.js +47 -0
- package/dist/server/runtime/renderPageServer/handleErrorWithoutErrorPage.d.ts +2 -0
- package/dist/server/runtime/renderPageServer/handleErrorWithoutErrorPage.js +1 -1
- package/dist/server/runtime/renderPageServer/handlePageContextRequestUrl.js +2 -2
- package/dist/server/runtime/renderPageServer/headersResponse.d.ts +11 -2
- package/dist/server/runtime/renderPageServer/headersResponse.js +22 -2
- package/dist/server/runtime/renderPageServer/html/injectAssets/getHtmlTags.js +5 -4
- package/dist/server/runtime/renderPageServer/html/injectAssets.d.ts +3 -2
- package/dist/server/runtime/renderPageServer/html/injectAssets.js +7 -1
- package/dist/server/runtime/renderPageServer/html/renderHtml.js +4 -2
- package/dist/server/runtime/renderPageServer/html/serializeContext.d.ts +5 -1
- package/dist/server/runtime/renderPageServer/html/serializeContext.js +12 -9
- package/dist/server/runtime/renderPageServer/html/stream.d.ts +13 -6
- package/dist/server/runtime/renderPageServer/html/stream.js +135 -32
- package/dist/server/runtime/renderPageServer/html/streamedValuesHtml.d.ts +30 -0
- package/dist/server/runtime/renderPageServer/html/streamedValuesHtml.js +92 -0
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +10 -14
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.js +5 -1
- package/dist/server/runtime/renderPageServer/loadPageContextEnvironments.d.ts +15 -0
- package/dist/server/runtime/renderPageServer/loadPageContextEnvironments.js +61 -0
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +320 -55
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.js +21 -12
- package/dist/server/runtime/renderPageServer/streamedValues/asyncIterable.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/asyncIterable.js +12 -0
- package/dist/server/runtime/renderPageServer/streamedValues/lines.d.ts +10 -0
- package/dist/server/runtime/renderPageServer/streamedValues/lines.js +49 -0
- package/dist/server/runtime/renderPageServer/streamedValues/promise.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/promise.js +14 -0
- package/dist/server/runtime/renderPageServer/streamedValues/pump.d.ts +10 -0
- package/dist/server/runtime/renderPageServer/streamedValues/pump.js +67 -0
- package/dist/server/runtime/renderPageServer/streamedValues/readableStream.d.ts +4 -0
- package/dist/server/runtime/renderPageServer/streamedValues/readableStream.js +12 -0
- package/dist/server/runtime/renderPageServer/streamedValues/registry.d.ts +28 -0
- package/dist/server/runtime/renderPageServer/streamedValues/registry.js +33 -0
- package/dist/server/runtime/renderPageServer.d.ts +65 -18
- package/dist/server/runtime/renderPageServer.js +33 -62
- package/dist/server/runtime/universal-middleware/core.d.ts +25 -0
- package/dist/server/runtime/universal-middleware/core.js +167 -0
- package/dist/server/runtime/universal-middleware/deprecated-export.d.ts +3 -0
- package/dist/server/runtime/universal-middleware/deprecated-export.js +10 -0
- package/dist/server/runtime/universal-middleware/getMiddlewaresPipe.d.ts +15 -0
- package/dist/server/runtime/universal-middleware/getMiddlewaresPipe.js +51 -0
- package/dist/server/runtime/universal-middleware/vikeUniversalMiddleware.d.ts +9 -0
- package/dist/server/runtime/universal-middleware/vikeUniversalMiddleware.js +22 -0
- package/dist/shared-server-client/createGlobalContextShared.d.ts +8 -0
- package/dist/shared-server-client/createGlobalContextShared.js +2 -1
- package/dist/shared-server-client/getPageContextPublicShared.js +1 -3
- package/dist/shared-server-client/getPageFiles/parseVirtualFileExportsGlobalEntry.d.ts +8 -0
- package/dist/shared-server-client/getPageFiles/parseVirtualFileExportsGlobalEntry.js +17 -7
- package/dist/shared-server-client/hooks/execHook.d.ts +1 -1
- package/dist/shared-server-client/hooks/execHook.js +2 -2
- package/dist/shared-server-client/page-configs/serialize/serializeConfigValues.js +2 -0
- package/dist/shared-server-client/route/abort.d.ts +1 -1
- package/dist/shared-server-client/route/abort.js +4 -2
- package/dist/shared-server-client/streamedValues.d.ts +22 -0
- package/dist/shared-server-client/streamedValues.js +24 -0
- package/dist/shared-server-node/vike-environments.d.ts +4 -0
- package/dist/shared-server-node/vike-environments.js +10 -0
- package/dist/shared-server-node/virtualFileId.d.ts +7 -5
- package/dist/shared-server-node/virtualFileId.js +42 -42
- package/dist/types/Config.d.ts +11 -3
- package/dist/types/GlobalContext.d.ts +3 -3
- package/dist/types/PageConfig.d.ts +13 -5
- package/dist/types/PageContext.d.ts +18 -10
- package/dist/types/PageContext.js +1 -0
- package/dist/types/Server.d.ts +1 -1
- package/dist/types/VikeNamespace.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/utils/PROJECT_VERSION.js +1 -1
- package/dist/utils/assertViteVersion.d.ts +1 -3
- package/dist/utils/assertViteVersion.js +6 -9
- package/dist/utils/catchInfiniteLoop.js +33 -11
- package/dist/utils/deepEqual.d.ts +2 -1
- package/dist/utils/deepEqual.js +21 -6
- package/dist/utils/getContentTypeFromUrl.d.ts +2 -0
- package/dist/utils/getContentTypeFromUrl.js +39 -0
- package/dist/utils/injectRollupInputs.d.ts +2 -2
- package/dist/utils/injectRollupInputs.js +2 -2
- package/dist/utils/installUncaughtErrorHandlers.js +9 -0
- package/dist/utils/isDev.js +2 -7
- package/dist/utils/parseUrl-extras.js +4 -0
- package/fetch.js +2 -2
- package/modifyUrl.js +2 -2
- package/package.json +42 -26
- package/routing.js +2 -2
- package/universal-middleware.js +2 -2
- package/vike-server.d.ts +14 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginUnwrapProdOptions.d.ts +0 -4
- package/dist/node/vite/plugins/pluginUniversalDeploy/pluginUnwrapProdOptions.js +0 -22
- package/dist/server/runtime/fetch.d.ts +0 -10
- package/dist/server/runtime/fetch.js +0 -5
- package/dist/server/runtime/universal-middleware.d.ts +0 -10
- package/dist/server/runtime/universal-middleware.js +0 -27
- package/dist/shared-server-client/addIs404ToPageProps.d.ts +0 -2
- package/dist/shared-server-client/addIs404ToPageProps.js +0 -17
|
@@ -23,12 +23,6 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
23
23
|
isPrerendering: boolean;
|
|
24
24
|
_requestId: number;
|
|
25
25
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
26
|
-
_nodeDev?: {
|
|
27
|
-
req: import("http").IncomingMessage;
|
|
28
|
-
res: import("http").ServerResponse;
|
|
29
|
-
};
|
|
30
|
-
_reqWeb?: Request;
|
|
31
|
-
} & {
|
|
32
26
|
_globalContext: ({
|
|
33
27
|
config: import("../../../types/index.js").ConfigResolved;
|
|
34
28
|
_source: import("../../../shared-server-client/page-configs/resolveVikeConfigPublic.js").Source;
|
|
@@ -52,6 +46,10 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
52
46
|
_pageFilesAll: import("../../../shared-server-client/getPageFiles.js").PageFile[];
|
|
53
47
|
_pageConfigs: PageConfigRuntime[];
|
|
54
48
|
_pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
49
|
+
_environmentEntries: Record<string, {
|
|
50
|
+
pageConfigs: PageConfigRuntime[];
|
|
51
|
+
pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
52
|
+
} | null>;
|
|
55
53
|
_allPageIds: string[];
|
|
56
54
|
} & (({
|
|
57
55
|
isClientSide: false;
|
|
@@ -61,6 +59,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
61
59
|
_isPrerendering: false;
|
|
62
60
|
assetsManifest: null;
|
|
63
61
|
_viteDevServer: import("vite").ViteDevServer | undefined;
|
|
62
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
64
63
|
viteConfig: import("vite").ResolvedConfig | undefined;
|
|
65
64
|
} | {
|
|
66
65
|
isClientSide: false;
|
|
@@ -69,6 +68,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
69
68
|
_isProduction: true;
|
|
70
69
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
71
70
|
_viteDevServer: null;
|
|
71
|
+
devMiddleware: null;
|
|
72
72
|
_usesClientRouter: boolean;
|
|
73
73
|
_isPrerendering: true;
|
|
74
74
|
viteConfig: import("vite").ResolvedConfig;
|
|
@@ -79,12 +79,11 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
79
79
|
_isProduction: true;
|
|
80
80
|
assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
|
|
81
81
|
_viteDevServer: null;
|
|
82
|
+
devMiddleware: null;
|
|
82
83
|
_usesClientRouter: boolean;
|
|
83
84
|
_isPrerendering: false;
|
|
84
85
|
viteConfig: null;
|
|
85
86
|
}) & {
|
|
86
|
-
baseServer: string;
|
|
87
|
-
baseAssets: string;
|
|
88
87
|
viteConfigRuntime: {
|
|
89
88
|
root: string;
|
|
90
89
|
build: {
|
|
@@ -95,6 +94,9 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
95
94
|
inject: boolean | undefined;
|
|
96
95
|
};
|
|
97
96
|
};
|
|
97
|
+
baseServer: string;
|
|
98
|
+
baseAssets: string;
|
|
99
|
+
middlewares: import("../universal-middleware/core.js").Middleware[];
|
|
98
100
|
})) & {
|
|
99
101
|
prerenderContext: import("../../../types/index.js").PrerenderContext | undefined;
|
|
100
102
|
};
|
|
@@ -102,12 +104,6 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
102
104
|
_baseServer: string;
|
|
103
105
|
_baseAssets: string;
|
|
104
106
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
105
|
-
_nodeDev?: {
|
|
106
|
-
req: import("http").IncomingMessage;
|
|
107
|
-
res: import("http").ServerResponse;
|
|
108
|
-
};
|
|
109
|
-
_reqWeb?: Request;
|
|
110
|
-
} & {
|
|
111
107
|
headers?: Record<string, unknown>;
|
|
112
108
|
};
|
|
113
109
|
_urlHandler: ((url: string) => string) | null;
|
|
@@ -15,6 +15,7 @@ import { loadAndParseVirtualFilePageEntry } from '../../../shared-server-client/
|
|
|
15
15
|
import { execHookServer } from './execHookServer.js';
|
|
16
16
|
import { resolveHeadersResponseEarly } from './headersResponse.js';
|
|
17
17
|
import { resolvePageContextCspNone } from './csp.js';
|
|
18
|
+
import { loadPageContextEnvironments } from './loadPageContextEnvironments.js';
|
|
18
19
|
import '../../assertEnvServer.js';
|
|
19
20
|
async function loadPageConfigsLazyServerSide(pageContext) {
|
|
20
21
|
objectAssign(pageContext, {
|
|
@@ -109,7 +110,7 @@ async function resolvePageContext(pageContext) {
|
|
|
109
110
|
return pageContext;
|
|
110
111
|
}
|
|
111
112
|
async function loadPageUserFiles(pageContext) {
|
|
112
|
-
const [{ pageContextAddendum }] = await Promise.all([
|
|
113
|
+
const [{ pageContextAddendum }, pageContextEnvironments] = await Promise.all([
|
|
113
114
|
(async () => {
|
|
114
115
|
const pageFilesServerSide = getPageFilesServerSide(pageContext._pageFilesAll, pageContext.pageId);
|
|
115
116
|
const isDev = !pageContext._globalContext._isProduction;
|
|
@@ -120,9 +121,12 @@ async function loadPageUserFiles(pageContext) {
|
|
|
120
121
|
const pageContextAddendum = resolvePageContextConfig(pageFilesServerSide, pageConfigLoaded, pageContext._globalContext._pageConfigGlobal);
|
|
121
122
|
return { pageContextAddendum };
|
|
122
123
|
})(),
|
|
124
|
+
pageContext._pageConfig && loadPageContextEnvironments(pageContext),
|
|
123
125
|
analyzePageClientSideInit(pageContext._globalContext._pageFilesAll, pageContext.pageId, {
|
|
124
126
|
sharedPageFilesAlreadyLoaded: true,
|
|
125
127
|
}),
|
|
126
128
|
]);
|
|
129
|
+
if (pageContextEnvironments)
|
|
130
|
+
objectAssign(pageContextAddendum, pageContextEnvironments);
|
|
127
131
|
return pageContextAddendum;
|
|
128
132
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { loadPageContextEnvironments };
|
|
2
|
+
import type { GlobalContextServerInternal } from '../globalContext.js';
|
|
3
|
+
import type { PageContextPublicMinimum } from '../../../shared-server-client/getPageContextPublicShared.js';
|
|
4
|
+
import '../../assertEnvServer.js';
|
|
5
|
+
declare function loadPageContextEnvironments(pageContext: PageContextPublicMinimum & {
|
|
6
|
+
pageId: string;
|
|
7
|
+
_globalContext: GlobalContextServerInternal;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
environments: {
|
|
10
|
+
[k: string]: {
|
|
11
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
12
|
+
pageContext: object;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export { loadPageContextEnvironments };
|
|
2
|
+
import { resolvePageContextConfig } from '../../../shared-server-client/page-configs/resolveVikeConfigPublic.js';
|
|
3
|
+
import { parseGlobalEntryPageConfigs, } from '../../../shared-server-client/getPageFiles/parseVirtualFileExportsGlobalEntry.js';
|
|
4
|
+
import { findPageConfig } from '../../../shared-server-client/page-configs/findPageConfig.js';
|
|
5
|
+
import { loadAndParseVirtualFilePageEntry } from '../../../shared-server-client/page-configs/loadAndParseVirtualFilePageEntry.js';
|
|
6
|
+
import { generateVirtualFileIdAdditionalEnvironment } from '../../../shared-server-node/virtualFileId.js';
|
|
7
|
+
import { isRunnableDevEnvironment } from '../../../utils/isRunnableDevEnvironment.js';
|
|
8
|
+
import { assert, assertUsage } from '../../../utils/assert.js';
|
|
9
|
+
import { getPageContextPublicServer } from './getPageContextPublicServer.js';
|
|
10
|
+
import '../../assertEnvServer.js';
|
|
11
|
+
// Additional environments (e.g. `rsc`) run in the same runtime as the server environment => their functions can be called directly
|
|
12
|
+
// - `pageContext.environments[environmentName]` holds the environment's config values and its view of pageContext, which its functions are called with
|
|
13
|
+
async function loadPageContextEnvironments(pageContext) {
|
|
14
|
+
const environmentEntries = pageContext._globalContext._environmentEntries;
|
|
15
|
+
const environments = Object.fromEntries(await Promise.all(Object.entries(environmentEntries).map(async ([environmentName, environmentEntry]) => {
|
|
16
|
+
const pageContextConfigEnv = await loadPageContextConfig(pageContext, environmentName, environmentEntry);
|
|
17
|
+
const environment = {
|
|
18
|
+
config: pageContextConfigEnv.config,
|
|
19
|
+
pageContext: getPageContextEnvView(getPageContextPublicServer(pageContext), pageContextConfigEnv),
|
|
20
|
+
};
|
|
21
|
+
return [environmentName, environment];
|
|
22
|
+
})));
|
|
23
|
+
const pageContextEnvironments = { environments };
|
|
24
|
+
return pageContextEnvironments;
|
|
25
|
+
}
|
|
26
|
+
// The same pageContext object, except for the config values (and what's derived from them) which are the environment's
|
|
27
|
+
function getPageContextEnvView(pageContext, pageContextConfig) {
|
|
28
|
+
// TO-DO/soon/flat-pageContext make this clean using same mechanism as [Flat `pageContext`](https://github.com/vikejs/vike/issues/1268)
|
|
29
|
+
return new Proxy(pageContext, {
|
|
30
|
+
get(target, prop) {
|
|
31
|
+
if (prop === 'Page')
|
|
32
|
+
return pageContextConfig.exports.Page;
|
|
33
|
+
if (prop in pageContextConfig)
|
|
34
|
+
return pageContextConfig[prop];
|
|
35
|
+
return Reflect.get(target, prop);
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async function loadPageContextConfig(pageContext, environmentName, environmentEntry) {
|
|
40
|
+
const globalContext = pageContext._globalContext;
|
|
41
|
+
const { pageConfigs, pageConfigGlobal } = await importEnvironmentEntry(globalContext, environmentName, environmentEntry);
|
|
42
|
+
const pageConfig = findPageConfig(pageConfigs, pageContext.pageId);
|
|
43
|
+
assert(pageConfig);
|
|
44
|
+
const pageConfigLoaded = await loadAndParseVirtualFilePageEntry(pageConfig, !globalContext._isProduction);
|
|
45
|
+
return resolvePageContextConfig([], pageConfigLoaded, pageConfigGlobal);
|
|
46
|
+
}
|
|
47
|
+
async function importEnvironmentEntry(globalContext, environmentName, environmentEntry) {
|
|
48
|
+
if (environmentEntry) {
|
|
49
|
+
// Prod
|
|
50
|
+
assert(globalContext._isProduction);
|
|
51
|
+
return environmentEntry;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Dev
|
|
55
|
+
assert(!globalContext._isProduction);
|
|
56
|
+
const environment = globalContext._viteDevServer?.environments[environmentName];
|
|
57
|
+
assertUsage(isRunnableDevEnvironment(environment), `The Vike environment ${environmentName} should be a server-side environment running in the same runtime (process or worker) as Vike's server`);
|
|
58
|
+
const virtualFileId = generateVirtualFileIdAdditionalEnvironment(environmentName);
|
|
59
|
+
return parseGlobalEntryPageConfigs(await environment.runner.import(virtualFileId));
|
|
60
|
+
}
|
|
61
|
+
}
|