vike 0.4.267-commit-5676e14 → 0.4.267-commit-e667e7c
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/client/runtime-client-routing/createPageContextClient.d.ts +1 -0
- package/dist/client/runtime-client-routing/getGlobalContextClientInternal.d.ts +1 -0
- package/dist/client/runtime-client-routing/getPageContextFromHooks.d.ts +4 -0
- package/dist/client/runtime-client-routing/renderPageClient.d.ts +8 -0
- package/dist/client/runtime-client-routing/renderPageClient.js +0 -7
- package/dist/client/runtime-server-routing/createPageContextClient.d.ts +1 -0
- package/dist/client/runtime-server-routing/getGlobalContextClientInternal.d.ts +1 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.d.ts +1 -0
- package/dist/client/shared/getGlobalContextClientInternalShared.js +2 -0
- package/dist/client/shared/removeFoucBuster.js +14 -3
- package/dist/node/api/dev.js +15 -1
- package/dist/node/api/serverEntryDev.d.ts +10 -0
- package/dist/node/api/serverEntryDev.js +113 -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 +6 -14
- package/dist/node/prerender/runPrerender.js +1 -1
- package/dist/node/vite/plugins/build/pluginBuildConfig.js +1 -1
- package/dist/node/vite/plugins/pluginCommon.js +1 -1
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.d.ts +1 -1
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.js +3 -1
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.d.ts +3 -0
- package/dist/node/vite/plugins/pluginUniversalDeploy/getServerConfig.js +26 -0
- 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.js +27 -3
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +4 -2
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +1 -1
- package/dist/node/vite/shared/addSsrMiddleware.js +11 -39
- package/dist/node/vite/shared/findPageFiles.d.ts +1 -1
- package/dist/node/vite/shared/findPageFiles.js +1 -11
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.d.ts +5 -3
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.js +9 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal.d.ts +1 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal.js +1 -1
- package/dist/server/__internal/index.d.ts +1 -0
- package/dist/server/__internal/index.js +2 -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/fetch.d.ts +4 -5
- package/dist/server/runtime/fetch.js +2 -2
- package/dist/server/runtime/globalContext.d.ts +49 -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/createHttpResponse.d.ts +0 -2
- package/dist/server/runtime/renderPageServer/createHttpResponse.js +0 -6
- package/dist/server/runtime/renderPageServer/createPageContextServer.d.ts +9 -23
- package/dist/server/runtime/renderPageServer/getHttpResponseBody.js +2 -10
- package/dist/server/runtime/renderPageServer/handlePageContextRequestUrl.js +2 -2
- package/dist/server/runtime/renderPageServer/html/stream.d.ts +1 -1
- package/dist/server/runtime/renderPageServer/html/stream.js +16 -3
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +6 -14
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +36 -84
- package/dist/server/runtime/renderPageServer.d.ts +61 -18
- package/dist/server/runtime/renderPageServer.js +12 -53
- 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/page-configs/serialize/serializeConfigValues.js +2 -0
- package/dist/types/Config.d.ts +9 -1
- package/dist/types/GlobalContext.d.ts +3 -3
- package/dist/types/PageContext.d.ts +0 -9
- package/dist/types/PageContext.js +1 -0
- 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/installUncaughtErrorHandlers.js +9 -0
- package/package.json +17 -16
- package/universal-middleware.js +2 -2
- package/vike-server.d.ts +14 -0
- package/dist/server/runtime/universal-middleware.d.ts +0 -10
- package/dist/server/runtime/universal-middleware.js +0 -27
|
@@ -1,21 +1,72 @@
|
|
|
1
1
|
export { renderPageServer };
|
|
2
|
+
export { renderPageServer_userLand };
|
|
2
3
|
export { getRequestTag };
|
|
3
4
|
export type { PageContextInit };
|
|
4
|
-
export type { PageContextInitInternal };
|
|
5
5
|
export type { PageContextBegin };
|
|
6
6
|
export type { RequestTag };
|
|
7
7
|
import { type PageContextAborted } from '../../shared-server-client/route/abort.js';
|
|
8
8
|
import { type GlobalContextServerInternal } from './globalContext.js';
|
|
9
9
|
import { type HttpResponse } from './renderPageServer/createHttpResponse.js';
|
|
10
10
|
import type { PageContextServer } from '../../types/index.js';
|
|
11
|
-
import type { PageContextInit,
|
|
11
|
+
import type { PageContextInit, PageContextInternalServer } from '../../types/PageContext.js';
|
|
12
12
|
import { type AsyncStore } from './asyncHook.js';
|
|
13
13
|
import '../assertEnvServer.js';
|
|
14
14
|
type PageContextBegin = ReturnType<typeof getPageContextBegin>;
|
|
15
|
-
declare function
|
|
15
|
+
declare function renderPageServer_userLand<PageContextUserAdded extends {}, PageContextInitUser extends PageContextInit>(pageContextInit: PageContextInitUser): Promise<PageContextInitUser & {
|
|
16
|
+
httpResponse: HttpResponse;
|
|
17
|
+
} & Partial<import("../../shared-server-client/getPageFiles.js").PageContextConfig & {
|
|
18
|
+
isPageContext: true;
|
|
19
|
+
Page: import("../../types/Config.js").Config['Page'];
|
|
20
|
+
routeParams: Record<string, string>;
|
|
21
|
+
data: unknown;
|
|
22
|
+
headersResponse: Headers;
|
|
23
|
+
is404: boolean | null;
|
|
24
|
+
isClientSideNavigation: boolean;
|
|
25
|
+
abortReason?: unknown;
|
|
26
|
+
abortStatusCode?: import("../../shared-server-client/route/abort.js").AbortStatusCode;
|
|
27
|
+
errorWhileRendering?: unknown;
|
|
28
|
+
pageId: string | null;
|
|
29
|
+
from: import("../../shared-server-client/page-configs/resolveVikeConfigPublic.js").From;
|
|
30
|
+
source: import("../../shared-server-client/page-configs/resolveVikeConfigPublic.js").Source;
|
|
31
|
+
sources: import("../../shared-server-client/page-configs/resolveVikeConfigPublic.js").Sources;
|
|
32
|
+
pageExports: Record<string, unknown>;
|
|
33
|
+
isBaseMissing?: true;
|
|
34
|
+
} & PageContextInit & {
|
|
35
|
+
urlOriginal: string;
|
|
36
|
+
} & {
|
|
37
|
+
urlParsed: import("../../utils/parseUrl.js").UrlPublic;
|
|
38
|
+
urlPathname: string;
|
|
39
|
+
url: string;
|
|
40
|
+
} & {
|
|
41
|
+
urlParsed: Omit<import("../../utils/parseUrl.js").UrlPublic, "hash" | "hashOriginal" | "hashString"> & {
|
|
42
|
+
hash: '';
|
|
43
|
+
hashString: null;
|
|
44
|
+
hashOriginal: null;
|
|
45
|
+
};
|
|
46
|
+
} & {
|
|
47
|
+
headers: Record<string, string> | null;
|
|
48
|
+
isClientSide: false;
|
|
49
|
+
isPrerendering: boolean;
|
|
50
|
+
globalContext: import("../../types/GlobalContext.js").GlobalContextServer;
|
|
51
|
+
cspNonce: string | null;
|
|
52
|
+
pageContextsAborted: Partial<PageContextServer<unknown>>[];
|
|
53
|
+
environments?: Record<string, {
|
|
54
|
+
config: import("../../shared-server-client/getPageFiles.js").PageContextConfig['config'];
|
|
55
|
+
pageContext: PageContextServer<unknown>;
|
|
56
|
+
}> | undefined;
|
|
57
|
+
isHydration?: undefined;
|
|
58
|
+
isBackwardNavigation?: undefined;
|
|
59
|
+
isHistoryNavigation?: undefined;
|
|
60
|
+
previousPageContext?: undefined;
|
|
61
|
+
} & {
|
|
62
|
+
dangerouslyUseInternals: import("../../shared-server-client/getPublicProxy.js").DangerouslyUseInternals<PageContextInternalServer & import("./renderPageServer/renderPageServerAfterRoute.js").PageContextAfterRender & import("./renderPageServer/getPageContextPublicServer.js").PageContextPublicServer>;
|
|
63
|
+
} & Vike.PageContext & Vike.PageContextServer & {
|
|
64
|
+
content?: string | Uint8Array | ReadableStream<Uint8Array>;
|
|
65
|
+
} & PageContextUserAdded>>;
|
|
66
|
+
declare function renderPageServer<PageContextUserAdded extends {}, PageContextInitUser extends PageContextInit>(pageContextInit: PageContextInitUser, isCalledDirectlyByUser: boolean): Promise<PageContextInitUser & {
|
|
16
67
|
httpResponse: HttpResponse;
|
|
17
68
|
} & Partial<PageContextServer & PageContextUserAdded>>;
|
|
18
|
-
declare function getPageContextBegin(pageContextInit:
|
|
69
|
+
declare function getPageContextBegin(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, requestId: number, asyncStore: AsyncStore): {
|
|
19
70
|
_isOriginalObject: true;
|
|
20
71
|
isPageContext: true;
|
|
21
72
|
} & {
|
|
@@ -23,12 +74,6 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
23
74
|
isPrerendering: boolean;
|
|
24
75
|
_requestId: number;
|
|
25
76
|
} & PageContextInit & {
|
|
26
|
-
_nodeDev?: {
|
|
27
|
-
req: import("http").IncomingMessage;
|
|
28
|
-
res: import("http").ServerResponse;
|
|
29
|
-
};
|
|
30
|
-
_reqWeb?: Request;
|
|
31
|
-
} & {
|
|
32
77
|
_globalContext: ({
|
|
33
78
|
config: import("../../types/index.js").ConfigResolved;
|
|
34
79
|
_source: import("../../shared-server-client/page-configs/resolveVikeConfigPublic.js").Source;
|
|
@@ -65,6 +110,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
65
110
|
_isPrerendering: false;
|
|
66
111
|
assetsManifest: null;
|
|
67
112
|
_viteDevServer: import("vite").ViteDevServer | undefined;
|
|
113
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
68
114
|
viteConfig: import("vite").ResolvedConfig | undefined;
|
|
69
115
|
} | {
|
|
70
116
|
isClientSide: false;
|
|
@@ -73,6 +119,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
73
119
|
_isProduction: true;
|
|
74
120
|
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
75
121
|
_viteDevServer: null;
|
|
122
|
+
devMiddleware: null;
|
|
76
123
|
_usesClientRouter: boolean;
|
|
77
124
|
_isPrerendering: true;
|
|
78
125
|
viteConfig: import("vite").ResolvedConfig;
|
|
@@ -83,12 +130,11 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
83
130
|
_isProduction: true;
|
|
84
131
|
assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
|
|
85
132
|
_viteDevServer: null;
|
|
133
|
+
devMiddleware: null;
|
|
86
134
|
_usesClientRouter: boolean;
|
|
87
135
|
_isPrerendering: false;
|
|
88
136
|
viteConfig: null;
|
|
89
137
|
}) & {
|
|
90
|
-
baseServer: string;
|
|
91
|
-
baseAssets: string;
|
|
92
138
|
viteConfigRuntime: {
|
|
93
139
|
root: string;
|
|
94
140
|
build: {
|
|
@@ -99,6 +145,9 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
99
145
|
inject: boolean | undefined;
|
|
100
146
|
};
|
|
101
147
|
};
|
|
148
|
+
baseServer: string;
|
|
149
|
+
baseAssets: string;
|
|
150
|
+
middlewares: import("./universal-middleware/core.js").Middleware[];
|
|
102
151
|
})) & {
|
|
103
152
|
prerenderContext: import("../../types/index.js").PrerenderContext | undefined;
|
|
104
153
|
};
|
|
@@ -106,12 +155,6 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
106
155
|
_baseServer: string;
|
|
107
156
|
_baseAssets: string;
|
|
108
157
|
_pageContextInit: PageContextInit & {
|
|
109
|
-
_nodeDev?: {
|
|
110
|
-
req: import("http").IncomingMessage;
|
|
111
|
-
res: import("http").ServerResponse;
|
|
112
|
-
};
|
|
113
|
-
_reqWeb?: Request;
|
|
114
|
-
} & {
|
|
115
158
|
headers?: Record<string, unknown>;
|
|
116
159
|
};
|
|
117
160
|
_urlHandler: ((url: string) => string) | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { renderPageServer };
|
|
2
|
+
export { renderPageServer_userLand };
|
|
2
3
|
export { getRequestTag };
|
|
3
4
|
import { renderPageServerAfterRoute } from './renderPageServer/renderPageServerAfterRoute.js';
|
|
4
5
|
import { createPageContextServer, createPageContextServerWithoutGlobalContext, } from './renderPageServer/createPageContextServer.js';
|
|
@@ -18,7 +19,7 @@ import { getPageContextAddendumAbort, isAbortError, logAbort, addNewPageContextA
|
|
|
18
19
|
import { getGlobalContextServerInternal, initGlobalContext_renderPage, } from './globalContext.js';
|
|
19
20
|
import { handlePageContextRequestUrl } from './renderPageServer/handlePageContextRequestUrl.js';
|
|
20
21
|
import { getPageContextPublicServer } from './renderPageServer/getPageContextPublicServer.js';
|
|
21
|
-
import { createHttpResponse404, createHttpResponseRedirect, createHttpResponsePageJson, createHttpResponseErrorFallback, createHttpResponseErrorFallback_noGlobalContext, createHttpResponseBaseIsMissing,
|
|
22
|
+
import { createHttpResponse404, createHttpResponseRedirect, createHttpResponsePageJson, createHttpResponseErrorFallback, createHttpResponseErrorFallback_noGlobalContext, createHttpResponseBaseIsMissing, } from './renderPageServer/createHttpResponse.js';
|
|
22
23
|
import { logRuntimeError, logRuntimeInfo } from './loggerRuntime.js';
|
|
23
24
|
import { assertArguments } from './renderPageServer/assertArguments.js';
|
|
24
25
|
import { log404 } from './renderPageServer/log404/index.js';
|
|
@@ -32,15 +33,18 @@ import { getVikeConfigError } from '../../shared-server-node/getVikeConfigError.
|
|
|
32
33
|
import { forkPageContext } from '../../shared-server-client/forkPageContext.js';
|
|
33
34
|
import { getAsyncLocalStorage } from './asyncHook.js';
|
|
34
35
|
import { getPageContextJson } from './renderPageServer/getPageContextJson.js';
|
|
36
|
+
import { hasPlusMiddlewares } from './universal-middleware/core.js';
|
|
35
37
|
import '../assertEnvServer.js';
|
|
36
|
-
import { enhance, apply, universalSymbol, UniversalRouter, getAdapterRuntime, } from '@universal-middleware/core';
|
|
37
|
-
import { createRequestAdapter } from '@universal-middleware/node/request';
|
|
38
38
|
const globalObject = getGlobalObject('runtime/renderPageServer.ts', {
|
|
39
39
|
httpRequestsCount: 0,
|
|
40
40
|
});
|
|
41
|
-
//
|
|
42
|
-
|
|
41
|
+
// The user's renderPage()
|
|
42
|
+
function renderPageServer_userLand(pageContextInit) {
|
|
43
43
|
assertArguments(...arguments);
|
|
44
|
+
return renderPageServer(pageContextInit, true);
|
|
45
|
+
}
|
|
46
|
+
// `renderPageServer()` calls `renderPageServerNominal()` while ensuring that errors are `console.error(err)` instead of `throw err`, so that Vike never triggers a server shut down. (Throwing an error in an Express.js middleware shuts down the whole Express.js server.)
|
|
47
|
+
async function renderPageServer(pageContextInit, isCalledDirectlyByUser) {
|
|
44
48
|
assert(hasProp(pageContextInit, 'urlOriginal', 'string')); // assertUsage() already implemented at assertArguments()
|
|
45
49
|
assertIsUrl(pageContextInit.urlOriginal);
|
|
46
50
|
onSetupRuntime();
|
|
@@ -52,7 +56,7 @@ async function renderPageServer(pageContextInit) {
|
|
|
52
56
|
logHttpRequest(urlOriginalPretty, pageContextInit, requestId);
|
|
53
57
|
const asyncLocalStorage = await getAsyncLocalStorage();
|
|
54
58
|
const asyncStore = !asyncLocalStorage ? null : { requestId };
|
|
55
|
-
const render = async () => await
|
|
59
|
+
const render = async () => await renderPageServerEntryOnce(pageContextInit, isCalledDirectlyByUser, requestId, asyncStore);
|
|
56
60
|
const pageContextFinish = !asyncLocalStorage ? await render() : await asyncLocalStorage.run(asyncStore, render);
|
|
57
61
|
logHttpResponse(urlOriginalPretty, pageContextFinish);
|
|
58
62
|
checkType(pageContextFinish);
|
|
@@ -64,7 +68,7 @@ function getPageContextReturn(pageContextFinish) {
|
|
|
64
68
|
return pageContextFinish;
|
|
65
69
|
return getPageContextPublicServer(pageContextFinish);
|
|
66
70
|
}
|
|
67
|
-
async function
|
|
71
|
+
async function renderPageServerEntryOnce(pageContextInit, isCalledDirectlyByUser, requestId, asyncStore) {
|
|
68
72
|
// Invalid config
|
|
69
73
|
{
|
|
70
74
|
const vikeConfigError = getVikeConfigError();
|
|
@@ -99,17 +103,8 @@ async function renderPageServerEntryOnceBegin(pageContextInit, requestId, asyncS
|
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
const { globalContext } = await getGlobalContextServerInternal();
|
|
106
|
+
assertUsage(!isCalledDirectlyByUser || !hasPlusMiddlewares(globalContext), `renderPage() doesn't run +middleware — see ${pc.underline('https://vike.dev/error/setup-middlewares')}`);
|
|
102
107
|
const pageContextBegin = getPageContextBegin(pageContextInit, globalContext, requestId, asyncStore);
|
|
103
|
-
const middlewares = (globalContext.config.middleware ?? []).flat();
|
|
104
|
-
const renderPageServerEntry = () => renderPageServerEntryOnce(pageContextBegin, globalContext, requestId);
|
|
105
|
-
if (middlewares.length === 0) {
|
|
106
|
-
return renderPageServerEntry();
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
return renderPageServerEntryWithMiddlewares(pageContextBegin, renderPageServerEntry, middlewares);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
async function renderPageServerEntryOnce(pageContextBegin, globalContext, requestId) {
|
|
113
108
|
// Check Base URL
|
|
114
109
|
{
|
|
115
110
|
const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
|
|
@@ -249,42 +244,6 @@ async function renderPageServerEntryRecursive_onError(err, pageContextBegin, pag
|
|
|
249
244
|
}
|
|
250
245
|
return pageContextErrorPage;
|
|
251
246
|
}
|
|
252
|
-
const requestAdapter = createRequestAdapter();
|
|
253
|
-
async function renderPageServerEntryWithMiddlewares(pageContext, renderPageServerEntry, middlewares) {
|
|
254
|
-
const router = new UniversalRouter(true, false);
|
|
255
|
-
let httpResponseVikeCore = undefined;
|
|
256
|
-
// Wrap rendering into universal-middleware routing
|
|
257
|
-
apply(router, [
|
|
258
|
-
enhance(async function adaptRenderPageServerEntryOnceInternal() {
|
|
259
|
-
const pageContextHttpResponse = await renderPageServerEntry();
|
|
260
|
-
const { httpResponse } = pageContextHttpResponse;
|
|
261
|
-
pageContext = pageContextHttpResponse;
|
|
262
|
-
httpResponseVikeCore = httpResponse;
|
|
263
|
-
const readable = httpResponse.getReadableWebStream();
|
|
264
|
-
return new Response(readable, {
|
|
265
|
-
status: httpResponse.statusCode,
|
|
266
|
-
headers: httpResponse.headers,
|
|
267
|
-
});
|
|
268
|
-
}, {
|
|
269
|
-
name: 'vike',
|
|
270
|
-
method: ['GET', 'POST', 'PUT', 'PATCH', 'HEAD', 'OPTIONS'],
|
|
271
|
-
path: '/**', // rou3 format
|
|
272
|
-
immutable: true, // avoids cloning the function we just created
|
|
273
|
-
}),
|
|
274
|
-
...middlewares,
|
|
275
|
-
]);
|
|
276
|
-
const handler = router[universalSymbol];
|
|
277
|
-
const request = pageContext._reqWeb ??
|
|
278
|
-
(pageContext._nodeDev
|
|
279
|
-
? requestAdapter(pageContext._nodeDev.req, pageContext._nodeDev.res)
|
|
280
|
-
: new Request(new URL(pageContext.urlOriginal, 'http://localhost').toString(), {
|
|
281
|
-
headers: pageContext.headers ?? {},
|
|
282
|
-
}));
|
|
283
|
-
const res = await handler(request, {}, getAdapterRuntime('other', { params: undefined }));
|
|
284
|
-
const httpResponse = createHttpResponseFromUniversalMiddleware(res, httpResponseVikeCore?.earlyHints);
|
|
285
|
-
objectAssign(pageContext, { httpResponse });
|
|
286
|
-
return pageContext;
|
|
287
|
-
}
|
|
288
247
|
function logHttpRequest(urlOriginal, pageContextInit, requestId) {
|
|
289
248
|
const pageContext = createPageContextServerWithoutGlobalContext(pageContextInit, requestId);
|
|
290
249
|
logRuntimeInfo?.(getRequestInfoMessage(urlOriginal), pageContext, 'info');
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { getMiddlewares_globalContext };
|
|
2
|
+
export { getMiddlewares_withErrorHandling };
|
|
3
|
+
export { hasPlusMiddlewares };
|
|
4
|
+
export { routeCatchAll };
|
|
5
|
+
export { mergeContext };
|
|
6
|
+
export type { Middleware };
|
|
7
|
+
import { type EnhancedMiddleware, type UniversalMiddleware } from '@universal-middleware/core';
|
|
8
|
+
import type { ConfigResolved } from '../../../types/Config/ConfigResolved.js';
|
|
9
|
+
import '../../assertEnvServer.js';
|
|
10
|
+
type Middleware = EnhancedMiddleware & {
|
|
11
|
+
isHandler: boolean;
|
|
12
|
+
};
|
|
13
|
+
declare const routeCatchAll: {
|
|
14
|
+
readonly name: 'vike';
|
|
15
|
+
readonly method: ["GET", "POST", "PUT", "PATCH", "HEAD", "OPTIONS"];
|
|
16
|
+
readonly path: '/**';
|
|
17
|
+
};
|
|
18
|
+
declare function getMiddlewares_globalContext(globalContext: {
|
|
19
|
+
config: ConfigResolved;
|
|
20
|
+
}, baseServer: string): Middleware[];
|
|
21
|
+
declare function getMiddlewares_withErrorHandling(): Promise<Middleware[]>;
|
|
22
|
+
declare function hasPlusMiddlewares(globalContext: {
|
|
23
|
+
config: ConfigResolved;
|
|
24
|
+
}): boolean;
|
|
25
|
+
declare function mergeContext(middleware: EnhancedMiddleware): UniversalMiddleware;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
export { getMiddlewares_globalContext };
|
|
2
|
+
export { getMiddlewares_withErrorHandling };
|
|
3
|
+
export { hasPlusMiddlewares };
|
|
4
|
+
export { routeCatchAll };
|
|
5
|
+
export { mergeContext };
|
|
6
|
+
import { createMatcher, enhance, getUniversal, getUniversalProp, isHandler, methodSymbol, orderSymbol, pathSymbol, nameSymbol, runsSymbol, } from '@universal-middleware/core';
|
|
7
|
+
import { parseUrl } from '../../../utils/parseUrl.js';
|
|
8
|
+
import { prependBase } from '../../../utils/parseUrl-extras.js';
|
|
9
|
+
import { handlePageContextRequestUrl } from '../renderPageServer/handlePageContextRequestUrl.js';
|
|
10
|
+
import { renderPageServer } from '../renderPageServer.js';
|
|
11
|
+
import { getGlobalContextServerInternal, initGlobalContext_renderPage } from '../globalContext.js';
|
|
12
|
+
import { getVikeConfigError } from '../../../shared-server-node/getVikeConfigError.js';
|
|
13
|
+
import { assertWarning } from '../../../utils/assert.js';
|
|
14
|
+
import pc from '@brillout/picocolors';
|
|
15
|
+
import '../../assertEnvServer.js';
|
|
16
|
+
const routeCatchAll = {
|
|
17
|
+
name: 'vike',
|
|
18
|
+
method: ['GET', 'POST', 'PUT', 'PATCH', 'HEAD', 'OPTIONS'],
|
|
19
|
+
path: '/**',
|
|
20
|
+
};
|
|
21
|
+
// Vike's pages
|
|
22
|
+
const renderPageServer_universalMiddleware = enhance(renderPageServer_universal, routeCatchAll);
|
|
23
|
+
// globalContext.middlewares — every +middleware and Vike's handler that renders pages
|
|
24
|
+
function getMiddlewares_globalContext(globalContext, baseServer) {
|
|
25
|
+
return [
|
|
26
|
+
...getMiddlewares_config(globalContext).map((plusMiddleware) => wrapWithVikeNormalizedURL(plusMiddleware, baseServer)),
|
|
27
|
+
renderPageServer_universalMiddleware,
|
|
28
|
+
].map(withIsHandler);
|
|
29
|
+
}
|
|
30
|
+
// Returns globalContext.middlewares, or middlewares_errorHandling upon an invalid config
|
|
31
|
+
async function getMiddlewares_withErrorHandling() {
|
|
32
|
+
if (getVikeConfigError())
|
|
33
|
+
return middlewares_errorHandling;
|
|
34
|
+
try {
|
|
35
|
+
await initGlobalContext_renderPage();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return middlewares_errorHandling;
|
|
39
|
+
}
|
|
40
|
+
if (getVikeConfigError())
|
|
41
|
+
return middlewares_errorHandling;
|
|
42
|
+
const { globalContext } = await getGlobalContextServerInternal();
|
|
43
|
+
return globalContext.middlewares;
|
|
44
|
+
}
|
|
45
|
+
// Upon an invalid config: let renderPageServer() answer every request with the error (`+middleware` isn't defined upon config error)
|
|
46
|
+
const middlewares_errorHandling = [enhance(renderPageServer_universal, { name: 'vike:error-handling' })].map(withIsHandler);
|
|
47
|
+
async function renderPageServer_universal(request, context, runtime) {
|
|
48
|
+
const pageContextInit = {
|
|
49
|
+
urlOriginal: request.url, // Let `context` override it, e.g. `$ vike dev` passes the URL's path
|
|
50
|
+
headersOriginal: request.headers,
|
|
51
|
+
req: 'req' in runtime ? runtime.req : null,
|
|
52
|
+
res: 'res' in runtime ? runtime.res : null,
|
|
53
|
+
runtime,
|
|
54
|
+
...context,
|
|
55
|
+
};
|
|
56
|
+
addUserAgent_deprecated(pageContextInit, request, runtime);
|
|
57
|
+
const pageContext = await renderPageServer(pageContextInit, false);
|
|
58
|
+
const { httpResponse } = pageContext;
|
|
59
|
+
return new Response(httpResponse.getReadableWebStream(), {
|
|
60
|
+
status: httpResponse.statusCode,
|
|
61
|
+
headers: httpResponse.headers,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// List of +middleware
|
|
65
|
+
function getMiddlewares_config(globalContext) {
|
|
66
|
+
return (globalContext.config.middleware ?? []).flat();
|
|
67
|
+
}
|
|
68
|
+
// Does a +middleware exist?
|
|
69
|
+
function hasPlusMiddlewares(globalContext) {
|
|
70
|
+
return getMiddlewares_config(globalContext).length > 0;
|
|
71
|
+
}
|
|
72
|
+
// Handle:
|
|
73
|
+
// - Base URL
|
|
74
|
+
// - JSON URL `.pageContext.json`
|
|
75
|
+
function wrapWithVikeNormalizedURL(plusMiddleware, baseServer) {
|
|
76
|
+
const { path, method, ...options } = getOptions(plusMiddleware);
|
|
77
|
+
if (path)
|
|
78
|
+
assertPath(options.name, path, baseServer);
|
|
79
|
+
if (isHandler(plusMiddleware)) {
|
|
80
|
+
// A handler is a route of the server, which matches it: its path gets the Base URL. (`enhance()` clones it, so that marking it `isHandler` leaves the extension's export untouched.)
|
|
81
|
+
return enhance(plusMiddleware, path ? { path: prependBase(path.startsWith('/') ? path : `/${path}`, baseServer) } : {});
|
|
82
|
+
}
|
|
83
|
+
const isMatch = path && createMatcher(path, method);
|
|
84
|
+
const plusMiddlewareMerged = mergeContext(plusMiddleware);
|
|
85
|
+
return enhance(async (request, context, runtime) => {
|
|
86
|
+
const { isPageContextJsonRequest, urlWithoutPageContextRequestSuffix } = handlePageContextRequestUrl(request.url);
|
|
87
|
+
if (isMatch) {
|
|
88
|
+
const { href, isBaseMissing } = parseUrl(urlWithoutPageContextRequestSuffix, baseServer);
|
|
89
|
+
if (isBaseMissing || !isMatch(new Request(href, { method: request.method })))
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const answer = await getUniversal(plusMiddlewareMerged)(request, context, runtime);
|
|
93
|
+
return isPageContextJsonRequest ? toPageContextJsonAnswer(answer) : answer;
|
|
94
|
+
}, {
|
|
95
|
+
...options,
|
|
96
|
+
// Whatever its order, it doesn't run once a Response exists
|
|
97
|
+
runs: 'until-response',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// A +middleware's answer to a `.pageContext.json` request. Its own Response, or a response function's replacement of
|
|
101
|
+
// Vike's JSON, becomes a 404 without JSON: the client router then reloads the page, so that the page's own request shows
|
|
102
|
+
// the +middleware's answer (e.g. a 401, a redirect or a login page).
|
|
103
|
+
function toPageContextJsonAnswer(answer) {
|
|
104
|
+
const toReload = (response) => {
|
|
105
|
+
const headers = new Headers(response.headers);
|
|
106
|
+
headers.delete('content-type');
|
|
107
|
+
return new Response(response.body, { status: 404, headers });
|
|
108
|
+
};
|
|
109
|
+
// The +middleware answered instead of the page
|
|
110
|
+
if (answer instanceof Response)
|
|
111
|
+
return toReload(answer);
|
|
112
|
+
if (typeof answer !== 'function')
|
|
113
|
+
return answer;
|
|
114
|
+
return async (response) => {
|
|
115
|
+
const replaced = await answer(response);
|
|
116
|
+
// Vike's JSON, possibly re-encoded, keeps its status and its JSON Content-Type
|
|
117
|
+
const isVikeJson = replaced?.status === response.status && replaced.headers.get('content-type')?.includes('application/json');
|
|
118
|
+
return replaced && (isVikeJson ? replaced : toReload(replaced));
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Warns about a path that starts with the Base URL
|
|
122
|
+
function assertPath(name, path, baseServer) {
|
|
123
|
+
const base = baseServer.replace(/\/$/, '');
|
|
124
|
+
if (!base || (path !== base && !path.startsWith(`${base}/`)))
|
|
125
|
+
return;
|
|
126
|
+
assertWarning(false, `The +middleware ${name ? `${pc.bold(name)} ` : ''}has the path ${pc.cyan(path)}, which starts with the Base URL ${pc.cyan(baseServer)}. A +middleware path is relative to the Base URL, use ${pc.cyan(path.slice(base.length) || '/')} instead.`, { onlyOnce: `middleware-path:${name}:${path}` });
|
|
127
|
+
}
|
|
128
|
+
// Universal Middleware replaces the context with the one a middleware returns: Vike merges it into a new object, as a
|
|
129
|
+
// +middleware or a user-land universal middleware returns only what it adds, and an adapter may reuse the context
|
|
130
|
+
function mergeContext(middleware) {
|
|
131
|
+
return enhance(async (request, context, runtime) => {
|
|
132
|
+
const result = await getUniversal(middleware)(request, context, runtime);
|
|
133
|
+
if (!result || result instanceof Response || typeof result === 'function')
|
|
134
|
+
return result;
|
|
135
|
+
return { ...context, ...result };
|
|
136
|
+
}, getOptions(middleware));
|
|
137
|
+
}
|
|
138
|
+
// The options `enhance()` gave a middleware, also when an adapter wraps it, without the unset ones: Universal Middleware sorts an `order` set to `undefined` as `NaN`
|
|
139
|
+
function getOptions(middleware) {
|
|
140
|
+
const options = {
|
|
141
|
+
name: getUniversalProp(middleware, nameSymbol),
|
|
142
|
+
path: getUniversalProp(middleware, pathSymbol),
|
|
143
|
+
method: getUniversalProp(middleware, methodSymbol),
|
|
144
|
+
order: getUniversalProp(middleware, orderSymbol),
|
|
145
|
+
runs: getUniversalProp(middleware, runsSymbol),
|
|
146
|
+
};
|
|
147
|
+
return Object.fromEntries(Object.entries(options).filter(([, value]) => value !== undefined));
|
|
148
|
+
}
|
|
149
|
+
function withIsHandler(middleware) {
|
|
150
|
+
return Object.assign(middleware, { isHandler: isHandler(middleware) });
|
|
151
|
+
}
|
|
152
|
+
function addUserAgent_deprecated(pageContextInit, request, runtime) {
|
|
153
|
+
// Backwards compatibility for `$ vike dev` and `$ vike preview`
|
|
154
|
+
if (runtime.adapter === 'other' && 'req' in runtime) {
|
|
155
|
+
Object.defineProperty(pageContextInit, 'userAgent', {
|
|
156
|
+
get() {
|
|
157
|
+
// TO-DO/next-major-release: assertUsage() instead of assertWarning()
|
|
158
|
+
assertWarning(false, `${pc.cyan('pageContext.userAgent')} is deprecated: use ${pc.cyan("pageContext.headers['user-agent']")} instead.`, {
|
|
159
|
+
showStackTrace: true,
|
|
160
|
+
onlyOnce: true,
|
|
161
|
+
});
|
|
162
|
+
return request.headers.get('user-agent') ?? undefined;
|
|
163
|
+
},
|
|
164
|
+
enumerable: false,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default vikeUniversalMiddleware;
|
|
2
|
+
// TO-DO/next-major-release: remove this export (the entire file)
|
|
3
|
+
import { vikeUniversalMiddleware } from './vikeUniversalMiddleware.js';
|
|
4
|
+
import { assertWarning } from '../../../utils/assert.js';
|
|
5
|
+
import '../../assertEnvServer.js';
|
|
6
|
+
assertWarning(false, [
|
|
7
|
+
"You're using a deprecated Vike extension:",
|
|
8
|
+
'- If you use one of the following, update to its latest version: @vikejs/hono, @vikejs/express, @vikejs/fastify, @vikejs/h3, or @vikejs/elysia',
|
|
9
|
+
'- If you use vike-photon or vike-server, migrate to +server.js — see https://vike.dev/migration/server',
|
|
10
|
+
].join('\n'), { onlyOnce: true });
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { getMiddlewaresPipe_nonHandlers };
|
|
2
|
+
export { getMiddlewaresPipe_handlers };
|
|
3
|
+
export { pipeNonHandlers };
|
|
4
|
+
import { type UniversalHandler, type UniversalMiddleware } from '@universal-middleware/core';
|
|
5
|
+
import { type Middleware } from './core.js';
|
|
6
|
+
import '../../assertEnvServer.js';
|
|
7
|
+
/**
|
|
8
|
+
* What `vike(app, middlewares)` runs after the app's routes: the middlewares (looked up upon each request) that are handlers, as one universal handler (the pipe).
|
|
9
|
+
*/
|
|
10
|
+
declare function getMiddlewaresPipe_handlers(middlewaresUserLand: object[]): UniversalHandler;
|
|
11
|
+
/**
|
|
12
|
+
* What `vike(app, middlewares)` applies before the app's routes: the middlewares (looked up upon each request) that aren't handlers, as one universal middleware (the pipe).
|
|
13
|
+
*/
|
|
14
|
+
declare function getMiddlewaresPipe_nonHandlers(middlewaresUserLand: object[]): UniversalMiddleware;
|
|
15
|
+
declare function pipeNonHandlers(middlewares: Middleware[], nonHandlersUserLand: UniversalMiddleware[]): UniversalMiddleware;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export { getMiddlewaresPipe_nonHandlers };
|
|
2
|
+
export { getMiddlewaresPipe_handlers };
|
|
3
|
+
export { pipeNonHandlers };
|
|
4
|
+
import { enhance, isHandler, pipeRoute, } from '@universal-middleware/core';
|
|
5
|
+
import { getMiddlewares_withErrorHandling, mergeContext } from './core.js';
|
|
6
|
+
import '../../assertEnvServer.js';
|
|
7
|
+
/**
|
|
8
|
+
* What `vike(app, middlewares)` runs after the app's routes: the middlewares (looked up upon each request) that are handlers, as one universal handler (the pipe).
|
|
9
|
+
*/
|
|
10
|
+
function getMiddlewaresPipe_handlers(
|
|
11
|
+
// `object[]`: the user-land universal middlewares can come from another copy of @universal-middleware/core, whose types don't match this copy's
|
|
12
|
+
middlewaresUserLand) {
|
|
13
|
+
const handlersUserLand = middlewaresUserLand.filter(isHandler);
|
|
14
|
+
const router = pipe((middlewares) => pipeRoute([...handlersUserLand, ...middlewares.filter((middleware) => middleware.isHandler)]));
|
|
15
|
+
return enhance(async (request, context, runtime) => {
|
|
16
|
+
return ((await router(request, context, runtime)) ??
|
|
17
|
+
// Fallback when no handler answers
|
|
18
|
+
new Response('Not Found', { status: 404 }));
|
|
19
|
+
}, {
|
|
20
|
+
name: 'vike:handlers',
|
|
21
|
+
method: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],
|
|
22
|
+
path: '/**',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What `vike(app, middlewares)` applies before the app's routes: the middlewares (looked up upon each request) that aren't handlers, as one universal middleware (the pipe).
|
|
27
|
+
*/
|
|
28
|
+
function getMiddlewaresPipe_nonHandlers(
|
|
29
|
+
// `object[]`: the user-land universal middlewares can come from another copy of @universal-middleware/core, whose types don't match this copy's
|
|
30
|
+
middlewaresUserLand) {
|
|
31
|
+
const nonHandlersUserLand = middlewaresUserLand.filter((middleware) => !isHandler(middleware));
|
|
32
|
+
return enhance(pipe((middlewares) => pipeNonHandlers(middlewares, nonHandlersUserLand)), { name: 'vike:nonHandlers' });
|
|
33
|
+
}
|
|
34
|
+
function pipeNonHandlers(middlewares, nonHandlersUserLand) {
|
|
35
|
+
const nonHandlers = [
|
|
36
|
+
...middlewares.filter((middleware) => !middleware.isHandler),
|
|
37
|
+
...nonHandlersUserLand.map((middleware) => mergeContext(enhance(middleware, { runs: 'always' }))),
|
|
38
|
+
];
|
|
39
|
+
return pipeRoute(nonHandlers);
|
|
40
|
+
}
|
|
41
|
+
function pipe(getPipe) {
|
|
42
|
+
// Caching: the list changes only when the config does, so getPipe() runs once per list
|
|
43
|
+
const cache = new WeakMap();
|
|
44
|
+
return async (request, context, runtime) => {
|
|
45
|
+
const middlewares = await getMiddlewares_withErrorHandling();
|
|
46
|
+
let ret = cache.get(middlewares);
|
|
47
|
+
if (!ret)
|
|
48
|
+
cache.set(middlewares, (ret = getPipe(middlewares)));
|
|
49
|
+
return ret(request, context, runtime);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { vikeUniversalMiddleware };
|
|
2
|
+
import { type RuntimeAdapterTarget } from '@universal-middleware/core';
|
|
3
|
+
import '../../assertEnvServer.js';
|
|
4
|
+
declare const vikeUniversalMiddleware: typeof handler & import("@universal-middleware/core").WithUniversalSymbols<{
|
|
5
|
+
readonly name: 'vike';
|
|
6
|
+
readonly method: ["GET", "POST", "PUT", "PATCH", "HEAD", "OPTIONS"];
|
|
7
|
+
readonly path: '/**';
|
|
8
|
+
}>;
|
|
9
|
+
declare function handler(request: Request, context?: Universal.Context, runtime?: RuntimeAdapterTarget<unknown>): Promise<Response>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { vikeUniversalMiddleware };
|
|
2
|
+
import { enhance, getAdapterRuntime } from '@universal-middleware/core';
|
|
3
|
+
import { getMiddlewaresPipe_handlers, getMiddlewaresPipe_nonHandlers } from './getMiddlewaresPipe.js';
|
|
4
|
+
import { routeCatchAll } from './core.js';
|
|
5
|
+
import '../../assertEnvServer.js';
|
|
6
|
+
// The Universal Middleware for Vike's built-in server.
|
|
7
|
+
// - The same two pipes that `vike(app)` applies, but without any user-land middlewares (there aren't any)
|
|
8
|
+
const vikeUniversalMiddleware = enhance(handler, routeCatchAll);
|
|
9
|
+
const pipeNonHandlers = getMiddlewaresPipe_nonHandlers([]);
|
|
10
|
+
const pipeHandlers = getMiddlewaresPipe_handlers([]);
|
|
11
|
+
async function handler(request, context = {}, runtime = getAdapterRuntime('other', { params: undefined })) {
|
|
12
|
+
// A copy: Universal Middleware's `pipe()` writes a returned context into it when a response function follows, and a Cloudflare worker's `env` (its context) is shared by all requests
|
|
13
|
+
context = { ...context };
|
|
14
|
+
const answer = await pipeNonHandlers(request, context, runtime);
|
|
15
|
+
if (answer instanceof Response)
|
|
16
|
+
return answer;
|
|
17
|
+
// The context the +middleware returned
|
|
18
|
+
if (answer && typeof answer === 'object')
|
|
19
|
+
context = answer;
|
|
20
|
+
const response = await pipeHandlers(request, context, runtime);
|
|
21
|
+
return typeof answer === 'function' ? ((await answer(response)) ?? response) : response;
|
|
22
|
+
}
|
|
@@ -207,6 +207,8 @@ function getConfigValuesBase(pageConfig, runtimeEnv, isEager) {
|
|
|
207
207
|
assert(configDef);
|
|
208
208
|
if (isEager !== null && isEager !== !!configDef.eager)
|
|
209
209
|
return 'SKIP';
|
|
210
|
+
if (configDef._valueNotLoadedAtRuntime && !runtimeEnv.isConfigEnvironment)
|
|
211
|
+
return 'SKIP';
|
|
210
212
|
if (!configDef.cumulative) {
|
|
211
213
|
const sourcesRelevant = getConfigValueSourcesRelevant(configName, runtimeEnv, pageConfig);
|
|
212
214
|
const source = sourcesRelevant[0];
|
package/dist/types/Config.d.ts
CHANGED
|
@@ -540,7 +540,7 @@ type ConfigBuiltIn = {
|
|
|
540
540
|
*
|
|
541
541
|
* The middlewares defined via `+middleware` are so called "Universal Middleware" — they work with any JavaScript server (Hono, Express, Cloudflare, ...).
|
|
542
542
|
*
|
|
543
|
-
* https://
|
|
543
|
+
* https://vike.dev/middleware
|
|
544
544
|
*/
|
|
545
545
|
middleware?: EnhancedMiddleware | EnhancedMiddleware[];
|
|
546
546
|
/**
|
|
@@ -551,6 +551,14 @@ type ConfigBuiltIn = {
|
|
|
551
551
|
* https://vike.dev/server
|
|
552
552
|
*/
|
|
553
553
|
server?: boolean | ImportStringList;
|
|
554
|
+
/**
|
|
555
|
+
* Control how your server starts.
|
|
556
|
+
*
|
|
557
|
+
* It's built into `dist/server/index.mjs` for production, and it's also run in development if you don't define `+server.js`.
|
|
558
|
+
*
|
|
559
|
+
* https://vike.dev/serverEntry
|
|
560
|
+
*/
|
|
561
|
+
serverEntry?: string | ImportStringList;
|
|
554
562
|
/**
|
|
555
563
|
* Set to `true` to create `.br` and `.gz` files for your static assets at build time, so that they don't have to be compressed on each request.
|
|
556
564
|
*
|
|
@@ -7,12 +7,12 @@ import type { GlobalContextClientInternalWithServerRouting } from '../client/run
|
|
|
7
7
|
import type { GlobalContextBasePublic } from '../shared-server-client/createGlobalContextShared.js';
|
|
8
8
|
import type { GlobalContextClientInternal } from '../client/runtime-client-routing/getGlobalContextClientInternal.js';
|
|
9
9
|
type GlobalContext = GlobalContextServer | GlobalContextClient;
|
|
10
|
-
type GlobalContextServer = Pick<GlobalContextServerInternal, 'assetsManifest' | 'config' | 'viteConfig' | 'viteConfigRuntime' | 'pages' | 'baseServer' | 'baseAssets' | 'isClientSide'> & {
|
|
10
|
+
type GlobalContextServer = Pick<GlobalContextServerInternal, 'assetsManifest' | 'config' | 'viteConfig' | 'viteConfigRuntime' | 'pages' | 'baseServer' | 'baseAssets' | 'middlewares' | 'isClientSide' | 'devMiddleware'> & {
|
|
11
11
|
/** https://vike.dev/warning/internals */
|
|
12
12
|
dangerouslyUseInternals: GlobalContextServerInternal;
|
|
13
13
|
} & Vike.GlobalContext & Vike.GlobalContextServer;
|
|
14
14
|
type GlobalContextClient = GlobalContextBasePublic & {
|
|
15
15
|
/** https://vike.dev/warning/internals */
|
|
16
16
|
dangerouslyUseInternals: GlobalContextClientInternal;
|
|
17
|
-
} & Pick<GlobalContextClientInternal, 'isClientSide'> & Vike.GlobalContext & Vike.GlobalContextClient & {};
|
|
18
|
-
type GlobalContextClientWithServerRouting = GlobalContextBasePublic & Pick<GlobalContextClientInternalWithServerRouting, 'isClientSide'> & Vike.GlobalContext & Vike.GlobalContextClient & {};
|
|
17
|
+
} & Pick<GlobalContextClientInternal, 'isClientSide' | 'devMiddleware'> & Vike.GlobalContext & Vike.GlobalContextClient & {};
|
|
18
|
+
type GlobalContextClientWithServerRouting = GlobalContextBasePublic & Pick<GlobalContextClientInternalWithServerRouting, 'isClientSide' | 'devMiddleware'> & Vike.GlobalContext & Vike.GlobalContextClient & {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
1
|
export type { PageContext };
|
|
3
2
|
export type { PageContextServer };
|
|
4
3
|
export type { PageContextClient };
|
|
@@ -8,7 +7,6 @@ export type { PageContextInternalServer };
|
|
|
8
7
|
export type { PageContextInternalClient };
|
|
9
8
|
export type { PageContextInternalClient_ServerRouting };
|
|
10
9
|
export type { PageContextInternalClient_ClientRouting };
|
|
11
|
-
export type { PageContextInitInternal };
|
|
12
10
|
export type { PageContextInit };
|
|
13
11
|
export type { PageContextBuiltInServer_deprecated as PageContextBuiltInServer };
|
|
14
12
|
export type { PageContextBuiltInClientWithClientRouting_deprecated as PageContextBuiltInClientWithClientRouting };
|
|
@@ -149,13 +147,6 @@ type PageContextInit = {
|
|
|
149
147
|
headersOriginal?: unknown;
|
|
150
148
|
/** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
|
|
151
149
|
};
|
|
152
|
-
type PageContextInitInternal = PageContextInit & {
|
|
153
|
-
_nodeDev?: {
|
|
154
|
-
req: IncomingMessage;
|
|
155
|
-
res: ServerResponse;
|
|
156
|
-
};
|
|
157
|
-
_reqWeb?: Request;
|
|
158
|
-
};
|
|
159
150
|
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextInit & PageContextUrlServer & {
|
|
160
151
|
/**
|
|
161
152
|
* The HTTP request headers.
|