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,7 +1,8 @@
|
|
|
1
1
|
export { isViteCli };
|
|
2
2
|
export { getViteCliArgs };
|
|
3
|
-
export {
|
|
3
|
+
export { getViteCliArgsMinimal };
|
|
4
4
|
export { getViteCliCommand };
|
|
5
|
+
// Copied from Vite's CLI
|
|
5
6
|
import { assert } from '../../../utils/assert.js';
|
|
6
7
|
import { isObject } from '../../../utils/isObject.js';
|
|
7
8
|
import { isToolCli } from '../../../utils/isToolCli.js';
|
|
@@ -11,48 +12,23 @@ const desc = 'vike:vite-cli-simulation';
|
|
|
11
12
|
function isViteCli() {
|
|
12
13
|
return isToolCli('vite');
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
assert(
|
|
20
|
-
|
|
15
|
+
function parseViteCli() {
|
|
16
|
+
let viteCli;
|
|
17
|
+
const onCommand = (command) => (root, options) => {
|
|
18
|
+
assert(viteCli === undefined);
|
|
19
|
+
assert(root === undefined || typeof root === 'string');
|
|
20
|
+
assert(isObject(options));
|
|
21
|
+
// Same as Vite: duplicated options => the last value wins
|
|
22
|
+
for (const [key, value] of Object.entries(options)) {
|
|
23
|
+
if (Array.isArray(value))
|
|
24
|
+
options[key] = value[value.length - 1];
|
|
25
|
+
}
|
|
26
|
+
assert(options.config === undefined || typeof options.config === 'string');
|
|
27
|
+
viteCli = { command, root, options };
|
|
21
28
|
};
|
|
22
|
-
//
|
|
23
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L186-L188
|
|
24
|
-
const cli = cac(desc);
|
|
25
|
-
// dev
|
|
26
|
-
cli
|
|
27
|
-
.command('[root]', desc)
|
|
28
|
-
.alias('serve')
|
|
29
|
-
.alias('dev')
|
|
30
|
-
.action(() => {
|
|
31
|
-
setCommand('dev');
|
|
32
|
-
});
|
|
33
|
-
// build
|
|
34
|
-
cli.command('build [root]', desc).action(() => {
|
|
35
|
-
setCommand('build');
|
|
36
|
-
});
|
|
37
|
-
// optimize
|
|
38
|
-
cli.command('optimize [root]', desc).action(() => {
|
|
39
|
-
setCommand('optimize');
|
|
40
|
-
});
|
|
41
|
-
// preview
|
|
42
|
-
cli.command('preview [root]', desc).action(() => {
|
|
43
|
-
setCommand('preview');
|
|
44
|
-
});
|
|
45
|
-
cli.parse();
|
|
46
|
-
assert(command);
|
|
47
|
-
return command;
|
|
48
|
-
}
|
|
49
|
-
function getViteBuildCliArgs() {
|
|
50
|
-
if (!isViteCli())
|
|
51
|
-
return null;
|
|
52
|
-
// Copied & adapted from Vite
|
|
29
|
+
// We need to declare all Vite's options, otherwise cac consumes the next argument as the value of boolean options (e.g. `vite build --emptyOutDir some-root`).
|
|
53
30
|
const cli = cac(desc);
|
|
54
31
|
// Common configs
|
|
55
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L169-L182
|
|
56
32
|
cli
|
|
57
33
|
.option('-c, --config <file>', desc)
|
|
58
34
|
.option('--base <path>', desc)
|
|
@@ -62,8 +38,22 @@ function getViteBuildCliArgs() {
|
|
|
62
38
|
.option('-d, --debug [feat]', desc)
|
|
63
39
|
.option('-f, --filter <filter>', desc)
|
|
64
40
|
.option('-m, --mode <mode>', desc);
|
|
65
|
-
//
|
|
66
|
-
|
|
41
|
+
// dev
|
|
42
|
+
cli
|
|
43
|
+
.command('[root]', desc)
|
|
44
|
+
.alias('serve')
|
|
45
|
+
.alias('dev')
|
|
46
|
+
.option('--host [host]', desc)
|
|
47
|
+
.option('--port <port>', desc)
|
|
48
|
+
.option('--open [path]', desc)
|
|
49
|
+
.option('--cors', desc)
|
|
50
|
+
.option('--strictPort', desc)
|
|
51
|
+
.option('--force', desc)
|
|
52
|
+
.option('--experimentalBundle', desc)
|
|
53
|
+
// Options that this copy doesn't declare (e.g. added by newer Vite versions) are still validated by Vite's own CLI, which throws `Unknown option` for options Vite doesn't know
|
|
54
|
+
.allowUnknownOptions()
|
|
55
|
+
.action(onCommand('dev'));
|
|
56
|
+
// build
|
|
67
57
|
cli
|
|
68
58
|
.command('build [root]', desc)
|
|
69
59
|
.option('--target <target>', desc)
|
|
@@ -71,35 +61,61 @@ function getViteBuildCliArgs() {
|
|
|
71
61
|
.option('--assetsDir <dir>', desc)
|
|
72
62
|
.option('--assetsInlineLimit <number>', desc)
|
|
73
63
|
.option('--ssr [entry]', desc)
|
|
74
|
-
.option('--sourcemap', desc)
|
|
64
|
+
.option('--sourcemap [output]', desc)
|
|
75
65
|
.option('--minify [minifier]', desc)
|
|
76
66
|
.option('--manifest [name]', desc)
|
|
77
67
|
.option('--ssrManifest [name]', desc)
|
|
78
68
|
.option('--emptyOutDir', desc)
|
|
79
69
|
.option('-w, --watch', desc)
|
|
80
70
|
.option('--app', desc)
|
|
81
|
-
.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
build: buildOptions,
|
|
96
|
-
...(options.app ? { builder: {} } : {}),
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
let configFromCli = null;
|
|
71
|
+
.allowUnknownOptions()
|
|
72
|
+
.action(onCommand('build'));
|
|
73
|
+
// optimize
|
|
74
|
+
cli.command('optimize [root]', desc).option('--force', desc).allowUnknownOptions().action(onCommand('optimize'));
|
|
75
|
+
// preview
|
|
76
|
+
cli
|
|
77
|
+
.command('preview [root]', desc)
|
|
78
|
+
.option('--host [host]', desc)
|
|
79
|
+
.option('--port <port>', desc)
|
|
80
|
+
.option('--strictPort', desc)
|
|
81
|
+
.option('--open [path]', desc)
|
|
82
|
+
.option('--outDir <dir>', desc)
|
|
83
|
+
.allowUnknownOptions()
|
|
84
|
+
.action(onCommand('preview'));
|
|
100
85
|
cli.parse();
|
|
101
|
-
|
|
102
|
-
|
|
86
|
+
assert(viteCli);
|
|
87
|
+
return viteCli;
|
|
88
|
+
}
|
|
89
|
+
function getViteCliCommand() {
|
|
90
|
+
if (!isViteCli())
|
|
91
|
+
return null;
|
|
92
|
+
return parseViteCli().command;
|
|
93
|
+
}
|
|
94
|
+
function getViteCliArgsMinimal() {
|
|
95
|
+
if (!isViteCli())
|
|
96
|
+
return null;
|
|
97
|
+
const { root, options } = parseViteCli();
|
|
98
|
+
return { root, configFile: options.config };
|
|
99
|
+
}
|
|
100
|
+
function getViteCliArgs() {
|
|
101
|
+
if (!isViteCli())
|
|
102
|
+
return null;
|
|
103
|
+
const { command, root, options } = parseViteCli();
|
|
104
|
+
if (command !== 'build')
|
|
105
|
+
return null;
|
|
106
|
+
// Like Vite: all options except the global ones go to `build`
|
|
107
|
+
const buildOptions = cleanGlobalCLIOptions(cleanBuilderCLIOptions(options));
|
|
108
|
+
return {
|
|
109
|
+
root,
|
|
110
|
+
base: options.base,
|
|
111
|
+
mode: options.mode,
|
|
112
|
+
configFile: options.config,
|
|
113
|
+
configLoader: options.configLoader,
|
|
114
|
+
logLevel: options.logLevel,
|
|
115
|
+
clearScreen: options.clearScreen,
|
|
116
|
+
build: buildOptions,
|
|
117
|
+
...(options.app ? { builder: {} } : {}),
|
|
118
|
+
};
|
|
103
119
|
function cleanGlobalCLIOptions(options) {
|
|
104
120
|
const ret = { ...options };
|
|
105
121
|
delete ret['--'];
|
|
@@ -129,29 +145,9 @@ function getViteBuildCliArgs() {
|
|
|
129
145
|
}
|
|
130
146
|
return ret;
|
|
131
147
|
}
|
|
132
|
-
// https://github.com/vitejs/vite/blob/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e/packages/vite/src/node/cli.ts#L141
|
|
133
148
|
function cleanBuilderCLIOptions(options) {
|
|
134
149
|
const ret = { ...options };
|
|
135
150
|
delete ret.app;
|
|
136
151
|
return ret;
|
|
137
152
|
}
|
|
138
153
|
}
|
|
139
|
-
function getViteCliArgs() {
|
|
140
|
-
if (!isViteCli())
|
|
141
|
-
return null;
|
|
142
|
-
const cli = cac(desc);
|
|
143
|
-
cli.option('-c, --config <file>', desc);
|
|
144
|
-
let result = null;
|
|
145
|
-
const setResult = (root, options) => {
|
|
146
|
-
assert(root === undefined || typeof root === 'string');
|
|
147
|
-
assert(isObject(options));
|
|
148
|
-
assert(options.config === undefined || typeof options.config === 'string');
|
|
149
|
-
result = { root, configFile: options.config };
|
|
150
|
-
};
|
|
151
|
-
cli.command('[root]', desc).alias('serve').alias('dev').action(setResult);
|
|
152
|
-
cli.command('build [root]', desc).action(setResult);
|
|
153
|
-
cli.command('optimize [root]', desc).action(setResult);
|
|
154
|
-
cli.command('preview [root]', desc).action(setResult);
|
|
155
|
-
cli.parse();
|
|
156
|
-
return result;
|
|
157
|
-
}
|
|
@@ -4,8 +4,7 @@ export { isViteServerSide_onlySsrEnv };
|
|
|
4
4
|
export { isViteServerSide_extraSafe };
|
|
5
5
|
export { isViteServerSide_applyToEnvironment };
|
|
6
6
|
export { isViteServerSide_configEnvironment };
|
|
7
|
-
import {
|
|
8
|
-
import { assert, assertUsage } from '../../../utils/assert.js';
|
|
7
|
+
import { assert } from '../../../utils/assert.js';
|
|
9
8
|
import '../assertEnvVite.js';
|
|
10
9
|
function isViteServerSide_impl(configGlobal, viteEnv) {
|
|
11
10
|
assert(!('consumer' in configGlobal)); // make sure configGlobal isn't viteEnv.config
|
|
@@ -60,11 +59,7 @@ function isViteServerSide_extraSafe(config, viteEnv, options) {
|
|
|
60
59
|
optionsSsr: options?.ssr ?? null,
|
|
61
60
|
};
|
|
62
61
|
assert(options, debug);
|
|
63
|
-
|
|
64
|
-
assert(typeof options.ssr === 'boolean', debug)
|
|
65
|
-
/*/
|
|
66
|
-
assertUsage(typeof options.ssr === 'boolean', `You're using an old Vite version — update Vite to ${viteVersionMin} or above.`);
|
|
67
|
-
//*/
|
|
62
|
+
assert(typeof options.ssr === 'boolean', debug);
|
|
68
63
|
assert(options.ssr === isServerSide, debug);
|
|
69
64
|
return isServerSide;
|
|
70
65
|
}
|
|
@@ -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
|
-
/** @
|
|
60
|
-
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed) => unknown;
|
|
61
|
-
/** @
|
|
59
|
+
/** @internal */
|
|
60
|
+
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
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;
|
|
@@ -53,14 +53,15 @@ const metaBuiltIn = {
|
|
|
53
53
|
route: {
|
|
54
54
|
env: {
|
|
55
55
|
server: true,
|
|
56
|
-
client:
|
|
56
|
+
client: true,
|
|
57
|
+
clientRoutingOnly: true,
|
|
57
58
|
// For vite-plugin-vercel
|
|
58
59
|
config: true,
|
|
59
60
|
},
|
|
60
61
|
eager: true,
|
|
61
62
|
},
|
|
62
63
|
guard: {
|
|
63
|
-
env: { server: true, client:
|
|
64
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
64
65
|
},
|
|
65
66
|
data: {
|
|
66
67
|
env: { server: true },
|
|
@@ -70,7 +71,7 @@ const metaBuiltIn = {
|
|
|
70
71
|
cumulative: true,
|
|
71
72
|
},
|
|
72
73
|
iKnowThePerformanceRisksOfAsyncRouteFunctions: {
|
|
73
|
-
env: { server: true, client:
|
|
74
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
74
75
|
eager: true,
|
|
75
76
|
},
|
|
76
77
|
filesystemRoutingRoot: {
|
|
@@ -114,12 +115,13 @@ const metaBuiltIn = {
|
|
|
114
115
|
hasServerOnlyHook: {
|
|
115
116
|
env: { client: true },
|
|
116
117
|
eager: true,
|
|
117
|
-
_computed: (pageConfig) => {
|
|
118
|
+
_computed: (pageConfig, isDev) => {
|
|
118
119
|
const sources = ['data', 'onBeforeRender', 'onCreatePageContext', 'guard']
|
|
119
120
|
.map((hookName) => getConfigValueSourcesRelevant(hookName, {
|
|
120
|
-
|
|
121
|
+
environmentName: 'server',
|
|
121
122
|
// TO-DO/eventually/remove-server-router: let's eventually remove support for Server Routing
|
|
122
123
|
isClientRouting: true,
|
|
124
|
+
isDev,
|
|
123
125
|
}, pageConfig))
|
|
124
126
|
.flat(1)
|
|
125
127
|
// Server-only
|
|
@@ -243,6 +245,15 @@ const metaBuiltIn = {
|
|
|
243
245
|
server: {
|
|
244
246
|
env: { server: true },
|
|
245
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,
|
|
246
257
|
},
|
|
247
258
|
precompress: {
|
|
248
259
|
env: { config: true },
|
|
@@ -253,7 +264,7 @@ const metaBuiltIn = {
|
|
|
253
264
|
global: true,
|
|
254
265
|
},
|
|
255
266
|
onBeforeRoute: {
|
|
256
|
-
env: { server: true, client:
|
|
267
|
+
env: { server: true, client: true, clientRoutingOnly: true },
|
|
257
268
|
eager: true,
|
|
258
269
|
global: true,
|
|
259
270
|
},
|
|
@@ -505,12 +505,19 @@ function getConfigExecutionErrorIntroMsg(err) {
|
|
|
505
505
|
const errIntroMsg = execErrIntroMsg.get(err);
|
|
506
506
|
return errIntroMsg ?? null;
|
|
507
507
|
}
|
|
508
|
+
const processId = crypto.randomUUID();
|
|
508
509
|
function getTemporaryBuildFilePath(filePathAbsoluteFilesystem, code) {
|
|
509
510
|
assertPosixPath(filePathAbsoluteFilesystem);
|
|
510
511
|
const fileDir = path.posix.dirname(filePathAbsoluteFilesystem);
|
|
511
512
|
const filename = path.posix.basename(filePathAbsoluteFilesystem);
|
|
512
|
-
|
|
513
|
-
|
|
513
|
+
const fileHash = crypto
|
|
514
|
+
.createHash('md5')
|
|
515
|
+
// Using content hash in file path, so that the cache of dynamic `import()` behaves as we want.
|
|
516
|
+
.update(code)
|
|
517
|
+
// Parallel processes shouldn't overwrite each other's temporary file
|
|
518
|
+
.update(processId)
|
|
519
|
+
.digest('hex')
|
|
520
|
+
.slice(0, 12);
|
|
514
521
|
// Syntax with semicolon `build:${/*...*/}` doesn't work on Windows: https://github.com/vikejs/vike/issues/800#issuecomment-1517329455
|
|
515
522
|
const filePathTmp = path.posix.join(fileDir, `${filename}.build-${fileHash}.mjs`);
|
|
516
523
|
assert(isTemporaryBuildFile(filePathTmp));
|
|
@@ -3,6 +3,7 @@ export type { VikeConfig };
|
|
|
3
3
|
export { getVikeConfigInternal };
|
|
4
4
|
export { getVikeConfigInternalOptional };
|
|
5
5
|
export { setVikeConfigContext };
|
|
6
|
+
export { setViteEnvironmentNames };
|
|
6
7
|
export { isVikeConfigContextSet };
|
|
7
8
|
export { reloadVikeConfig };
|
|
8
9
|
export { isV1Design };
|
|
@@ -36,6 +37,7 @@ type VikeConfigInternal = GlobalConfigPublic & {
|
|
|
36
37
|
_pageConfigGlobal: PageConfigGlobalBuildTime;
|
|
37
38
|
_vikeConfigDependencies: Set<string>;
|
|
38
39
|
_extensions: PlusFile[];
|
|
40
|
+
_additionalEnvironmentNames: string[];
|
|
39
41
|
prerenderContext: PrerenderContext;
|
|
40
42
|
};
|
|
41
43
|
declare function reloadVikeConfig(): void;
|
|
@@ -53,6 +55,7 @@ type VikeConfig = Pick<VikeConfigInternal, 'config' | 'pages' | 'prerenderContex
|
|
|
53
55
|
dangerouslyUseInternals: DangerouslyUseInternals<VikeConfigInternal>;
|
|
54
56
|
};
|
|
55
57
|
declare function setVikeConfigContext(vikeConfigCtx_: VikeConfigContext): void;
|
|
58
|
+
declare function setViteEnvironmentNames(viteEnvironmentNames: string[]): Promise<void>;
|
|
56
59
|
declare function isVikeConfigContextSet(): boolean;
|
|
57
60
|
declare function getVikeConfigInternalOptional(): Promise<null | VikeConfigInternal>;
|
|
58
61
|
declare function isV1Design(): boolean;
|
|
@@ -74,8 +77,9 @@ declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinition
|
|
|
74
77
|
isGlobalLocation: boolean;
|
|
75
78
|
}) => boolean);
|
|
76
79
|
vite?: boolean;
|
|
77
|
-
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed) => unknown;
|
|
80
|
+
_computed?: (pageConfig: PageConfigBuildTimeBeforeComputed, isDev: boolean) => unknown;
|
|
78
81
|
_valueIsFilePath?: true;
|
|
82
|
+
_valueNotLoadedAtRuntime?: true;
|
|
79
83
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
80
84
|
isDefinedByPeerDependency?: undefined;
|
|
81
85
|
} | null;
|
|
@@ -4,6 +4,7 @@ export { getVikeConfig };
|
|
|
4
4
|
export { getVikeConfigInternal };
|
|
5
5
|
export { getVikeConfigInternalOptional };
|
|
6
6
|
export { setVikeConfigContext };
|
|
7
|
+
export { setViteEnvironmentNames };
|
|
7
8
|
export { isVikeConfigContextSet };
|
|
8
9
|
export { reloadVikeConfig };
|
|
9
10
|
export { isV1Design };
|
|
@@ -12,7 +13,6 @@ export { getConfigDefinitionOptional };
|
|
|
12
13
|
export { getVikeConfigFromCliOrEnv };
|
|
13
14
|
export { EARLY_SETTINGS };
|
|
14
15
|
import { deepEqual } from '../../../utils/deepEqual.js';
|
|
15
|
-
import { assertKeys } from '../../../utils/assertKeys.js';
|
|
16
16
|
import { assertIsNotProductionRuntime } from '../../../utils/assertSetup.js';
|
|
17
17
|
import { getMostSimilar } from '../../../utils/getMostSimilar.js';
|
|
18
18
|
import { objectEntries } from '../../../utils/objectEntries.js';
|
|
@@ -23,6 +23,7 @@ import { checkType } from '../../../utils/checkType.js';
|
|
|
23
23
|
import { genPromise } from '../../../utils/genPromise.js';
|
|
24
24
|
import { getGlobalObject } from '../../../utils/getGlobalObject.js';
|
|
25
25
|
import { hasProp } from '../../../utils/hasProp.js';
|
|
26
|
+
import { includes } from '../../../utils/includes.js';
|
|
26
27
|
import { isCallable } from '../../../utils/isCallable.js';
|
|
27
28
|
import { isObject } from '../../../utils/isObject.js';
|
|
28
29
|
import { joinEnglish } from '../../../utils/joinEnglish.js';
|
|
@@ -42,6 +43,7 @@ import { loadPointerImport, loadValueFile } from './resolveVikeConfigInternal/lo
|
|
|
42
43
|
import { resolvePointerImport } from './resolveVikeConfigInternal/resolvePointerImport.js';
|
|
43
44
|
import { parsePointerImportData } from './resolveVikeConfigInternal/pointerImports.js';
|
|
44
45
|
import { getFilePathResolved } from './getFilePath.js';
|
|
46
|
+
import { isEnvironmentBuiltIn, isEnvironmentNameValid } from '../../../shared-server-node/vike-environments.js';
|
|
45
47
|
import { getConfigValueBuildTime } from '../../../shared-server-client/page-configs/getConfigValueBuildTime.js';
|
|
46
48
|
import { resolveGlobalConfigPublic, } from '../../../shared-server-client/page-configs/resolveVikeConfigPublic.js';
|
|
47
49
|
import { getConfigValuesBase, isJsonValue, } from '../../../shared-server-client/page-configs/serialize/serializeConfigValues.js';
|
|
@@ -65,12 +67,13 @@ const globalObject = getGlobalObject('vite/shared/resolveVikeConfigInternal.ts',
|
|
|
65
67
|
vikeConfigSync: null,
|
|
66
68
|
vikeConfigCtx: null, // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
|
|
67
69
|
prerenderContext: null,
|
|
70
|
+
viteEnvironmentNames: null,
|
|
68
71
|
});
|
|
69
72
|
function reloadVikeConfig() {
|
|
70
73
|
assert(globalObject.vikeConfigCtx);
|
|
71
|
-
const { userRootDir, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
|
|
74
|
+
const { userRootDir, isDev, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
|
|
72
75
|
assert(vikeVitePluginOptions);
|
|
73
|
-
resolveVikeConfigInternal_withErrorHandling(userRootDir,
|
|
76
|
+
resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions);
|
|
74
77
|
}
|
|
75
78
|
async function getVikeConfigInternal(
|
|
76
79
|
// I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
|
|
@@ -110,6 +113,32 @@ function setVikeConfigContext(vikeConfigCtx_) {
|
|
|
110
113
|
// If the user changes Vite's `config.root` => Vite completely reloads itself => setVikeConfigContext() is called again
|
|
111
114
|
globalObject.vikeConfigCtx = vikeConfigCtx_;
|
|
112
115
|
}
|
|
116
|
+
// Vike's config is resolved before Vite's environments are known (Vike's config can modify Vite's config)
|
|
117
|
+
async function setViteEnvironmentNames(viteEnvironmentNames) {
|
|
118
|
+
globalObject.viteEnvironmentNames = viteEnvironmentNames;
|
|
119
|
+
if (!globalObject.vikeConfigPromise)
|
|
120
|
+
return;
|
|
121
|
+
const vikeConfig = await globalObject.vikeConfigPromise;
|
|
122
|
+
// Resolve again: to report a missing environment like any other config error, or to recover from one (e.g. the user added the environment to Vite's config)
|
|
123
|
+
const isMissing = getAdditionalEnvironmentsMissing(vikeConfig._additionalEnvironmentNames).length > 0;
|
|
124
|
+
if (!isMissing && !globalObject.vikeConfigHasBuildError)
|
|
125
|
+
return;
|
|
126
|
+
reloadVikeConfig();
|
|
127
|
+
await globalObject.vikeConfigPromise;
|
|
128
|
+
}
|
|
129
|
+
function getAdditionalEnvironmentsMissing(additionalEnvironmentNames) {
|
|
130
|
+
const { viteEnvironmentNames } = globalObject;
|
|
131
|
+
if (!viteEnvironmentNames)
|
|
132
|
+
return [];
|
|
133
|
+
return additionalEnvironmentNames.filter((name) => !viteEnvironmentNames.includes(name));
|
|
134
|
+
}
|
|
135
|
+
function assertAdditionalEnvironmentsExist(additionalEnvironmentNames) {
|
|
136
|
+
const [name] = getAdditionalEnvironmentsMissing(additionalEnvironmentNames);
|
|
137
|
+
if (name === undefined)
|
|
138
|
+
return;
|
|
139
|
+
assert(globalObject.viteEnvironmentNames);
|
|
140
|
+
assertUsage(false, `The environment ${pc.cyan(JSON.stringify(name))} is used by ${pc.cyan('meta.env')} but it doesn't exist in Vite's ${pc.cyan('config.environments')} (${joinEnglish(globalObject.viteEnvironmentNames.map((n) => pc.cyan(n)), 'and')})`);
|
|
141
|
+
}
|
|
113
142
|
function isVikeConfigContextSet() {
|
|
114
143
|
return !!globalObject.vikeConfigCtx;
|
|
115
144
|
}
|
|
@@ -219,6 +248,8 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, vik
|
|
|
219
248
|
const plusFilesByLocationId = await getPlusFiles(userRootDir, vikeTranspileCache);
|
|
220
249
|
const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesByLocationId, userRootDir, vikeTranspileCache);
|
|
221
250
|
const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesByLocationId, userRootDir);
|
|
251
|
+
const additionalEnvironmentNames = getAdditionalEnvironmentNames(getMetaEnvAll(configDefinitionsResolved, [pageConfigGlobal, ...pageConfigs]));
|
|
252
|
+
assertAdditionalEnvironmentsExist(additionalEnvironmentNames);
|
|
222
253
|
if (!globalObject.isV1Design_)
|
|
223
254
|
globalObject.isV1Design_ = pageConfigs.length > 0;
|
|
224
255
|
// Backwards compatibility for vike(options) in vite.config.js
|
|
@@ -241,6 +272,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, vik
|
|
|
241
272
|
_pageConfigGlobal: pageConfigGlobal,
|
|
242
273
|
_vikeConfigDependencies: vikeTranspileCache.vikeConfigDependencies,
|
|
243
274
|
_extensions,
|
|
275
|
+
_additionalEnvironmentNames: additionalEnvironmentNames,
|
|
244
276
|
};
|
|
245
277
|
globalObject.vikeConfigSync = vikeConfig;
|
|
246
278
|
return vikeConfig;
|
|
@@ -330,6 +362,23 @@ function getPageConfigsBuildTime(configDefinitionsResolved, plusFilesByLocationI
|
|
|
330
362
|
assertPageConfigs(pageConfigs);
|
|
331
363
|
return { pageConfigs, pageConfigGlobal };
|
|
332
364
|
}
|
|
365
|
+
// Get all the `meta.env` of all configs
|
|
366
|
+
function getMetaEnvAll(configDefinitionsResolved, pageConfigs) {
|
|
367
|
+
const configDefinitionsAll = [
|
|
368
|
+
configDefinitionsResolved.configDefinitionsGlobal,
|
|
369
|
+
...Object.values(configDefinitionsResolved.configDefinitionsLocal).map(({ configDefinitions }) => configDefinitions),
|
|
370
|
+
];
|
|
371
|
+
return [
|
|
372
|
+
...configDefinitionsAll.flatMap((configDefinitions) => Object.values(configDefinitions).map(({ env }) => env)),
|
|
373
|
+
...pageConfigs.flatMap(({ configValueSources }) => Object.values(configValueSources).flatMap((sources) => sources.map(({ configEnv }) => configEnv))),
|
|
374
|
+
];
|
|
375
|
+
}
|
|
376
|
+
function getAdditionalEnvironmentNames(configEnvs) {
|
|
377
|
+
const names = configEnvs.flatMap((configEnv) => Object.entries(configEnv)
|
|
378
|
+
.filter(([, value]) => value)
|
|
379
|
+
.map(([name]) => name));
|
|
380
|
+
return unique(names.filter(isAdditionalEnvironmentName));
|
|
381
|
+
}
|
|
333
382
|
function resolvePageConfigBuildTime(pageId, locationId, plusFilesRelevant, configDefinitionsLocal, plusFilesByLocationId, userRootDir) {
|
|
334
383
|
const configValueSources = {};
|
|
335
384
|
objectEntries(configDefinitionsLocal)
|
|
@@ -482,7 +531,7 @@ function assertOnBeforeRenderEnv(pageConfig) {
|
|
|
482
531
|
function getConfigValues(pageConfig, isGlobalConfig) {
|
|
483
532
|
const tolerateMissingValue = !isGlobalConfig;
|
|
484
533
|
const configValues = {};
|
|
485
|
-
getConfigValuesBase(pageConfig, {
|
|
534
|
+
getConfigValuesBase(pageConfig, { isConfigEnvironment: true }, null).forEach((entry) => {
|
|
486
535
|
if (entry.configValueBase.type === 'computed') {
|
|
487
536
|
assert('value' in entry); // Help TS
|
|
488
537
|
const { configValueBase, value, configName } = entry;
|
|
@@ -1091,11 +1140,13 @@ function applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEf
|
|
|
1091
1140
|
});
|
|
1092
1141
|
}
|
|
1093
1142
|
function getComputed(pageConfig) {
|
|
1143
|
+
assert(globalObject.vikeConfigCtx);
|
|
1144
|
+
const { isDev } = globalObject.vikeConfigCtx;
|
|
1094
1145
|
const configValuesComputed = {};
|
|
1095
1146
|
objectEntries(pageConfig.configDefinitions).forEach(([configName, configDef]) => {
|
|
1096
1147
|
if (!configDef._computed)
|
|
1097
1148
|
return;
|
|
1098
|
-
const value = configDef._computed(pageConfig);
|
|
1149
|
+
const value = configDef._computed(pageConfig, isDev);
|
|
1099
1150
|
if (value === undefined)
|
|
1100
1151
|
return;
|
|
1101
1152
|
configValuesComputed[configName] = {
|
|
@@ -1220,6 +1271,14 @@ function determineIsErrorPage(routeFilesystem) {
|
|
|
1220
1271
|
assertPosixPath(routeFilesystem);
|
|
1221
1272
|
return routeFilesystem.split('/').includes('_error');
|
|
1222
1273
|
}
|
|
1274
|
+
// Keys of `meta.env` that only Vike sets
|
|
1275
|
+
const configEnvKeysInternal = ['clientRoutingOnly', 'eager'];
|
|
1276
|
+
// Keys of `meta.env` that can't be environment names
|
|
1277
|
+
// - Including file suffixes such as `.ssr.js`, `.shared.js`, `.clear.js`, `.default.js`
|
|
1278
|
+
const configEnvKeysReserved = ['ssr', 'shared', 'clear', 'default', ...configEnvKeysInternal];
|
|
1279
|
+
function isAdditionalEnvironmentName(configEnvKey) {
|
|
1280
|
+
return (!isEnvironmentBuiltIn(configEnvKey) && !['config', 'production', ...configEnvKeysInternal].includes(configEnvKey));
|
|
1281
|
+
}
|
|
1223
1282
|
function getConfigEnvValue(val, errMsgIntro) {
|
|
1224
1283
|
const errInvalidValue = `${errMsgIntro} an invalid value ${pc.cyan(JSON.stringify(val))}`;
|
|
1225
1284
|
// Legacy outdated values
|
|
@@ -1235,22 +1294,23 @@ function getConfigEnvValue(val, errMsgIntro) {
|
|
|
1235
1294
|
if (val === 'config-only')
|
|
1236
1295
|
return { config: true };
|
|
1237
1296
|
if (val === '_routing-lazy')
|
|
1238
|
-
return { server: true, client:
|
|
1297
|
+
return { server: true, client: true, clientRoutingOnly: true };
|
|
1239
1298
|
if (val === '_routing-eager')
|
|
1240
|
-
return { server: true, client:
|
|
1299
|
+
return { server: true, client: true, clientRoutingOnly: true, eager: true };
|
|
1241
1300
|
assertUsage(false, errInvalidValue);
|
|
1242
1301
|
})();
|
|
1243
1302
|
assertWarning(false, `${errMsgIntro} ${pc.cyan(val)} which is deprecated and will be removed in the next major release`, { onlyOnce: true });
|
|
1244
1303
|
return valConverted;
|
|
1245
1304
|
}
|
|
1246
1305
|
assertUsage(isObject(val), `${errMsgIntro} an invalid type ${pc.cyan(typeof val)}`);
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1306
|
+
Object.entries(val).forEach(([key, value]) => {
|
|
1307
|
+
assertUsage(!includes(configEnvKeysReserved, key), `${errInvalidValue}: ${pc.cyan(key)} can't be an environment name, because ${includes(configEnvKeysInternal, key) ? 'Vike uses it internally' : `it's a file suffix (${pc.cyan(`+Page.${key}.js`)})`}`);
|
|
1308
|
+
assertUsage(isEnvironmentNameValid(key), `${errInvalidValue}: ${pc.cyan(key)} isn't a valid environment name`);
|
|
1309
|
+
assertUsage(value === undefined || typeof value === 'boolean', errInvalidValue);
|
|
1310
|
+
});
|
|
1251
1311
|
/* To allow users to set an eager config:
|
|
1252
1312
|
* - Uncomment line below.
|
|
1253
|
-
* -
|
|
1313
|
+
* - Move 'eager' from configEnvKeysInternal to the keys that isAdditionalEnvironmentName() excludes.
|
|
1254
1314
|
* - Add `eager: boolean` to ConfigEnv type.
|
|
1255
1315
|
assertUsage(hasProp(val, 'eager', 'undefined') || hasProp(val, 'eager', 'boolean'), errInvalidValue)
|
|
1256
1316
|
*/
|
|
@@ -1279,11 +1339,21 @@ function resolveConfigEnv(configEnv, filePath) {
|
|
|
1279
1339
|
else if (suffixes.includes('client')) {
|
|
1280
1340
|
configEnvResolved.client = true;
|
|
1281
1341
|
configEnvResolved.server = false;
|
|
1342
|
+
// Additional environments (e.g. `rsc`) are server-side
|
|
1343
|
+
Object.keys(configEnvResolved).forEach((key) => {
|
|
1344
|
+
if (isAdditionalEnvironmentName(key))
|
|
1345
|
+
delete configEnvResolved[key];
|
|
1346
|
+
});
|
|
1282
1347
|
}
|
|
1283
1348
|
else if (suffixes.includes('shared')) {
|
|
1284
1349
|
configEnvResolved.server = true;
|
|
1285
1350
|
configEnvResolved.client = true;
|
|
1286
1351
|
}
|
|
1352
|
+
else {
|
|
1353
|
+
return configEnvResolved;
|
|
1354
|
+
}
|
|
1355
|
+
// The file suffix decides, regardless of Client Routing
|
|
1356
|
+
delete configEnvResolved.clientRoutingOnly;
|
|
1287
1357
|
}
|
|
1288
1358
|
return configEnvResolved;
|
|
1289
1359
|
}
|
|
@@ -1312,7 +1382,9 @@ async function resolvePrerenderContext(vikeConfig) {
|
|
|
1312
1382
|
}
|
|
1313
1383
|
function restartViteDevServer() {
|
|
1314
1384
|
const viteDevServer = getViteDevServer();
|
|
1315
|
-
|
|
1385
|
+
// setViteEnvironmentNames() can reload Vike's config while Vite resolves its config, before the dev server exists
|
|
1386
|
+
if (!viteDevServer)
|
|
1387
|
+
return;
|
|
1316
1388
|
swallowViteLogForceOptimization_enable();
|
|
1317
1389
|
(async () => {
|
|
1318
1390
|
try {
|
|
@@ -1347,6 +1419,7 @@ async function getVikeConfigDummy(vikeTranspileCache) {
|
|
|
1347
1419
|
prerenderContext: prerenderContextDummy,
|
|
1348
1420
|
_vikeConfigDependencies: vikeTranspileCache.vikeConfigDependencies,
|
|
1349
1421
|
_extensions: [],
|
|
1422
|
+
_additionalEnvironmentNames: [],
|
|
1350
1423
|
};
|
|
1351
1424
|
globalObject.vikeConfigSync = vikeConfigDummy;
|
|
1352
1425
|
globalObject.isV1Design_ = true;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default } from './fetch.js';
|
|
2
|
+
// TO-DO/next-major-release: remove this export (the entire file)
|
|
3
|
+
import { assertWarning } from '../../utils/assert.js';
|
|
4
|
+
import pc from '@brillout/picocolors';
|
|
5
|
+
import '../assertEnvServer.js';
|
|
6
|
+
assertWarning(false, `${pc.cyan("import vike from 'vike/fetch'")} is deprecated, see ${pc.underline('https://vike.dev/migration/vike-fetch')}`, { onlyOnce: true });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import '../assertEnvServer.js';
|
|
2
|
+
declare const _default: {
|
|
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: '/**';
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { setGlobalContext_prodBuildEntry } from '../runtime/globalContext.js';
|
|
2
|
+
export { getMiddlewaresPipe_nonHandlers, getMiddlewaresPipe_handlers, } from '../runtime/universal-middleware/getMiddlewaresPipe.js';
|
|
3
|
+
export { getPageContextJson };
|
|
2
4
|
export { route, getPagesAndRoutes };
|
|
3
5
|
export type { PageRoutes, PageFile, PageConfigRuntime as PageConfig };
|
|
4
6
|
import { route as routeInternal, type PageRoutes } from '../../shared-server-client/route/index.js';
|
|
5
7
|
import type { PageFile } from '../../shared-server-client/getPageFiles/getPageFileObject.js';
|
|
6
8
|
import { PageConfigRuntime } from '../../types/PageConfig.js';
|
|
9
|
+
import type { PageContextServer } from '../../types/PageContext.js';
|
|
7
10
|
import '../assertEnvServer.js';
|
|
8
11
|
/**
|
|
9
12
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
|
|
@@ -19,3 +22,4 @@ declare function getPagesAndRoutes(): Promise<{
|
|
|
19
22
|
declare function route(pageContext: Parameters<typeof routeInternal>[0]): Promise<{
|
|
20
23
|
pageContextAddendum: import("../../shared-server-client/route/index.js").PageContextAfterRoute;
|
|
21
24
|
}>;
|
|
25
|
+
declare function getPageContextJson(pageContext: PageContextServer): string | ReadableStream<Uint8Array<ArrayBufferLike>>;
|