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,35 +1,46 @@
|
|
|
1
1
|
export { pluginServerEntryAlias };
|
|
2
2
|
import { catchAllEntry } from '@universal-deploy/store';
|
|
3
|
+
import pc from '@brillout/picocolors';
|
|
3
4
|
import { pluginCommon } from './common.js';
|
|
4
5
|
import { escapeRegex } from '../../../../utils/escapeRegex.js';
|
|
5
|
-
import { assert } from '../../../../utils/assert.js';
|
|
6
|
+
import { assert, assertWarning } from '../../../../utils/assert.js';
|
|
6
7
|
import '../../assertEnvVite.js';
|
|
7
|
-
const
|
|
8
|
-
|
|
8
|
+
const serverAlias = 'vike:server';
|
|
9
|
+
// TO-DO/next-major-release: remove
|
|
10
|
+
const serverAliasDeprecated = 'vike:server-entry';
|
|
11
|
+
const virtualFileId = '\0' + serverAlias;
|
|
9
12
|
// === Rolldown filter
|
|
10
|
-
const
|
|
13
|
+
const filterRolldownResolveId = {
|
|
11
14
|
id: {
|
|
12
|
-
include: [
|
|
15
|
+
include: [serverAlias, serverAliasDeprecated, virtualFileId].map((id) => new RegExp(`^${escapeRegex(id)}$`)),
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
const filterRolldownLoad = {
|
|
19
|
+
id: {
|
|
20
|
+
include: [new RegExp(`^${escapeRegex(virtualFileId)}$`)],
|
|
13
21
|
},
|
|
14
22
|
};
|
|
15
23
|
// ===
|
|
16
|
-
/**
|
|
24
|
+
/** `vike:server` => alias for virtual:ud:catch-all, also re-exporting the non-default exports of +server.js (if any) */
|
|
17
25
|
function pluginServerEntryAlias(serverFilePath) {
|
|
18
26
|
return {
|
|
19
27
|
name: 'vike:pluginUniversalDeploy:alias',
|
|
20
28
|
resolveId: {
|
|
21
|
-
filter:
|
|
22
|
-
handler() {
|
|
29
|
+
filter: filterRolldownResolveId,
|
|
30
|
+
handler(id) {
|
|
31
|
+
assert(id === serverAlias || id === serverAliasDeprecated || id === virtualFileId);
|
|
32
|
+
assertWarning(id !== serverAliasDeprecated, `${pc.cyan(serverAliasDeprecated)} is deprecated in favor of ${pc.cyan(serverAlias)}, e.g. replace ${pc.cyan(`"main": "${serverAliasDeprecated}"`)} with ${pc.cyan(`"main": "${serverAlias}"`)} in your wrangler.jsonc`, { onlyOnce: true });
|
|
23
33
|
if (!serverFilePath)
|
|
24
34
|
return catchAllEntry;
|
|
25
35
|
return virtualFileId;
|
|
26
36
|
},
|
|
27
37
|
},
|
|
28
38
|
load: {
|
|
29
|
-
filter:
|
|
30
|
-
handler() {
|
|
39
|
+
filter: filterRolldownLoad,
|
|
40
|
+
handler(id) {
|
|
41
|
+
assert(id === virtualFileId);
|
|
31
42
|
assert(serverFilePath);
|
|
32
|
-
// Also re-export non-default exports, to support Durable Objects
|
|
43
|
+
// Also re-export non-default exports, e.g. to support Durable Objects
|
|
33
44
|
return `import mod from ${JSON.stringify(catchAllEntry)};
|
|
34
45
|
|
|
35
46
|
export * from ${JSON.stringify(serverFilePath)};
|
|
@@ -6,11 +6,13 @@ import { pluginServerEntryInject } from './pluginUniversalDeploy/pluginServerEnt
|
|
|
6
6
|
import { getDeployConfig } from './pluginUniversalDeploy/getDeployConfig.js';
|
|
7
7
|
import { pluginCommon } from './pluginUniversalDeploy/common.js';
|
|
8
8
|
import { hasVikeServerOrVikePhoton } from './pluginUniversalDeploy/detectDeprecated.js';
|
|
9
|
-
import { getServerConfig } from './pluginUniversalDeploy/getServerConfig.js';
|
|
9
|
+
import { getServerConfig, getServerEntryFilePath_ifDev } from './pluginUniversalDeploy/getServerConfig.js';
|
|
10
10
|
import { pluginServerEntryAlias } from './pluginUniversalDeploy/pluginServerEntryAlias.js';
|
|
11
11
|
import { pluginUnwrapProdOptions } from './pluginUniversalDeploy/pluginUnwrapProdOptions.js';
|
|
12
|
+
import { getViteCliCommand } from '../shared/isViteCli.js';
|
|
12
13
|
import { unique } from '../../../utils/unique.js';
|
|
13
14
|
import { assertUsage } from '../../../utils/assert.js';
|
|
15
|
+
import pc from '@brillout/picocolors';
|
|
14
16
|
import '../assertEnvVite.js';
|
|
15
17
|
function pluginUniversalDeploy(vikeConfig) {
|
|
16
18
|
if (hasVikeServerOrVikePhoton(vikeConfig))
|
|
@@ -25,9 +27,31 @@ function pluginUniversalDeploy(vikeConfig) {
|
|
|
25
27
|
}),
|
|
26
28
|
precompress(vikeConfig.config.precompress),
|
|
27
29
|
];
|
|
28
|
-
const { serverEntryVike, serverEntryId, serverFilePath } = serverConfig;
|
|
30
|
+
const { serverEntryVike, serverEntryId, serverFilePath, serverEntryFilePath } = serverConfig;
|
|
31
|
+
const isServerEntryDev = !!getServerEntryFilePath_ifDev(vikeConfig);
|
|
32
|
+
// Vite's CLI always starts Vite's own server => it can't run +serverEntry.js
|
|
33
|
+
assertUsage(!(isServerEntryDev && getViteCliCommand() === 'dev'), `${pc.cyan('+serverEntry.js')} (without ${pc.cyan('+server.js')}) requires ${pc.cyan('$ vike dev')} instead of ${pc.cyan('$ vite dev')} (because Vite's CLI always starts Vite's own server)`);
|
|
29
34
|
return [
|
|
30
|
-
...
|
|
35
|
+
...(!serverEntryFilePath
|
|
36
|
+
? universalDeploy({ node: { precompress: vikeConfig.config.precompress } })
|
|
37
|
+
: [
|
|
38
|
+
// +serverEntry.js is the production server entry dist/server/index.mjs (instead of @universal-deploy/node's server)
|
|
39
|
+
// https://vike.dev/serverEntry
|
|
40
|
+
...universalDeploy({
|
|
41
|
+
entry: {
|
|
42
|
+
id: serverEntryFilePath,
|
|
43
|
+
// Without +server.js, +serverEntry.js handles requests itself (it calls renderPage() instead of using vike:server) and `$ vike dev` runs it
|
|
44
|
+
catchAll: !isServerEntryDev,
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
precompress(vikeConfig.config.precompress),
|
|
48
|
+
resolveTargets((targets) => {
|
|
49
|
+
const target = targets[0];
|
|
50
|
+
assertUsage(target === undefined, `+serverEntry cannot be used with ${target} (because it uses its own server entry)`);
|
|
51
|
+
}),
|
|
52
|
+
// dist/server/index.mjs loads dist/server/entry.mjs
|
|
53
|
+
pluginServerEntryInject(serverEntryFilePath),
|
|
54
|
+
]),
|
|
31
55
|
{
|
|
32
56
|
name: 'vike:pluginUniversalDeploy:entries',
|
|
33
57
|
config() {
|
|
@@ -6,8 +6,10 @@ export type { RuntimeEnv };
|
|
|
6
6
|
export type { RuntimeEnvRuntime };
|
|
7
7
|
import type { ConfigEnv, ConfigValueSource, PageConfigBuildTime, PageConfigGlobalBuildTime } from '../../../../types/PageConfig.js';
|
|
8
8
|
import '../../assertEnvVite.js';
|
|
9
|
-
type RuntimeEnv = RuntimeEnvRuntime
|
|
10
|
-
|
|
9
|
+
type RuntimeEnv = (RuntimeEnvRuntime & {
|
|
10
|
+
isConfigEnvironment?: undefined;
|
|
11
|
+
}) | {
|
|
12
|
+
isConfigEnvironment: true;
|
|
11
13
|
};
|
|
12
14
|
type RuntimeEnvRuntime = {
|
|
13
15
|
environmentName: string;
|
|
@@ -44,7 +44,7 @@ function getConfigValueSourceRelevantAnyEnv(configName, pageConfig) {
|
|
|
44
44
|
return source;
|
|
45
45
|
}
|
|
46
46
|
function isRuntimeEnvMatch(configEnv, runtimeEnv) {
|
|
47
|
-
if (
|
|
47
|
+
if (runtimeEnv.isConfigEnvironment)
|
|
48
48
|
return !!configEnv.config;
|
|
49
49
|
// Runtime
|
|
50
50
|
if (!configEnv[runtimeEnv.environmentName])
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { addSsrMiddleware };
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
2
|
+
import { vikeUniversalMiddleware } from '../../../server/runtime/universal-middleware/vikeUniversalMiddleware.js';
|
|
3
|
+
import { getAdapterRuntime } from '@universal-middleware/core';
|
|
4
|
+
import { createRequestAdapter } from '@universal-middleware/node/request';
|
|
5
|
+
import { sendResponse } from '@universal-middleware/node/response';
|
|
5
6
|
import '../assertEnvVite.js';
|
|
7
|
+
const requestAdapter = createRequestAdapter();
|
|
6
8
|
function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled) {
|
|
7
9
|
middlewares.use(async (req, res, next) => {
|
|
8
10
|
if (res.headersSent)
|
|
@@ -10,26 +12,11 @@ function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled)
|
|
|
10
12
|
const url = req.originalUrl || req.url;
|
|
11
13
|
if (!url)
|
|
12
14
|
return next();
|
|
13
|
-
|
|
14
|
-
const pageContextInit = {
|
|
15
|
-
urlOriginal: url,
|
|
16
|
-
headersOriginal: headers,
|
|
17
|
-
_nodeDev: { req, res },
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(pageContextInit, 'userAgent', {
|
|
20
|
-
get() {
|
|
21
|
-
// TO-DO/next-major-release: assertUsage() instead of assertWarning()
|
|
22
|
-
assertWarning(false, `${pc.cyan('pageContext.userAgent')} is deprecated: use ${pc.cyan("pageContext.headers['user-agent']")} instead.`, {
|
|
23
|
-
showStackTrace: true,
|
|
24
|
-
onlyOnce: true,
|
|
25
|
-
});
|
|
26
|
-
return headers['user-agent'];
|
|
27
|
-
},
|
|
28
|
-
enumerable: false,
|
|
29
|
-
});
|
|
30
|
-
let pageContext;
|
|
15
|
+
let response;
|
|
31
16
|
try {
|
|
32
|
-
|
|
17
|
+
const runtime = Object.assign(getAdapterRuntime('other', { params: undefined }), { req, res });
|
|
18
|
+
const context = { urlOriginal: url };
|
|
19
|
+
response = await vikeUniversalMiddleware(requestAdapter(req, res), context, runtime);
|
|
33
20
|
}
|
|
34
21
|
catch (err) {
|
|
35
22
|
// Throwing an error in a connect middleware shuts down the server
|
|
@@ -39,7 +26,7 @@ function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled)
|
|
|
39
26
|
// - We purposely don't use next(err) to align behavior: we use our own/copied implementation of buildErrorMessage() regardless of whether the user uses Vite's dev middleware or Vite's standalone dev server
|
|
40
27
|
return next();
|
|
41
28
|
}
|
|
42
|
-
if (
|
|
29
|
+
if (response.status === 404 && isPreview && isPrerenderingEnabled) {
|
|
43
30
|
// Serve /dist/client/404.html instead
|
|
44
31
|
return next();
|
|
45
32
|
}
|
|
@@ -49,21 +36,6 @@ function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled)
|
|
|
49
36
|
if (value)
|
|
50
37
|
res.setHeader(name, value);
|
|
51
38
|
}
|
|
52
|
-
|
|
53
|
-
setHeadersWithMultipleCookies(res, httpResponse.headers);
|
|
54
|
-
res.statusCode = httpResponse.statusCode;
|
|
55
|
-
httpResponse.pipe(res);
|
|
39
|
+
await sendResponse(response, res);
|
|
56
40
|
});
|
|
57
41
|
}
|
|
58
|
-
// A response can have several Set-Cookie headers: res.setHeader() would only keep the last one
|
|
59
|
-
function setHeadersWithMultipleCookies(res, headers) {
|
|
60
|
-
const cookies = [];
|
|
61
|
-
headers.forEach(([name, value]) => {
|
|
62
|
-
if (name.toLowerCase() === 'set-cookie')
|
|
63
|
-
cookies.push(value);
|
|
64
|
-
else
|
|
65
|
-
res.setHeader(name, value);
|
|
66
|
-
});
|
|
67
|
-
if (cookies.length > 0)
|
|
68
|
-
res.setHeader('set-cookie', cookies);
|
|
69
|
-
}
|
|
@@ -2,4 +2,4 @@ export { findPageFiles };
|
|
|
2
2
|
import type { ResolvedConfig } from 'vite';
|
|
3
3
|
import type { FileType } from '../../../shared-server-client/getPageFiles/fileTypes.js';
|
|
4
4
|
import '../assertEnvVite.js';
|
|
5
|
-
declare function findPageFiles(config: ResolvedConfig, fileTypes: FileType[]
|
|
5
|
+
declare function findPageFiles(config: ResolvedConfig, fileTypes: FileType[]): Promise<string[]>;
|
|
@@ -2,22 +2,12 @@ export { findPageFiles };
|
|
|
2
2
|
import { glob } from 'tinyglobby';
|
|
3
3
|
import { scriptFileExtensionPattern } from '../../../utils/isScriptFile.js';
|
|
4
4
|
import { toPosixPath } from '../../../utils/path.js';
|
|
5
|
-
import { assertWarning } from '../../../utils/assert.js';
|
|
6
|
-
import pc from '@brillout/picocolors';
|
|
7
5
|
import { getOutDirs } from './getOutDirs.js';
|
|
8
6
|
import '../assertEnvVite.js';
|
|
9
|
-
async function findPageFiles(config, fileTypes
|
|
7
|
+
async function findPageFiles(config, fileTypes) {
|
|
10
8
|
const cwd = config.root;
|
|
11
9
|
const { outDirRoot } = getOutDirs(config, undefined);
|
|
12
|
-
const timeBase = new Date().getTime();
|
|
13
10
|
let pageFiles = await glob(fileTypes.map((fileType) => `**/*${fileType}.${scriptFileExtensionPattern}`), { ignore: ['**/node_modules/**', `${outDirRoot}/**`], cwd, dot: false, expandDirectories: false });
|
|
14
11
|
pageFiles = pageFiles.map((p) => '/' + toPosixPath(p));
|
|
15
|
-
const time = new Date().getTime() - timeBase;
|
|
16
|
-
if (isDev) {
|
|
17
|
-
// We only warn in dev, because while building it's expected to take a long time as tinyglobby is competing for resources with other tasks
|
|
18
|
-
assertWarning(time < 1.5 * 1000, `Finding your page files ${pc.cyan('**/*.page.*')} took an unexpected long time (${time}ms). Reach out to the vike maintainer.`, {
|
|
19
|
-
onlyOnce: 'slow-page-files-search',
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
12
|
return pageFiles;
|
|
23
13
|
}
|
|
@@ -56,11 +56,13 @@ type ConfigDefinition = {
|
|
|
56
56
|
}) => boolean);
|
|
57
57
|
/** Whether changes to the configuration should trigger a Vite restart. */
|
|
58
58
|
vite?: boolean;
|
|
59
|
-
/** @
|
|
59
|
+
/** @internal */
|
|
60
60
|
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
61
|
-
/** @
|
|
61
|
+
/** @internal */
|
|
62
62
|
_valueIsFilePath?: true;
|
|
63
|
-
/** @
|
|
63
|
+
/** @internal */
|
|
64
|
+
_valueNotLoadedAtRuntime?: true;
|
|
65
|
+
/** @internal */
|
|
64
66
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
65
67
|
isDefinedByPeerDependency?: undefined;
|
|
66
68
|
} | ConfigDefinitionDefinedByPeerDependency;
|
|
@@ -245,6 +245,15 @@ const metaBuiltIn = {
|
|
|
245
245
|
server: {
|
|
246
246
|
env: { server: true },
|
|
247
247
|
global: true,
|
|
248
|
+
// virtual:vike:global-entry:server shouldn't import +server.js
|
|
249
|
+
// - Otherwise a +server.js calling `await getGlobalContext()` would wait for itself and hang indefinitely
|
|
250
|
+
_valueNotLoadedAtRuntime: true,
|
|
251
|
+
},
|
|
252
|
+
serverEntry: {
|
|
253
|
+
// The value is merely the file path of the server entry, which becomes dist/server/index.mjs — Vike never loads it as a config value
|
|
254
|
+
env: { config: true },
|
|
255
|
+
global: true,
|
|
256
|
+
_valueIsFilePath: true,
|
|
248
257
|
},
|
|
249
258
|
precompress: {
|
|
250
259
|
env: { config: true },
|
|
@@ -79,6 +79,7 @@ declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinition
|
|
|
79
79
|
vite?: boolean;
|
|
80
80
|
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
81
81
|
_valueIsFilePath?: true;
|
|
82
|
+
_valueNotLoadedAtRuntime?: true;
|
|
82
83
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
83
84
|
isDefinedByPeerDependency?: undefined;
|
|
84
85
|
} | null;
|
|
@@ -531,7 +531,7 @@ function assertOnBeforeRenderEnv(pageConfig) {
|
|
|
531
531
|
function getConfigValues(pageConfig, isGlobalConfig) {
|
|
532
532
|
const tolerateMissingValue = !isGlobalConfig;
|
|
533
533
|
const configValues = {};
|
|
534
|
-
getConfigValuesBase(pageConfig, {
|
|
534
|
+
getConfigValuesBase(pageConfig, { isConfigEnvironment: true }, null).forEach((entry) => {
|
|
535
535
|
if (entry.configValueBase.type === 'computed') {
|
|
536
536
|
assert('value' in entry); // Help TS
|
|
537
537
|
const { configValueBase, value, configName } = entry;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { setGlobalContext_prodBuildEntry } from '../runtime/globalContext.js';
|
|
2
|
+
export { getMiddlewaresPipe_nonHandlers, getMiddlewaresPipe_handlers, } from '../runtime/universal-middleware/getMiddlewaresPipe.js';
|
|
2
3
|
export { route, getPagesAndRoutes };
|
|
3
4
|
export type { PageRoutes, PageFile, PageConfigRuntime as PageConfig };
|
|
4
5
|
import { route as routeInternal, type PageRoutes } from '../../shared-server-client/route/index.js';
|
|
@@ -1,5 +1,7 @@
|
|
|
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';
|
|
3
5
|
// Used by vite-plugin-vercel
|
|
4
6
|
export { route, getPagesAndRoutes };
|
|
5
7
|
import { route as routeInternal } from '../../shared-server-client/route/index.js';
|
|
@@ -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
|
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import '../assertEnvServer.js';
|
|
2
2
|
declare const _default: {
|
|
3
|
-
fetch: (
|
|
4
|
-
name:
|
|
5
|
-
method:
|
|
6
|
-
path:
|
|
7
|
-
immutable: true;
|
|
3
|
+
fetch: ((request: Request, context?: Universal.Context, runtime?: import("@universal-middleware/core").RuntimeAdapterTarget<unknown>) => Promise<Response>) & import("@universal-middleware/core").WithUniversalSymbols<{
|
|
4
|
+
readonly name: 'vike';
|
|
5
|
+
readonly method: ["GET", "POST", "PUT", "PATCH", "HEAD", "OPTIONS"];
|
|
6
|
+
readonly path: '/**';
|
|
8
7
|
}>;
|
|
9
8
|
};
|
|
10
9
|
export default _default;
|
|
@@ -67,10 +67,9 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
67
67
|
_isPrerendering: false;
|
|
68
68
|
assetsManifest: null;
|
|
69
69
|
_viteDevServer: ViteDevServer | undefined;
|
|
70
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
70
71
|
viteConfig: ResolvedConfig | undefined;
|
|
71
72
|
} & {
|
|
72
|
-
baseServer: string;
|
|
73
|
-
baseAssets: string;
|
|
74
73
|
viteConfigRuntime: {
|
|
75
74
|
root: string;
|
|
76
75
|
build: {
|
|
@@ -81,6 +80,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
81
80
|
inject: boolean | undefined;
|
|
82
81
|
};
|
|
83
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[];
|
|
84
91
|
} & {
|
|
85
92
|
prerenderContext: PrerenderContext | undefined;
|
|
86
93
|
}) | (Record<string, unknown> & {
|
|
@@ -118,12 +125,11 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
118
125
|
_isProduction: true;
|
|
119
126
|
assetsManifest: ViteManifest;
|
|
120
127
|
_viteDevServer: null;
|
|
128
|
+
devMiddleware: null;
|
|
121
129
|
_usesClientRouter: boolean;
|
|
122
130
|
_isPrerendering: true;
|
|
123
131
|
viteConfig: ResolvedConfig;
|
|
124
132
|
} & {
|
|
125
|
-
baseServer: string;
|
|
126
|
-
baseAssets: string;
|
|
127
133
|
viteConfigRuntime: {
|
|
128
134
|
root: string;
|
|
129
135
|
build: {
|
|
@@ -134,6 +140,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
134
140
|
inject: boolean | undefined;
|
|
135
141
|
};
|
|
136
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[];
|
|
137
151
|
} & {
|
|
138
152
|
prerenderContext: PrerenderContext | undefined;
|
|
139
153
|
}) | (Record<string, unknown> & {
|
|
@@ -171,12 +185,11 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
171
185
|
_isProduction: true;
|
|
172
186
|
assetsManifest: ViteManifest;
|
|
173
187
|
_viteDevServer: null;
|
|
188
|
+
devMiddleware: null;
|
|
174
189
|
_usesClientRouter: boolean;
|
|
175
190
|
_isPrerendering: false;
|
|
176
191
|
viteConfig: null;
|
|
177
192
|
} & {
|
|
178
|
-
baseServer: string;
|
|
179
|
-
baseAssets: string;
|
|
180
193
|
viteConfigRuntime: {
|
|
181
194
|
root: string;
|
|
182
195
|
build: {
|
|
@@ -187,6 +200,14 @@ declare function getGlobalContextServerInternal(): Promise<{
|
|
|
187
200
|
inject: boolean | undefined;
|
|
188
201
|
};
|
|
189
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[];
|
|
190
211
|
} & {
|
|
191
212
|
prerenderContext: PrerenderContext | undefined;
|
|
192
213
|
});
|
|
@@ -227,6 +248,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
227
248
|
_isPrerendering: false;
|
|
228
249
|
assetsManifest: null;
|
|
229
250
|
_viteDevServer: ViteDevServer | undefined;
|
|
251
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
230
252
|
viteConfig: ResolvedConfig | undefined;
|
|
231
253
|
} | {
|
|
232
254
|
isClientSide: false;
|
|
@@ -235,6 +257,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
235
257
|
_isProduction: true;
|
|
236
258
|
assetsManifest: ViteManifest;
|
|
237
259
|
_viteDevServer: null;
|
|
260
|
+
devMiddleware: null;
|
|
238
261
|
_usesClientRouter: boolean;
|
|
239
262
|
_isPrerendering: true;
|
|
240
263
|
viteConfig: ResolvedConfig;
|
|
@@ -245,12 +268,11 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
245
268
|
_isProduction: true;
|
|
246
269
|
assetsManifest: ViteManifest;
|
|
247
270
|
_viteDevServer: null;
|
|
271
|
+
devMiddleware: null;
|
|
248
272
|
_usesClientRouter: boolean;
|
|
249
273
|
_isPrerendering: false;
|
|
250
274
|
viteConfig: null;
|
|
251
275
|
}) & {
|
|
252
|
-
baseServer: string;
|
|
253
|
-
baseAssets: string;
|
|
254
276
|
viteConfigRuntime: {
|
|
255
277
|
root: string;
|
|
256
278
|
build: {
|
|
@@ -261,6 +283,14 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
|
|
|
261
283
|
inject: boolean | undefined;
|
|
262
284
|
};
|
|
263
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[];
|
|
264
294
|
})) & {
|
|
265
295
|
prerenderContext: PrerenderContext | undefined;
|
|
266
296
|
})) | null;
|
|
@@ -338,6 +368,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
338
368
|
_isPrerendering: false;
|
|
339
369
|
assetsManifest: null;
|
|
340
370
|
_viteDevServer: ViteDevServer | undefined;
|
|
371
|
+
devMiddleware: import("vite").Connect.Server | null;
|
|
341
372
|
viteConfig: ResolvedConfig | undefined;
|
|
342
373
|
} | {
|
|
343
374
|
isClientSide: false;
|
|
@@ -346,6 +377,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
346
377
|
_isProduction: true;
|
|
347
378
|
assetsManifest: ViteManifest;
|
|
348
379
|
_viteDevServer: null;
|
|
380
|
+
devMiddleware: null;
|
|
349
381
|
_usesClientRouter: boolean;
|
|
350
382
|
_isPrerendering: true;
|
|
351
383
|
viteConfig: ResolvedConfig;
|
|
@@ -356,12 +388,11 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
356
388
|
_isProduction: true;
|
|
357
389
|
assetsManifest: ViteManifest;
|
|
358
390
|
_viteDevServer: null;
|
|
391
|
+
devMiddleware: null;
|
|
359
392
|
_usesClientRouter: boolean;
|
|
360
393
|
_isPrerendering: false;
|
|
361
394
|
viteConfig: null;
|
|
362
395
|
}) & {
|
|
363
|
-
baseServer: string;
|
|
364
|
-
baseAssets: string;
|
|
365
396
|
viteConfigRuntime: {
|
|
366
397
|
root: string;
|
|
367
398
|
build: {
|
|
@@ -372,6 +403,14 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
|
|
|
372
403
|
inject: boolean | undefined;
|
|
373
404
|
};
|
|
374
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[];
|
|
375
414
|
})) & {
|
|
376
415
|
prerenderContext: PrerenderContext | undefined;
|
|
377
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';
|