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
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
// Used by vike:build:pluginProdBuildEntry
|
|
2
2
|
export { setGlobalContext_prodBuildEntry } from '../runtime/globalContext.js';
|
|
3
|
+
// Used by the vike(app) of the @vikejs/* server adapters
|
|
4
|
+
export { getMiddlewaresPipe_nonHandlers, getMiddlewaresPipe_handlers, } from '../runtime/universal-middleware/getMiddlewaresPipe.js';
|
|
5
|
+
// Used by vike-react-rsc
|
|
6
|
+
export { getPageContextJson };
|
|
3
7
|
// Used by vite-plugin-vercel
|
|
4
8
|
export { route, getPagesAndRoutes };
|
|
5
9
|
import { route as routeInternal } from '../../shared-server-client/route/index.js';
|
|
6
10
|
import { getGlobalContextServerInternal, initGlobalContext_getPagesAndRoutes } from '../runtime/globalContext.js';
|
|
7
11
|
import { setNodeEnvProductionIfUndefined } from '../../utils/assertSetup.js';
|
|
12
|
+
import { getPageContextJson as getPageContextJsonInternal } from '../runtime/renderPageServer/getPageContextJson.js';
|
|
8
13
|
import '../assertEnvServer.js';
|
|
9
14
|
/**
|
|
10
15
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
|
|
@@ -30,3 +35,6 @@ async function route(pageContext) {
|
|
|
30
35
|
// Old interface
|
|
31
36
|
return { pageContextAddendum: pageContextFromRoute };
|
|
32
37
|
}
|
|
38
|
+
function getPageContextJson(pageContext) {
|
|
39
|
+
return getPageContextJsonInternal(pageContext);
|
|
40
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createPageRenderer };
|
|
2
|
-
import {
|
|
2
|
+
import { renderPageServer_userLand } from './runtime/renderPageServer.js';
|
|
3
3
|
import './assertEnvServer.js';
|
|
4
4
|
type Options = {
|
|
5
5
|
viteDevServer?: unknown;
|
|
@@ -10,4 +10,4 @@ type Options = {
|
|
|
10
10
|
baseAssets?: string | null;
|
|
11
11
|
};
|
|
12
12
|
/** @deprecated */
|
|
13
|
-
declare function createPageRenderer(options: Options): typeof
|
|
13
|
+
declare function createPageRenderer(options: Options): typeof renderPageServer_userLand;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export { createPageRenderer };
|
|
2
2
|
// TO-DO/next-major-release: remove this file
|
|
3
3
|
//import { SsrEnv, setSsrEnv } from './ssrEnv.js'
|
|
4
|
-
import {
|
|
4
|
+
import { renderPageServer_userLand } from './runtime/renderPageServer.js';
|
|
5
5
|
import { assertWarning } from '../utils/assert.js';
|
|
6
6
|
//import { importBuildWasLoaded } from './importBuild.js'
|
|
7
7
|
import './assertEnvServer.js';
|
|
8
8
|
/** @deprecated */
|
|
9
9
|
function createPageRenderer(options) {
|
|
10
10
|
showWarnings(options);
|
|
11
|
-
return
|
|
11
|
+
return renderPageServer_userLand;
|
|
12
12
|
}
|
|
13
13
|
function showWarnings(options) {
|
|
14
14
|
assertWarning(false, '`createPageRenderer()` is outdated, use `renderPage()` instead. See https://vike.dev/renderPage', { onlyOnce: true, showStackTrace: true });
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { createDevMiddleware_ as createDevMiddleware };
|
|
2
2
|
import '../assertEnvServer.js';
|
|
3
3
|
const createDevMiddleware_ = async (...args) => {
|
|
4
|
-
|
|
4
|
+
let p = '../../node/createDevMiddleware.js';
|
|
5
|
+
// Absolute URL, because on Windows Vite's ssrLoadModule() resolves a relative dynamic import to `D:/...` and then fails to load it (e.g. if `vike` is linked and `$ vike dev` runs +serverEntry.js)
|
|
6
|
+
p = new URL(p, import.meta.url).href;
|
|
5
7
|
const { createDevMiddleware } = await import(/*webpackIgnore: true*/ /* @vite-ignore */ p);
|
|
6
8
|
return createDevMiddleware(...args);
|
|
7
9
|
};
|
|
@@ -54,6 +54,10 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
54
54
|
_pageFilesAll: import("../__internal/index.js").PageFile[];
|
|
55
55
|
_pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
56
56
|
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
57
|
+
_environmentEntries: Record<string, {
|
|
58
|
+
pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
59
|
+
pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
60
|
+
} | null>;
|
|
57
61
|
_allPageIds: string[];
|
|
58
62
|
} & {
|
|
59
63
|
isClientSide: false;
|
|
@@ -63,10 +67,9 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
63
67
|
_isPrerendering: false;
|
|
64
68
|
assetsManifest: null;
|
|
65
69
|
_viteDevServer: ViteDevServer | undefined;
|
|
70
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
66
71
|
viteConfig: ResolvedConfig | undefined;
|
|
67
72
|
} & {
|
|
68
|
-
baseServer: string;
|
|
69
|
-
baseAssets: string;
|
|
70
73
|
viteConfigRuntime: {
|
|
71
74
|
root: string;
|
|
72
75
|
build: {
|
|
@@ -77,6 +80,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
77
80
|
inject: boolean | undefined;
|
|
78
81
|
};
|
|
79
82
|
};
|
|
83
|
+
baseServer: string;
|
|
84
|
+
baseAssets: string;
|
|
85
|
+
/**
|
|
86
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
87
|
+
*
|
|
88
|
+
* https://vike.dev/globalContext#middlewares
|
|
89
|
+
*/
|
|
90
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
80
91
|
} & {
|
|
81
92
|
prerenderContext: PrerenderContext | undefined;
|
|
82
93
|
}) | (Record<string, unknown> & {
|
|
@@ -102,6 +113,10 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
102
113
|
_pageFilesAll: import("../__internal/index.js").PageFile[];
|
|
103
114
|
_pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
104
115
|
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
116
|
+
_environmentEntries: Record<string, {
|
|
117
|
+
pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
118
|
+
pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
119
|
+
} | null>;
|
|
105
120
|
_allPageIds: string[];
|
|
106
121
|
} & {
|
|
107
122
|
isClientSide: false;
|
|
@@ -110,12 +125,11 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
110
125
|
_isProduction: true;
|
|
111
126
|
assetsManifest: ViteManifest;
|
|
112
127
|
_viteDevServer: null;
|
|
128
|
+
devMiddleware: null;
|
|
113
129
|
_usesClientRouter: boolean;
|
|
114
130
|
_isPrerendering: true;
|
|
115
131
|
viteConfig: ResolvedConfig;
|
|
116
132
|
} & {
|
|
117
|
-
baseServer: string;
|
|
118
|
-
baseAssets: string;
|
|
119
133
|
viteConfigRuntime: {
|
|
120
134
|
root: string;
|
|
121
135
|
build: {
|
|
@@ -126,6 +140,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
126
140
|
inject: boolean | undefined;
|
|
127
141
|
};
|
|
128
142
|
};
|
|
143
|
+
baseServer: string;
|
|
144
|
+
baseAssets: string;
|
|
145
|
+
/**
|
|
146
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
147
|
+
*
|
|
148
|
+
* https://vike.dev/globalContext#middlewares
|
|
149
|
+
*/
|
|
150
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
129
151
|
} & {
|
|
130
152
|
prerenderContext: PrerenderContext | undefined;
|
|
131
153
|
}) | (Record<string, unknown> & {
|
|
@@ -151,6 +173,10 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
151
173
|
_pageFilesAll: import("../__internal/index.js").PageFile[];
|
|
152
174
|
_pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
153
175
|
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
176
|
+
_environmentEntries: Record<string, {
|
|
177
|
+
pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
178
|
+
pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
179
|
+
} | null>;
|
|
154
180
|
_allPageIds: string[];
|
|
155
181
|
} & {
|
|
156
182
|
isClientSide: false;
|
|
@@ -159,12 +185,11 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
159
185
|
_isProduction: true;
|
|
160
186
|
assetsManifest: ViteManifest;
|
|
161
187
|
_viteDevServer: null;
|
|
188
|
+
devMiddleware: null;
|
|
162
189
|
_usesClientRouter: boolean;
|
|
163
190
|
_isPrerendering: false;
|
|
164
191
|
viteConfig: null;
|
|
165
192
|
} & {
|
|
166
|
-
baseServer: string;
|
|
167
|
-
baseAssets: string;
|
|
168
193
|
viteConfigRuntime: {
|
|
169
194
|
root: string;
|
|
170
195
|
build: {
|
|
@@ -175,6 +200,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
175
200
|
inject: boolean | undefined;
|
|
176
201
|
};
|
|
177
202
|
};
|
|
203
|
+
baseServer: string;
|
|
204
|
+
baseAssets: string;
|
|
205
|
+
/**
|
|
206
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
207
|
+
*
|
|
208
|
+
* https://vike.dev/globalContext#middlewares
|
|
209
|
+
*/
|
|
210
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
178
211
|
} & {
|
|
179
212
|
prerenderContext: PrerenderContext | undefined;
|
|
180
213
|
});
|
|
@@ -202,6 +235,10 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
202
235
|
_pageFilesAll: import("../__internal/index.js").PageFile[];
|
|
203
236
|
_pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
204
237
|
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
238
|
+
_environmentEntries: Record<string, {
|
|
239
|
+
pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
240
|
+
pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
241
|
+
} | null>;
|
|
205
242
|
_allPageIds: string[];
|
|
206
243
|
} & (({
|
|
207
244
|
isClientSide: false;
|
|
@@ -211,6 +248,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
211
248
|
_isPrerendering: false;
|
|
212
249
|
assetsManifest: null;
|
|
213
250
|
_viteDevServer: ViteDevServer | undefined;
|
|
251
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
214
252
|
viteConfig: ResolvedConfig | undefined;
|
|
215
253
|
} | {
|
|
216
254
|
isClientSide: false;
|
|
@@ -219,6 +257,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
219
257
|
_isProduction: true;
|
|
220
258
|
assetsManifest: ViteManifest;
|
|
221
259
|
_viteDevServer: null;
|
|
260
|
+
devMiddleware: null;
|
|
222
261
|
_usesClientRouter: boolean;
|
|
223
262
|
_isPrerendering: true;
|
|
224
263
|
viteConfig: ResolvedConfig;
|
|
@@ -229,12 +268,11 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
229
268
|
_isProduction: true;
|
|
230
269
|
assetsManifest: ViteManifest;
|
|
231
270
|
_viteDevServer: null;
|
|
271
|
+
devMiddleware: null;
|
|
232
272
|
_usesClientRouter: boolean;
|
|
233
273
|
_isPrerendering: false;
|
|
234
274
|
viteConfig: null;
|
|
235
275
|
}) & {
|
|
236
|
-
baseServer: string;
|
|
237
|
-
baseAssets: string;
|
|
238
276
|
viteConfigRuntime: {
|
|
239
277
|
root: string;
|
|
240
278
|
build: {
|
|
@@ -245,6 +283,14 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
245
283
|
inject: boolean | undefined;
|
|
246
284
|
};
|
|
247
285
|
};
|
|
286
|
+
baseServer: string;
|
|
287
|
+
baseAssets: string;
|
|
288
|
+
/**
|
|
289
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
290
|
+
*
|
|
291
|
+
* https://vike.dev/globalContext#middlewares
|
|
292
|
+
*/
|
|
293
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
248
294
|
})) & {
|
|
249
295
|
prerenderContext: PrerenderContext | undefined;
|
|
250
296
|
})) | null;
|
|
@@ -309,6 +355,10 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
309
355
|
_pageFilesAll: import("../__internal/index.js").PageFile[];
|
|
310
356
|
_pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
311
357
|
_pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
358
|
+
_environmentEntries: Record<string, {
|
|
359
|
+
pageConfigs: import("../__internal/index.js").PageConfig[];
|
|
360
|
+
pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
|
|
361
|
+
} | null>;
|
|
312
362
|
_allPageIds: string[];
|
|
313
363
|
} & (({
|
|
314
364
|
isClientSide: false;
|
|
@@ -318,6 +368,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
318
368
|
_isPrerendering: false;
|
|
319
369
|
assetsManifest: null;
|
|
320
370
|
_viteDevServer: ViteDevServer | undefined;
|
|
371
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
321
372
|
viteConfig: ResolvedConfig | undefined;
|
|
322
373
|
} | {
|
|
323
374
|
isClientSide: false;
|
|
@@ -326,6 +377,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
326
377
|
_isProduction: true;
|
|
327
378
|
assetsManifest: ViteManifest;
|
|
328
379
|
_viteDevServer: null;
|
|
380
|
+
devMiddleware: null;
|
|
329
381
|
_usesClientRouter: boolean;
|
|
330
382
|
_isPrerendering: true;
|
|
331
383
|
viteConfig: ResolvedConfig;
|
|
@@ -336,12 +388,11 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
336
388
|
_isProduction: true;
|
|
337
389
|
assetsManifest: ViteManifest;
|
|
338
390
|
_viteDevServer: null;
|
|
391
|
+
devMiddleware: null;
|
|
339
392
|
_usesClientRouter: boolean;
|
|
340
393
|
_isPrerendering: false;
|
|
341
394
|
viteConfig: null;
|
|
342
395
|
}) & {
|
|
343
|
-
baseServer: string;
|
|
344
|
-
baseAssets: string;
|
|
345
396
|
viteConfigRuntime: {
|
|
346
397
|
root: string;
|
|
347
398
|
build: {
|
|
@@ -352,6 +403,14 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
352
403
|
inject: boolean | undefined;
|
|
353
404
|
};
|
|
354
405
|
};
|
|
406
|
+
baseServer: string;
|
|
407
|
+
baseAssets: string;
|
|
408
|
+
/**
|
|
409
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
410
|
+
*
|
|
411
|
+
* https://vike.dev/globalContext#middlewares
|
|
412
|
+
*/
|
|
413
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
355
414
|
})) & {
|
|
356
415
|
prerenderContext: PrerenderContext | undefined;
|
|
357
416
|
}>;
|
|
@@ -56,6 +56,7 @@ import { logRuntimeError, logRuntimeInfo } from './loggerRuntime.js';
|
|
|
56
56
|
import { debugFileChange, getVikeConfigErrorBuild, setVikeConfigError, } from '../../shared-server-node/getVikeConfigError.js';
|
|
57
57
|
import { getVikeApiOperation } from '../../shared-server-node/api-context.js';
|
|
58
58
|
import { hasAlreadyLogged } from './logErrorServer.js';
|
|
59
|
+
import { getMiddlewares_globalContext } from './universal-middleware/core.js';
|
|
59
60
|
import '../assertEnvServer.js';
|
|
60
61
|
const debug = createDebug('vike:globalContext');
|
|
61
62
|
const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGlobalObject());
|
|
@@ -490,14 +491,18 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
490
491
|
if (!isProduction) {
|
|
491
492
|
assert(globalContext); // main common requirement
|
|
492
493
|
assert(!isPrerendering);
|
|
493
|
-
|
|
494
|
+
const globalContextDev = {
|
|
494
495
|
...globalContextBase,
|
|
495
496
|
_isProduction: false,
|
|
496
497
|
_isPrerendering: false,
|
|
497
498
|
assetsManifest: null,
|
|
498
499
|
_viteDevServer: viteDevServer,
|
|
500
|
+
// https://vike.dev/globalContext#devMiddleware
|
|
501
|
+
devMiddleware: viteDevServer?.middlewares ?? null,
|
|
499
502
|
viteConfig,
|
|
500
503
|
};
|
|
504
|
+
addDevMiddlewareWarning(globalContextDev, viteDevServer);
|
|
505
|
+
return globalContextDev;
|
|
501
506
|
}
|
|
502
507
|
else {
|
|
503
508
|
assert(globalObject.prodBuildEntry);
|
|
@@ -510,6 +515,7 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
510
515
|
_isProduction: true,
|
|
511
516
|
assetsManifest,
|
|
512
517
|
_viteDevServer: null,
|
|
518
|
+
devMiddleware: null,
|
|
513
519
|
_usesClientRouter: buildInfo.usesClientRouter,
|
|
514
520
|
};
|
|
515
521
|
if (isPrerendering) {
|
|
@@ -529,6 +535,25 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
|
|
|
529
535
|
}
|
|
530
536
|
}
|
|
531
537
|
}
|
|
538
|
+
function addDevMiddlewareWarning(globalContext, viteDevServer) {
|
|
539
|
+
if (!viteDevServer)
|
|
540
|
+
return;
|
|
541
|
+
const getMiddlewareMode = () => viteDevServer.config.server.middlewareMode;
|
|
542
|
+
Object.defineProperty(globalContext, 'devMiddleware', {
|
|
543
|
+
get() {
|
|
544
|
+
const middlewareMode = getMiddlewareMode();
|
|
545
|
+
if (!middlewareMode) {
|
|
546
|
+
assertWarning(false, `You don't need ${pc.cyan('globalContext.devMiddleware')} because the development middleware is already installed (Vite's ${pc.cyan('config.server.middlewareMode')} is ${pc.cyan(JSON.stringify(middlewareMode))}) — installing the development middleware twice might hang the server`, { onlyOnce: true });
|
|
547
|
+
}
|
|
548
|
+
return viteDevServer.middlewares;
|
|
549
|
+
},
|
|
550
|
+
enumerable: getMiddlewareMode()
|
|
551
|
+
? true
|
|
552
|
+
: // So that spreading or serializing globalContext doesn't get the warning
|
|
553
|
+
false,
|
|
554
|
+
configurable: true,
|
|
555
|
+
});
|
|
556
|
+
}
|
|
532
557
|
async function addGlobalContextAsync(globalContext) {
|
|
533
558
|
debug('addGlobalContextAsync()');
|
|
534
559
|
let { viteConfigRuntime, buildInfo } = globalObject;
|
|
@@ -545,9 +570,17 @@ async function addGlobalContextAsync(globalContext) {
|
|
|
545
570
|
}
|
|
546
571
|
}
|
|
547
572
|
assert(viteConfigRuntime);
|
|
573
|
+
const { baseServer, baseAssets } = resolveBaseRuntime(viteConfigRuntime, globalContext.config);
|
|
548
574
|
return {
|
|
549
575
|
viteConfigRuntime,
|
|
550
|
-
|
|
576
|
+
baseServer,
|
|
577
|
+
baseAssets,
|
|
578
|
+
/**
|
|
579
|
+
* Every `+middleware` from Vike extensions, as well as Vike's built-in handler that renders pages.
|
|
580
|
+
*
|
|
581
|
+
* https://vike.dev/globalContext#middlewares
|
|
582
|
+
*/
|
|
583
|
+
middlewares: getMiddlewares_globalContext(globalContext, baseServer),
|
|
551
584
|
};
|
|
552
585
|
}
|
|
553
586
|
function clearGlobalContext() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { renderPageServer_userLand as renderPage } from './renderPageServer.js';
|
|
2
2
|
export { escapeInject, dangerouslySkipEscape } from './renderPageServer/html/renderHtml.js';
|
|
3
3
|
export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './renderPageServer/html/stream.js';
|
|
4
4
|
export { PROJECT_VERSION as version } from '../../utils/PROJECT_VERSION.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { renderPageServer_userLand as renderPage } from './renderPageServer.js';
|
|
2
2
|
export { escapeInject, dangerouslySkipEscape } from './renderPageServer/html/renderHtml.js';
|
|
3
3
|
export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './renderPageServer/html/stream.js';
|
|
4
4
|
export { PROJECT_VERSION as version } from '../../utils/PROJECT_VERSION.js';
|
|
@@ -18,14 +18,14 @@ function analyzePage(pageContext) {
|
|
|
18
18
|
clientEntries.push(getVikeClientEntry(isClientRouting));
|
|
19
19
|
const clientDependencies = [];
|
|
20
20
|
clientDependencies.push({
|
|
21
|
-
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId,
|
|
21
|
+
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId, environmentName: 'client' }),
|
|
22
22
|
onlyAssets: isClientRuntimeLoaded ? false : true,
|
|
23
23
|
eagerlyImported: false,
|
|
24
24
|
});
|
|
25
25
|
// In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
|
|
26
26
|
if (!globalContext._isProduction) {
|
|
27
27
|
clientDependencies.push({
|
|
28
|
-
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId,
|
|
28
|
+
id: generateVirtualFileId({ type: 'page-entry', pageId: pageConfig.pageId, environmentName: 'server' }),
|
|
29
29
|
onlyAssets: true,
|
|
30
30
|
eagerlyImported: false,
|
|
31
31
|
});
|
|
@@ -36,7 +36,7 @@ function analyzePage(pageContext) {
|
|
|
36
36
|
const { env } = configElement
|
|
37
37
|
assert(env)
|
|
38
38
|
const onlyAssets = env === { server: true }
|
|
39
|
-
const eagerlyImported = env === { server: true, client:
|
|
39
|
+
const eagerlyImported = env === { server: true, client: true, clientRoutingOnly: true, eager: true }
|
|
40
40
|
if (onlyAssets || eagerlyImported) {
|
|
41
41
|
clientDependencies.push({
|
|
42
42
|
id: configElement.importPath,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createHttpResponsePageHtml };
|
|
2
|
+
export { createHttpResponsePageContent };
|
|
2
3
|
export { createHttpResponsePageJson };
|
|
3
4
|
export { createHttpResponseErrorFallback };
|
|
4
5
|
export { createHttpResponseErrorFallback_noGlobalContext };
|
|
@@ -6,12 +7,12 @@ export { createHttpResponseErrorFallbackJson };
|
|
|
6
7
|
export { createHttpResponseRedirect };
|
|
7
8
|
export { createHttpResponse404 };
|
|
8
9
|
export { createHttpResponseBaseIsMissing };
|
|
9
|
-
export { createHttpResponseFromUniversalMiddleware };
|
|
10
10
|
export type { HttpResponse };
|
|
11
11
|
import type { GetPageAssets } from './getPageAssets.js';
|
|
12
12
|
import type { HtmlRender } from './html/renderHtml.js';
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
13
|
+
import type { StreamReadableWeb } from './html/stream.js';
|
|
14
|
+
import type { Content, RenderHook } from './execHookOnRenderHtml.js';
|
|
15
|
+
import type { AbortStatusCode, UrlRedirect, PageContextAborted } from '../../../shared-server-client/route/abort.js';
|
|
15
16
|
import { HttpResponseBody } from './getHttpResponseBody.js';
|
|
16
17
|
import { type EarlyHint } from './getEarlyHints.js';
|
|
17
18
|
import type { PageContextBegin } from '../renderPageServer.js';
|
|
@@ -24,7 +25,7 @@ type HttpResponse = {
|
|
|
24
25
|
/** **Deprecated**: use `headers` instead, see https://vike.dev/migration/0.4.134 */
|
|
25
26
|
contentType: string | undefined;
|
|
26
27
|
} & HttpResponseBody;
|
|
27
|
-
|
|
28
|
+
type PageContextHttpResponsePage = {
|
|
28
29
|
pageId: null | string;
|
|
29
30
|
is404: null | boolean;
|
|
30
31
|
errorWhileRendering: null | Error;
|
|
@@ -32,14 +33,24 @@ declare function createHttpResponsePage(htmlRender: HtmlRender, renderHook: null
|
|
|
32
33
|
_globalContext: GlobalContextServerInternal;
|
|
33
34
|
abortStatusCode?: AbortStatusCode;
|
|
34
35
|
headersResponse?: Headers;
|
|
35
|
-
|
|
36
|
+
pageContextsAborted: PageContextAborted[];
|
|
37
|
+
};
|
|
38
|
+
declare function createHttpResponsePageHtml(htmlRender: HtmlRender, renderHook: null | RenderHook, pageContext: PageContextHttpResponsePage): Promise<HttpResponse>;
|
|
39
|
+
declare function createHttpResponsePageContent(content: Content, renderHook: RenderHook, pageContext: PageContextHttpResponsePage & {
|
|
40
|
+
urlOriginal: string;
|
|
41
|
+
}): HttpResponse;
|
|
36
42
|
declare function createHttpResponse404(errMsg404: string): HttpResponse;
|
|
37
43
|
declare function createHttpResponseBaseIsMissing(urlOriginal: string, baseServer: string): HttpResponse;
|
|
38
44
|
declare function createHttpResponseErrorFallback(pageContext: {
|
|
39
45
|
_globalContext: GlobalContextServerInternal;
|
|
46
|
+
pageContextsAborted: PageContextAborted[];
|
|
40
47
|
}): HttpResponse;
|
|
41
48
|
declare function createHttpResponseErrorFallback_noGlobalContext(): HttpResponse;
|
|
42
|
-
declare function createHttpResponseErrorFallbackJson(
|
|
43
|
-
|
|
49
|
+
declare function createHttpResponseErrorFallbackJson(pageContext: {
|
|
50
|
+
pageContextsAborted: PageContextAborted[];
|
|
51
|
+
}): HttpResponse;
|
|
52
|
+
declare function createHttpResponsePageJson(pageContextJson: string | StreamReadableWeb, pageContext: {
|
|
53
|
+
headersResponse?: Headers;
|
|
54
|
+
pageContextsAborted: PageContextAborted[];
|
|
55
|
+
}): Promise<HttpResponse>;
|
|
44
56
|
declare function createHttpResponseRedirect({ url, statusCode }: UrlRedirect, pageContextInit: PageContextBegin): HttpResponse;
|
|
45
|
-
declare function createHttpResponseFromUniversalMiddleware(response: Response, earlyHints?: EarlyHint[]): HttpResponse;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createHttpResponsePageHtml };
|
|
2
|
+
export { createHttpResponsePageContent };
|
|
2
3
|
export { createHttpResponsePageJson };
|
|
3
4
|
export { createHttpResponseErrorFallback };
|
|
4
5
|
export { createHttpResponseErrorFallback_noGlobalContext };
|
|
@@ -6,20 +7,34 @@ export { createHttpResponseErrorFallbackJson };
|
|
|
6
7
|
export { createHttpResponseRedirect };
|
|
7
8
|
export { createHttpResponse404 };
|
|
8
9
|
export { createHttpResponseBaseIsMissing };
|
|
9
|
-
export { createHttpResponseFromUniversalMiddleware };
|
|
10
10
|
import { escapeHtml } from '../../../utils/escapeHtml.js';
|
|
11
11
|
import { assert, assertWarning } from '../../../utils/assert.js';
|
|
12
12
|
import { getErrorPageId, isErrorPage } from '../../../shared-server-client/error-page.js';
|
|
13
|
+
import { getContentTypeFromUrl } from '../../../utils/getContentTypeFromUrl.js';
|
|
13
14
|
import { getHttpResponseBody, getHttpResponseBodyStreamHandlers } from './getHttpResponseBody.js';
|
|
14
15
|
import { getEarlyHints } from './getEarlyHints.js';
|
|
15
16
|
import { assertNoInfiniteHttpRedirect } from './createHttpResponse/assertNoInfiniteHttpRedirect.js';
|
|
16
|
-
import { resolveHeadersResponseFinal } from './headersResponse.js';
|
|
17
|
+
import { getHeadersSetCookieAborted, resolveHeadersResponseFinal, resolveHeadersResponseSetCookie, } from './headersResponse.js';
|
|
17
18
|
import { stringify } from '@brillout/json-serializer/stringify';
|
|
18
19
|
import '../../assertEnvServer.js';
|
|
19
20
|
const contentTypeJson = 'application/json';
|
|
20
21
|
const contentTypeHtml = 'text/html;charset=utf-8';
|
|
21
22
|
const htmlFallbackLog = 'This HTML was generated by Vike.';
|
|
22
|
-
async function
|
|
23
|
+
async function createHttpResponsePageHtml(htmlRender, renderHook, pageContext) {
|
|
24
|
+
const statusCode = getStatusCode(pageContext);
|
|
25
|
+
const earlyHints = getEarlyHints(await pageContext.__getPageAssets());
|
|
26
|
+
const headers = resolveHeadersResponseFinal(pageContext, statusCode);
|
|
27
|
+
return createHttpResponse(statusCode, contentTypeHtml, headers, htmlRender, earlyHints, renderHook);
|
|
28
|
+
}
|
|
29
|
+
function createHttpResponsePageContent(content, renderHook, pageContext) {
|
|
30
|
+
const statusCode = getStatusCode(pageContext);
|
|
31
|
+
const headers = resolveHeadersResponseFinal(pageContext, statusCode);
|
|
32
|
+
if (!headers.some(([k]) => k.toLowerCase() === 'content-type')) {
|
|
33
|
+
headers.push(['Content-Type', getContentTypeFromUrl(pageContext.urlOriginal) ?? 'application/octet-stream']);
|
|
34
|
+
}
|
|
35
|
+
return createHttpResponseCommon(statusCode, headers, content, [], renderHook);
|
|
36
|
+
}
|
|
37
|
+
function getStatusCode(pageContext) {
|
|
23
38
|
let statusCode = pageContext.abortStatusCode;
|
|
24
39
|
if (!statusCode) {
|
|
25
40
|
const isError = !pageContext.pageId || isErrorPage(pageContext.pageId, pageContext._globalContext._pageConfigs);
|
|
@@ -35,9 +50,7 @@ async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
|
|
|
35
50
|
statusCode = pageContext.is404 ? 404 : 500;
|
|
36
51
|
}
|
|
37
52
|
}
|
|
38
|
-
|
|
39
|
-
const headers = resolveHeadersResponseFinal(pageContext, statusCode);
|
|
40
|
-
return createHttpResponse(statusCode, contentTypeHtml, headers, htmlRender, earlyHints, renderHook);
|
|
53
|
+
return statusCode;
|
|
41
54
|
}
|
|
42
55
|
function createHttpResponse404(errMsg404) {
|
|
43
56
|
const httpResponse = createHttpResponse(404, contentTypeHtml, [], getHtmlFallback(`<p>${errMsg404}.</p>`));
|
|
@@ -76,21 +89,26 @@ function createHttpResponseErrorFallback(pageContext) {
|
|
|
76
89
|
return 'no error page (https://vike.dev/error-page) is defined, make sure to create one';
|
|
77
90
|
}
|
|
78
91
|
})();
|
|
79
|
-
|
|
92
|
+
// Cookies set before `throw redirect()` or `throw render()` are kept
|
|
93
|
+
return createHttpResponseError_(reason, getHeadersSetCookieAborted(pageContext));
|
|
80
94
|
}
|
|
81
95
|
function createHttpResponseErrorFallback_noGlobalContext() {
|
|
82
|
-
return createHttpResponseError_('no error page (https://vike.dev/error-page) could be rendered');
|
|
96
|
+
return createHttpResponseError_('no error page (https://vike.dev/error-page) could be rendered', []);
|
|
83
97
|
}
|
|
84
|
-
function createHttpResponseError_(reason) {
|
|
85
|
-
const httpResponse = createHttpResponse(500, contentTypeHtml,
|
|
98
|
+
function createHttpResponseError_(reason, headers) {
|
|
99
|
+
const httpResponse = createHttpResponse(500, contentTypeHtml, headers, getHtmlFallback('<p>An error occurred.</p>', `${htmlFallbackLog} Vike returned this HTML because ${reason}.`));
|
|
86
100
|
return httpResponse;
|
|
87
101
|
}
|
|
88
|
-
function createHttpResponseErrorFallbackJson() {
|
|
89
|
-
const
|
|
102
|
+
function createHttpResponseErrorFallbackJson(pageContext) {
|
|
103
|
+
const headers = getHeadersSetCookieAborted(pageContext);
|
|
104
|
+
const httpResponse = createHttpResponse(500, contentTypeJson, headers, stringify({ serverSideError: true }));
|
|
90
105
|
return httpResponse;
|
|
91
106
|
}
|
|
92
|
-
async function createHttpResponsePageJson(
|
|
93
|
-
const
|
|
107
|
+
async function createHttpResponsePageJson(pageContextJson, pageContext) {
|
|
108
|
+
const headers = resolveHeadersResponseSetCookie(pageContext);
|
|
109
|
+
headers.push(['Content-Type', contentTypeJson]);
|
|
110
|
+
// A stream if there are streamed pageContext values, see https://vike.dev/passToClient#streaming
|
|
111
|
+
const httpResponse = createHttpResponseCommon(200, headers, pageContextJson);
|
|
94
112
|
return httpResponse;
|
|
95
113
|
}
|
|
96
114
|
function createHttpResponseRedirect({ url, statusCode }, pageContextInit) {
|
|
@@ -98,17 +116,12 @@ function createHttpResponseRedirect({ url, statusCode }, pageContextInit) {
|
|
|
98
116
|
assert(url);
|
|
99
117
|
assert(statusCode);
|
|
100
118
|
assert(300 <= statusCode && statusCode <= 399);
|
|
101
|
-
const headers = [['Location', url]];
|
|
119
|
+
const headers = [['Location', url], ...resolveHeadersResponseSetCookie(pageContextInit)];
|
|
102
120
|
return createHttpResponse(statusCode, contentTypeHtml, headers,
|
|
103
121
|
// For bots / programmatic crawlig: show what's going on.
|
|
104
122
|
// For users: showing a blank page is probably better than a flickering text.
|
|
105
123
|
getHtmlFallback(`<p style="display: none">Redirecting to ${escapeHtml(url)}</p>`));
|
|
106
124
|
}
|
|
107
|
-
function createHttpResponseFromUniversalMiddleware(response, earlyHints) {
|
|
108
|
-
const body = response.body ?? getHtmlFallback('<p style="display: none">No HTTP response body.</p>');
|
|
109
|
-
const httpResponse = createHttpResponseCommon(response.status, Array.from(response.headers.entries()), body, earlyHints);
|
|
110
|
-
return httpResponse;
|
|
111
|
-
}
|
|
112
125
|
function getHtmlFallback(bodyHtml, logText = htmlFallbackLog) {
|
|
113
126
|
return `${bodyHtml}<script>console.log(${JSON.stringify(logText)})</script>`;
|
|
114
127
|
}
|