vike 0.4.224 → 0.4.225-commit-37a36a5
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/cjs/node/api/build.js +1 -1
- package/dist/cjs/node/api/context.js +4 -4
- package/dist/cjs/node/api/dev.js +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +3 -2
- package/dist/cjs/node/api/prerender.js +1 -1
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/cli/context.js +5 -4
- package/dist/cjs/node/cli/entry.js +3 -3
- package/dist/cjs/node/cli/parseCli.js +43 -15
- package/dist/cjs/node/cli/utils.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +1 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +16 -5
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +14 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +138 -83
- package/dist/cjs/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +10 -1
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/cjs/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/cjs/node/plugin/shared/loggerNotProd/log.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +33 -18
- package/dist/cjs/node/prerender/runPrerender.js +6 -8
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +9 -5
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/cjs/node/runtime/html/stream.js +7 -0
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +14 -5
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/cjs/node/runtime/renderPage.js +6 -10
- package/dist/cjs/node/runtime/utils.js +0 -1
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/cjs/node/shared/assertV1Design.js +2 -1
- package/dist/cjs/node/shared/utils.js +0 -1
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +19 -2
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/cjs/shared/page-configs/helpers.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +11 -4
- package/dist/cjs/utils/assertSingleInstance.js +11 -17
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/getRandomId.js +1 -1
- package/dist/cjs/utils/normalizeHeaders.js +1 -1
- package/dist/cjs/utils/parseUrl-extras.js +1 -0
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.js +2 -2
- package/dist/esm/node/api/build.js +1 -1
- package/dist/esm/node/api/context.d.ts +8 -2
- package/dist/esm/node/api/context.js +4 -4
- package/dist/esm/node/api/dev.js +1 -1
- package/dist/esm/node/api/prepareViteApiCall.d.ts +2 -2
- package/dist/esm/node/api/prepareViteApiCall.js +3 -2
- package/dist/esm/node/api/prerender.js +1 -1
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/api/types.d.ts +7 -0
- package/dist/esm/node/cli/context.d.ts +4 -2
- package/dist/esm/node/cli/context.js +5 -4
- package/dist/esm/node/cli/entry.js +4 -4
- package/dist/esm/node/cli/parseCli.d.ts +3 -0
- package/dist/esm/node/cli/parseCli.js +44 -16
- package/dist/esm/node/cli/utils.d.ts +1 -1
- package/dist/esm/node/cli/utils.js +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +2 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +16 -5
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +15 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +3 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +140 -84
- package/dist/esm/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +11 -2
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +1 -1
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.d.ts +3 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/esm/node/plugin/shared/loggerNotProd/log.js +2 -2
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +2 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +34 -19
- package/dist/esm/node/prerender/runPrerender.js +7 -9
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +1 -1
- package/dist/esm/node/runtime/globalContext.js +10 -6
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/esm/node/runtime/html/stream.js +7 -0
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -3
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +15 -6
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +5 -5
- package/dist/esm/node/runtime/renderPage.js +7 -11
- package/dist/esm/node/runtime/utils.d.ts +0 -1
- package/dist/esm/node/runtime/utils.js +0 -1
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/esm/node/shared/assertV1Design.js +2 -1
- package/dist/esm/node/shared/utils.d.ts +0 -1
- package/dist/esm/node/shared/utils.js +0 -1
- package/dist/esm/shared/page-configs/Config.d.ts +19 -1
- package/dist/esm/shared/page-configs/PageConfig.d.ts +16 -5
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +5 -3
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +20 -3
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/esm/shared/page-configs/helpers.js +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -3
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/esm/shared/route/loadPageRoutes.js +2 -2
- package/dist/esm/shared/types.d.ts +5 -1
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.d.ts +2 -1
- package/dist/esm/utils/assert.js +11 -4
- package/dist/esm/utils/assertSingleInstance.js +11 -17
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/getRandomId.d.ts +1 -1
- package/dist/esm/utils/getRandomId.js +1 -1
- package/dist/esm/utils/normalizeHeaders.js +1 -1
- package/dist/esm/utils/parseUrl-extras.js +1 -0
- package/package.json +6 -3
- package/dist/cjs/utils/projectInfo.js +0 -8
- package/dist/esm/utils/projectInfo.d.ts +0 -4
- package/dist/esm/utils/projectInfo.js +0 -5
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
export { getEnvVarObject };
|
|
2
|
+
export { parseJson5 };
|
|
2
3
|
import pc from '@brillout/picocolors';
|
|
3
4
|
import { assertUsage, isObject } from '../utils.js';
|
|
4
5
|
import JSON5 from 'json5';
|
|
5
|
-
function getEnvVarObject(envVarName
|
|
6
|
-
/* Let's eventually implement this for Vike's config as well
|
|
7
|
-
| 'VIKE_CONFIG'
|
|
8
|
-
*/
|
|
9
|
-
) {
|
|
6
|
+
function getEnvVarObject(envVarName) {
|
|
10
7
|
const valueStr = process.env[envVarName];
|
|
11
8
|
if (!valueStr)
|
|
12
9
|
return null;
|
|
10
|
+
const value = parseJson5(valueStr, envVarName);
|
|
11
|
+
assertUsage(value, `${envVarName} should define an object but it's ${pc.bold(String(value))} instead.`);
|
|
12
|
+
assertUsage(isObject(value), `${envVarName} should define an object but it's set to the following which isn't an object: ${pc.bold(valueStr)}`);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
function parseJson5(valueStr, what) {
|
|
13
16
|
let value;
|
|
14
17
|
try {
|
|
15
18
|
value = JSON5.parse(valueStr);
|
|
16
19
|
}
|
|
17
20
|
catch (err) {
|
|
18
21
|
console.error(err);
|
|
19
|
-
assertUsage(false, `Cannot parse ${
|
|
22
|
+
assertUsage(false, `Cannot parse ${pc.cyan(what)} (see error above) because it's set to the following which isn't a valid JSON5 string: ${pc.bold(valueStr)}`);
|
|
20
23
|
}
|
|
21
|
-
assertUsage(value, `${envVarName} should define an object but it's ${pc.bold(String(value))} instead.`);
|
|
22
|
-
assertUsage(isObject(value), `${envVarName} should define an object but it's set to the following which isn't an object: ${pc.bold(valueStr)}`);
|
|
23
24
|
return value;
|
|
24
25
|
}
|
|
@@ -2,7 +2,7 @@ export { logWithViteTag };
|
|
|
2
2
|
export { logWithVikeTag };
|
|
3
3
|
export { logDirectly };
|
|
4
4
|
export { applyViteSourceMapToStackTrace };
|
|
5
|
-
import { assert,
|
|
5
|
+
import { assert, stripAnsi, hasProp, assertIsNotProductionRuntime, PROJECT_VERSION } from '../../utils.js';
|
|
6
6
|
import pc from '@brillout/picocolors';
|
|
7
7
|
import { isErrorDebug } from '../../../shared/isErrorDebug.js';
|
|
8
8
|
import { getViteDevServer } from '../../../runtime/globalContext.js';
|
|
@@ -15,7 +15,7 @@ function logWithVikeTag(msg, logType, category, showVikeVersion = false) {
|
|
|
15
15
|
function getProjectTag(showVikeVersion) {
|
|
16
16
|
let projectTag;
|
|
17
17
|
if (showVikeVersion) {
|
|
18
|
-
projectTag = `[vike@${
|
|
18
|
+
projectTag = `[vike@${PROJECT_VERSION}]`;
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
21
|
projectTag = `[vike]`;
|
|
@@ -7,7 +7,7 @@ import { resolvePrerenderConfigGlobal } from './resolvePrerenderConfig.js';
|
|
|
7
7
|
const globalObject = getGlobalObject('prerender/context.ts', {});
|
|
8
8
|
function isPrerenderAutoRunEnabled(vikeConfig) {
|
|
9
9
|
const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
|
|
10
|
-
return (prerenderConfigGlobal.
|
|
10
|
+
return (prerenderConfigGlobal.isPrerenderingEnabled &&
|
|
11
11
|
!(prerenderConfigGlobal || {}).disableAutoRun &&
|
|
12
12
|
!globalObject.isDisabled &&
|
|
13
13
|
vikeConfig.global.config.disableAutoFullBuild !== 'prerender');
|
|
@@ -9,7 +9,8 @@ declare function resolvePrerenderConfigGlobal(vikeConfig: VikeConfigObject): {
|
|
|
9
9
|
disableAutoRun: boolean;
|
|
10
10
|
} & {
|
|
11
11
|
defaultLocalValue: boolean;
|
|
12
|
-
|
|
12
|
+
isPrerenderingEnabledForAllPages: boolean;
|
|
13
|
+
isPrerenderingEnabled: boolean;
|
|
13
14
|
};
|
|
14
15
|
declare function resolvePrerenderConfigLocal(pageConfig: PageConfigBuildTime): {
|
|
15
16
|
value: boolean;
|
|
@@ -1,29 +1,43 @@
|
|
|
1
1
|
export { resolvePrerenderConfigGlobal };
|
|
2
2
|
export { resolvePrerenderConfigLocal };
|
|
3
|
-
import { assert, isArray, objectAssign } from './utils.js';
|
|
3
|
+
import { assert, isArray, isObject, objectAssign } from './utils.js';
|
|
4
4
|
import { getConfigValueBuildTime } from '../../shared/page-configs/getConfigValueBuildTime.js';
|
|
5
|
+
// When setting +prerender to an object => it also enables pre-rendering
|
|
6
|
+
const defaultValueForObject = true;
|
|
5
7
|
function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
6
|
-
const prerenderConfigs = vikeConfig.global.config.prerender;
|
|
7
|
-
|
|
8
|
-
// Needed because of backwards compatibility of `vike({prerender:true})` in `vite.config.js`; after we remove it we can remove this line.
|
|
9
|
-
prerenderConfigList = prerenderConfigList.filter(isObject2);
|
|
10
|
-
assert(prerenderConfigList.every(isObject2)); // Help TS
|
|
8
|
+
const prerenderConfigs = vikeConfig.global.config.prerender || [];
|
|
9
|
+
const prerenderSettings = prerenderConfigs.filter(isObject2);
|
|
11
10
|
const prerenderConfigGlobal = {
|
|
12
|
-
partial: pickFirst(
|
|
13
|
-
noExtraDir: pickFirst(
|
|
14
|
-
parallel: pickFirst(
|
|
15
|
-
disableAutoRun: pickFirst(
|
|
11
|
+
partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
|
|
12
|
+
noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
|
|
13
|
+
parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
|
|
14
|
+
disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
|
|
16
15
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
let defaultLocalValue = false;
|
|
17
|
+
{
|
|
18
|
+
const valueFirst = prerenderConfigs.filter((p) => !isObject(p) || p.value !== null)[0];
|
|
19
|
+
if (valueFirst === true || (isObject(valueFirst) && (valueFirst.value ?? defaultValueForObject))) {
|
|
20
|
+
defaultLocalValue = true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// TODO/next-major: remove
|
|
24
|
+
// Backwards compatibility for `vike({prerender:true})` in vite.config.js
|
|
25
|
+
{
|
|
26
|
+
const valuesWithDefinedAt = vikeConfig.global._from.configsCumulative.prerender?.values ?? [];
|
|
27
|
+
if (valuesWithDefinedAt.some((v) => v.definedAt.includes('vite.config.js') && v.value)) {
|
|
28
|
+
defaultLocalValue = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
23
31
|
objectAssign(prerenderConfigGlobal, {
|
|
24
32
|
defaultLocalValue,
|
|
25
|
-
|
|
33
|
+
isPrerenderingEnabledForAllPages: vikeConfig.pageConfigs.length > 0 &&
|
|
34
|
+
vikeConfig.pageConfigs.every((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
|
|
35
|
+
isPrerenderingEnabled: vikeConfig.pageConfigs.length > 0 &&
|
|
36
|
+
vikeConfig.pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue)
|
|
26
37
|
});
|
|
38
|
+
// TODO/next-major remove
|
|
39
|
+
if (vikeConfig.pageConfigs.length === 0 && defaultLocalValue)
|
|
40
|
+
prerenderConfigGlobal.isPrerenderingEnabled = true;
|
|
27
41
|
return prerenderConfigGlobal;
|
|
28
42
|
}
|
|
29
43
|
function resolvePrerenderConfigLocal(pageConfig) {
|
|
@@ -33,13 +47,14 @@ function resolvePrerenderConfigLocal(pageConfig) {
|
|
|
33
47
|
const values = configValue.value;
|
|
34
48
|
assert(isArray(values));
|
|
35
49
|
const value = values[0];
|
|
50
|
+
// TODO/now I believe this assert() can fail
|
|
36
51
|
assert(typeof value === 'boolean');
|
|
37
52
|
assert(isArray(configValue.definedAtData));
|
|
38
53
|
const prerenderConfigLocal = { value };
|
|
39
54
|
return prerenderConfigLocal;
|
|
40
55
|
}
|
|
41
|
-
function isObject2(
|
|
42
|
-
return typeof
|
|
56
|
+
function isObject2(value) {
|
|
57
|
+
return typeof value === 'object' && value !== null;
|
|
43
58
|
}
|
|
44
59
|
function pickFirst(arr) {
|
|
45
60
|
return arr.filter((v) => v !== undefined)[0];
|
|
@@ -4,7 +4,7 @@ export { runPrerenderFromAutoRun };
|
|
|
4
4
|
export { runPrerender_forceExit };
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { route } from '../../shared/route/index.js';
|
|
7
|
-
import { assert, assertUsage, assertWarning, hasProp,
|
|
7
|
+
import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, changeEnumerable, onSetupPrerender, isObject, makePublicCopy, PROJECT_VERSION } from './utils.js';
|
|
8
8
|
import { prerenderPage, prerender404Page, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
9
9
|
import pc from '@brillout/picocolors';
|
|
10
10
|
import { cpus } from 'os';
|
|
@@ -38,7 +38,7 @@ async function runPrerenderFromAPI(options = {}) {
|
|
|
38
38
|
}
|
|
39
39
|
async function runPrerenderFromCLIPrerenderCommand() {
|
|
40
40
|
try {
|
|
41
|
-
const { viteConfigEnhanced } = await prepareViteApiCall(
|
|
41
|
+
const { viteConfigEnhanced } = await prepareViteApiCall({}, 'prerender');
|
|
42
42
|
await runPrerender({ viteConfig: viteConfigEnhanced }, '$ vike prerender');
|
|
43
43
|
}
|
|
44
44
|
catch (err) {
|
|
@@ -75,7 +75,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
75
75
|
getHook_setIsPrerenderering();
|
|
76
76
|
const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
|
|
77
77
|
if (logLevel === 'info') {
|
|
78
|
-
console.log(`${pc.cyan(`vike v${
|
|
78
|
+
console.log(`${pc.cyan(`vike v${PROJECT_VERSION}`)} ${pc.green('pre-rendering HTML...')}`);
|
|
79
79
|
}
|
|
80
80
|
await disableReactStreaming();
|
|
81
81
|
const viteConfig = await resolveConfig(options.viteConfig || {}, 'build', 'production');
|
|
@@ -84,13 +84,11 @@ async function runPrerender(options = {}, standaloneTrigger) {
|
|
|
84
84
|
const { root } = viteConfig;
|
|
85
85
|
const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
|
|
86
86
|
validatePrerenderConfig(prerenderConfigGlobal);
|
|
87
|
-
const { partial, noExtraDir, parallel, defaultLocalValue,
|
|
88
|
-
if (!
|
|
87
|
+
const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
|
|
88
|
+
if (!isPrerenderingEnabled) {
|
|
89
89
|
assert(standaloneTrigger);
|
|
90
|
-
// TODO/now: make it assertUsage() and remove dist/server/entry.mjs
|
|
91
|
-
assertWarning(
|
|
92
|
-
onlyOnce: true
|
|
93
|
-
});
|
|
90
|
+
// TODO/now: make it assertUsage() and remove dist/server/entry.mjs if pre-rendering is completely disabled
|
|
91
|
+
assertWarning(false, `You're executing ${pc.cyan(standaloneTrigger)} but you didn't enable pre-rendering. Use the ${pc.cyan('prerender')} setting (${pc.underline('https://vike.dev/prerender')}) to enable pre-rendering for at least one page.`, { onlyOnce: true });
|
|
94
92
|
}
|
|
95
93
|
const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
|
|
96
94
|
await initGlobalContext_runPrerender();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from '../../utils/assert.js';
|
|
2
2
|
export * from '../../utils/hasProp.js';
|
|
3
|
-
export * from '../../utils/
|
|
3
|
+
export * from '../../utils/PROJECT_VERSION.js';
|
|
4
4
|
export * from '../../utils/objectAssign.js';
|
|
5
5
|
export * from '../../utils/isObjectWithKeys.js';
|
|
6
6
|
export * from '../../utils/isCallable.js';
|
|
@@ -2,7 +2,7 @@ import { assertIsNotBrowser } from '../../utils/assertIsNotBrowser.js';
|
|
|
2
2
|
assertIsNotBrowser();
|
|
3
3
|
export * from '../../utils/assert.js';
|
|
4
4
|
export * from '../../utils/hasProp.js';
|
|
5
|
-
export * from '../../utils/
|
|
5
|
+
export * from '../../utils/PROJECT_VERSION.js';
|
|
6
6
|
export * from '../../utils/objectAssign.js';
|
|
7
7
|
export * from '../../utils/isObjectWithKeys.js';
|
|
8
8
|
export * from '../../utils/isCallable.js';
|
|
@@ -75,7 +75,7 @@ declare function getUserFiles(): Promise<{
|
|
|
75
75
|
pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
76
76
|
onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
77
77
|
pages: PageConfigsUserFriendly;
|
|
78
|
-
config: import("../../
|
|
78
|
+
config: import("../../types/index.js").ConfigResolved;
|
|
79
79
|
}>;
|
|
80
80
|
declare function setGlobalContext_buildEntry(buildEntry: unknown): Promise<void>;
|
|
81
81
|
type BuildInfo = {
|
|
@@ -25,7 +25,7 @@ export { updateUserFiles };
|
|
|
25
25
|
// - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
|
|
26
26
|
// - In development: globalObject.viteDevServer which is Vite's development server
|
|
27
27
|
// - globalObject.viteDevServer is used by updateUserFiles() which then sets globalConfig.userFiles
|
|
28
|
-
import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectAssign, objectReplace, isObject, hasProp, debugGlob, getGlobalObject, genPromise, createDebugger, makePublicCopy,
|
|
28
|
+
import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectAssign, objectReplace, isObject, hasProp, debugGlob, getGlobalObject, genPromise, createDebugger, makePublicCopy, checkType, PROJECT_VERSION } from './utils.js';
|
|
29
29
|
import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
|
|
30
30
|
import { virtualFileIdImportUserCodeServer } from '../shared/virtual-files/virtualFileImportUserCode.js';
|
|
31
31
|
import pc from '@brillout/picocolors';
|
|
@@ -89,9 +89,10 @@ function makePublic(globalContext) {
|
|
|
89
89
|
async function setGlobalContext_viteDevServer(viteDevServer) {
|
|
90
90
|
debug('setGlobalContext_viteDevServer()');
|
|
91
91
|
setIsProduction(false);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
// We cannot cache globalObject.viteDevServer because it's fully replaced when the user modifies vite.config.js => Vite's dev server is fully reloaded and a new viteDevServer replaces the previous one.
|
|
93
|
+
if (!globalObject.viteDevServer) {
|
|
94
|
+
assertIsNotInitilizedYet();
|
|
95
|
+
}
|
|
95
96
|
assert(globalObject.viteConfig);
|
|
96
97
|
globalObject.viteDevServer = viteDevServer;
|
|
97
98
|
await updateUserFiles();
|
|
@@ -351,7 +352,7 @@ function assertBuildInfo(buildInfo) {
|
|
|
351
352
|
checkType({ ...buildInfo, viteConfigRuntime: buildInfo.viteConfigRuntime });
|
|
352
353
|
}
|
|
353
354
|
function assertVersionAtBuildTime(versionAtBuildTime) {
|
|
354
|
-
const versionAtRuntime =
|
|
355
|
+
const versionAtRuntime = PROJECT_VERSION;
|
|
355
356
|
const pretty = (version) => pc.bold(`vike@${version}`);
|
|
356
357
|
assertUsage(versionAtBuildTime === versionAtRuntime, `Re-build your app (you're using ${pretty(versionAtRuntime)} but your app was built with ${pretty(versionAtBuildTime)})`);
|
|
357
358
|
}
|
|
@@ -369,7 +370,7 @@ async function updateUserFiles() {
|
|
|
369
370
|
const { promise, resolve } = genPromise();
|
|
370
371
|
assert(!globalObject.isProduction);
|
|
371
372
|
globalObject.waitForUserFilesUpdate = promise;
|
|
372
|
-
const viteDevServer =
|
|
373
|
+
const { viteDevServer } = globalObject;
|
|
373
374
|
assert(viteDevServer);
|
|
374
375
|
let virtualFileExports;
|
|
375
376
|
try {
|
|
@@ -381,6 +382,9 @@ async function updateUserFiles() {
|
|
|
381
382
|
}
|
|
382
383
|
virtualFileExports = virtualFileExports.default || virtualFileExports;
|
|
383
384
|
debugGlob('Glob result: ', virtualFileExports);
|
|
385
|
+
// Avoid race condition: abort if there is a new globalObject.viteDevServer (happens when vite.config.js is modified => Vite's dev server is fully reloaded).
|
|
386
|
+
if (viteDevServer !== globalObject.viteDevServer)
|
|
387
|
+
return;
|
|
384
388
|
await setUserFiles(virtualFileExports);
|
|
385
389
|
resolve();
|
|
386
390
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { getViteDevScript };
|
|
2
2
|
import { assert, assertUsage, assertWarning } from '../../utils.js';
|
|
3
3
|
import pc from '@brillout/picocolors';
|
|
4
|
+
const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
|
|
4
5
|
async function getViteDevScript(pageContext) {
|
|
5
6
|
const globalContext = pageContext._globalContext;
|
|
6
7
|
if (globalContext.isProduction) {
|
|
@@ -12,11 +13,13 @@ async function getViteDevScript(pageContext) {
|
|
|
12
13
|
let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
|
|
13
14
|
fakeHtml = await viteDevServer.transformIndexHtml('/', fakeHtml);
|
|
14
15
|
assertUsage(!fakeHtml.includes('vite-plugin-pwa'), `The HTML transformer of ${pc.cyan('vite-plugin-pwa')} cannot be applied, see workaround at https://github.com/vikejs/vike/issues/388#issuecomment-1199280084`);
|
|
15
|
-
assertUsage(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')),
|
|
16
|
-
assertUsage(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd),
|
|
16
|
+
assertUsage(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), `Vite plugins that minify the HTML cannot be applied, see https://github.com/vikejs/vike/issues/224`);
|
|
17
|
+
assertUsage(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd), `You are using a Vite Plugin that transforms the HTML in a way that conflicts with Vike. ${reachOutCTA}`);
|
|
17
18
|
const viteInjection = fakeHtml.slice(fakeHtmlBegin.length, -1 * fakeHtmlEnd.length);
|
|
18
19
|
assert(viteInjection.includes('script'));
|
|
19
|
-
assertWarning(!viteInjection.includes('import('),
|
|
20
|
+
assertWarning(!viteInjection.includes('import('), `Unexpected Vite injected HMR code. ${reachOutCTA}`, {
|
|
21
|
+
onlyOnce: true
|
|
22
|
+
});
|
|
20
23
|
const viteDevScript = viteInjection;
|
|
21
24
|
return viteDevScript;
|
|
22
25
|
}
|
|
@@ -159,6 +159,13 @@ function getStreamReadableWeb(htmlRender) {
|
|
|
159
159
|
if (isStreamReadableWeb(htmlRender)) {
|
|
160
160
|
return htmlRender;
|
|
161
161
|
}
|
|
162
|
+
if (isStreamPipeWeb(htmlRender)) {
|
|
163
|
+
const streamPipeWeb = getStreamPipeWeb(htmlRender);
|
|
164
|
+
assert(streamPipeWeb);
|
|
165
|
+
const { readable, writable } = new TransformStream();
|
|
166
|
+
streamPipeWeb(writable);
|
|
167
|
+
return readable;
|
|
168
|
+
}
|
|
162
169
|
return null;
|
|
163
170
|
}
|
|
164
171
|
function pipeToStreamWritableWeb(htmlRender, writable) {
|
|
@@ -13,6 +13,4 @@ import { RenderErrorPage as RenderErrorPage_ } from '../../shared/route/abort.js
|
|
|
13
13
|
*
|
|
14
14
|
* See https://vike.dev/render
|
|
15
15
|
*/
|
|
16
|
-
export declare const RenderErrorPage: (
|
|
17
|
-
pageContext?: Record<string, unknown>;
|
|
18
|
-
} | undefined) => Error;
|
|
16
|
+
export declare const RenderErrorPage: (...args: Parameters<typeof RenderErrorPage_>) => Error;
|
package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { assertNoInfiniteHttpRedirect };
|
|
2
|
-
declare function assertNoInfiniteHttpRedirect(urlRedirectTarget: string,
|
|
2
|
+
declare function assertNoInfiniteHttpRedirect(urlRedirectTarget: string, pageContextInit: {
|
|
3
|
+
urlOriginal: string;
|
|
4
|
+
}): "DISABLED" | undefined;
|
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
export { assertNoInfiniteHttpRedirect };
|
|
2
|
-
import { assert, assertUsage, getGlobalObject } from '../../utils.js';
|
|
2
|
+
import { assert, assertUsage, getGlobalObject, removeUrlOrigin } from '../../utils.js';
|
|
3
3
|
import pc from '@brillout/picocolors';
|
|
4
4
|
const globalObject = getGlobalObject('createHttpResponse/assertNoInfiniteHttpRedirect.ts', {
|
|
5
5
|
redirectGraph: {}
|
|
6
6
|
});
|
|
7
|
-
function assertNoInfiniteHttpRedirect(
|
|
7
|
+
function assertNoInfiniteHttpRedirect(
|
|
8
|
+
// The exact URL that the user will be redirected to.
|
|
9
|
+
// - It includes the Base URL as well as the locale (i18n) base.
|
|
10
|
+
urlRedirectTarget,
|
|
11
|
+
// Rationale for checking against `pageContextInit.urlOriginal`: https://github.com/vikejs/vike/pull/2264#issuecomment-2713890263
|
|
12
|
+
pageContextInit) {
|
|
13
|
+
// TO-DO/eventually: use cookie as described at https://github.com/vikejs/vike/pull/2273
|
|
14
|
+
if (true)
|
|
15
|
+
return 'DISABLED'; // Disabled until we make it reliable.
|
|
8
16
|
if (!urlRedirectTarget.startsWith('/')) {
|
|
9
|
-
// We assume that urlRedirectTarget points to an origin that is external (not the same origin), and we can therefore assume that the app doesn't define an infinite loop (in itself).
|
|
10
|
-
// - There isn't a reliable way to check whether the redirect points to an external origin or the same origin
|
|
17
|
+
// We assume that urlRedirectTarget points to an origin that is external (not the same origin), and we can therefore assume that the app doesn't define an infinite loop (at least not in itself).
|
|
18
|
+
// - There isn't a reliable way to check whether the redirect points to an external origin or the same origin; we hope/assume the user sets the URL without origin.
|
|
11
19
|
// ```js
|
|
12
20
|
// // For same-origin, the user usually/hopefully passes a URL without origin
|
|
13
21
|
// renderPage({ urlOriginal: '/some/pathname' })
|
|
14
22
|
// ```
|
|
15
23
|
return;
|
|
16
24
|
}
|
|
17
|
-
|
|
25
|
+
const urlOriginalNormalized = removeUrlOrigin(pageContextInit.urlOriginal).urlModified;
|
|
26
|
+
assert(urlOriginalNormalized.startsWith('/'));
|
|
18
27
|
const graph = copy(globalObject.redirectGraph);
|
|
19
28
|
graph[urlRedirectTarget] ?? (graph[urlRedirectTarget] = new Set());
|
|
20
|
-
graph[urlRedirectTarget].add(
|
|
29
|
+
graph[urlRedirectTarget].add(urlOriginalNormalized);
|
|
21
30
|
validate(graph);
|
|
22
31
|
globalObject.redirectGraph = graph;
|
|
23
32
|
}
|
|
@@ -35,4 +35,6 @@ declare function createHttpResponseError(pageContext: null | {
|
|
|
35
35
|
_pageConfigs: PageConfigRuntime[];
|
|
36
36
|
}): HttpResponse;
|
|
37
37
|
declare function createHttpResponsePageContextJson(pageContextSerialized: string): Promise<HttpResponse>;
|
|
38
|
-
declare function createHttpResponseRedirect({ url, statusCode }: UrlRedirect,
|
|
38
|
+
declare function createHttpResponseRedirect({ url, statusCode }: UrlRedirect, pageContextInit: {
|
|
39
|
+
urlOriginal: string;
|
|
40
|
+
}): HttpResponse;
|
|
@@ -82,10 +82,8 @@ async function createHttpResponsePageContextJson(pageContextSerialized) {
|
|
|
82
82
|
const httpResponse = createHttpResponse(200, 'application/json', [], pageContextSerialized, [], null);
|
|
83
83
|
return httpResponse;
|
|
84
84
|
}
|
|
85
|
-
function createHttpResponseRedirect({ url, statusCode },
|
|
86
|
-
|
|
87
|
-
urlLogical) {
|
|
88
|
-
assertNoInfiniteHttpRedirect(url, urlLogical);
|
|
85
|
+
function createHttpResponseRedirect({ url, statusCode }, pageContextInit) {
|
|
86
|
+
assertNoInfiniteHttpRedirect(url, pageContextInit);
|
|
89
87
|
assert(url);
|
|
90
88
|
assert(statusCode);
|
|
91
89
|
assert(300 <= statusCode && statusCode <= 399);
|
|
@@ -23,6 +23,10 @@ const errorsMisc = [
|
|
|
23
23
|
errMsg: 'assets.json',
|
|
24
24
|
link: 'https://vike.dev/getGlobalContext',
|
|
25
25
|
mustMentionNodeModules: false
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
errMsg: 'ERR_UNKNOWN_FILE_EXTENSION',
|
|
29
|
+
link: 'https://vike.dev/broken-npm-package#err-unknown-file-extension'
|
|
26
30
|
}
|
|
27
31
|
];
|
|
28
32
|
const reactInvalidEelement = 'https://vike.dev/broken-npm-package#react-invalid-component';
|
|
@@ -73,7 +77,8 @@ const errorsCjsEsm = [
|
|
|
73
77
|
{ errMsg: 'exports is not defined' },
|
|
74
78
|
{ errMsg: 'module is not defined' },
|
|
75
79
|
{ errMsg: 'not defined in ES' },
|
|
76
|
-
{ errMsg: "Unexpected token 'export'" }
|
|
80
|
+
{ errMsg: "Unexpected token 'export'" },
|
|
81
|
+
{ errMsg: 'Failed to resolve entry for package' }
|
|
77
82
|
];
|
|
78
83
|
function logErrorHint(error) {
|
|
79
84
|
/* Collect errors for ./logErrorHint.spec.ts
|
|
@@ -62,7 +62,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
62
62
|
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
63
63
|
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
64
64
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
65
|
-
config: import("../../../
|
|
65
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
66
66
|
} & ({
|
|
67
67
|
isProduction: false;
|
|
68
68
|
isPrerendering: false;
|
|
@@ -148,7 +148,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
148
148
|
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
149
149
|
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
150
150
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
151
|
-
config: import("../../../
|
|
151
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
152
152
|
} & ({
|
|
153
153
|
isProduction: false;
|
|
154
154
|
isPrerendering: false;
|
|
@@ -235,7 +235,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
235
235
|
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
236
236
|
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
237
237
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
238
|
-
config: import("../../../
|
|
238
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
239
239
|
} & ({
|
|
240
240
|
isProduction: false;
|
|
241
241
|
isPrerendering: false;
|
|
@@ -321,7 +321,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
321
321
|
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
322
322
|
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
323
323
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
324
|
-
config: import("../../../
|
|
324
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
325
325
|
} & ({
|
|
326
326
|
isProduction: false;
|
|
327
327
|
isPrerendering: false;
|
|
@@ -416,7 +416,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
416
416
|
pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
417
417
|
onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
418
418
|
pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
|
|
419
|
-
config: import("../../../
|
|
419
|
+
config: import("../../../types/index.js").ConfigResolved;
|
|
420
420
|
} & ({
|
|
421
421
|
isProduction: false;
|
|
422
422
|
isPrerendering: false;
|
|
@@ -2,7 +2,7 @@ export { renderPage };
|
|
|
2
2
|
export { renderPage_addAsyncHookwrapper };
|
|
3
3
|
import { getPageContextInitEnhanced, renderPageAlreadyRouted } from './renderPage/renderPageAlreadyRouted.js';
|
|
4
4
|
import { route } from '../../shared/route/index.js';
|
|
5
|
-
import { assert, hasProp, objectAssign, isUrl, parseUrl, onSetupRuntime, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, setUrlOrigin,
|
|
5
|
+
import { assert, hasProp, objectAssign, isUrl, parseUrl, onSetupRuntime, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, setUrlOrigin, isUri, getUrlPretty } from './utils.js';
|
|
6
6
|
import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled } from '../../shared/route/abort.js';
|
|
7
7
|
import { getGlobalContextInternal, initGlobalContext_renderPage } from './globalContext.js';
|
|
8
8
|
import { handlePageContextRequestUrl } from './renderPage/handlePageContextRequestUrl.js';
|
|
@@ -341,7 +341,7 @@ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
|
|
|
341
341
|
if (!urlNormalized)
|
|
342
342
|
return null;
|
|
343
343
|
logRuntimeInfo?.(`URL normalized from ${pc.cyan(urlOriginal)} to ${pc.cyan(urlNormalized)} (https://vike.dev/url-normalization)`, httpRequestId, 'info');
|
|
344
|
-
const httpResponse = createHttpResponseRedirect({ url: urlNormalized, statusCode: 301 }, pageContextInit
|
|
344
|
+
const httpResponse = createHttpResponseRedirect({ url: urlNormalized, statusCode: 301 }, pageContextInit);
|
|
345
345
|
const pageContextHttpResponse = createPageContext(pageContextInit);
|
|
346
346
|
objectAssign(pageContextHttpResponse, { httpResponse });
|
|
347
347
|
return pageContextHttpResponse;
|
|
@@ -383,7 +383,7 @@ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestI
|
|
|
383
383
|
assert(urlTarget !== pageContextInit.urlOriginal);
|
|
384
384
|
}
|
|
385
385
|
logRuntimeInfo?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
|
|
386
|
-
const httpResponse = createHttpResponseRedirect({ url: urlTarget, statusCode: 301 },
|
|
386
|
+
const httpResponse = createHttpResponseRedirect({ url: urlTarget, statusCode: 301 }, pageContextInit);
|
|
387
387
|
const pageContextHttpResponse = createPageContext(pageContextInit);
|
|
388
388
|
objectAssign(pageContextHttpResponse, { httpResponse });
|
|
389
389
|
return pageContextHttpResponse;
|
|
@@ -391,7 +391,9 @@ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestI
|
|
|
391
391
|
function normalize(url) {
|
|
392
392
|
return url || '/';
|
|
393
393
|
}
|
|
394
|
-
async function handleAbortError(errAbort, pageContextsFromRewrite,
|
|
394
|
+
async function handleAbortError(errAbort, pageContextsFromRewrite,
|
|
395
|
+
// The original `pageContextInit` object passed to `renderPage(pageContextInit)`
|
|
396
|
+
pageContextInit,
|
|
395
397
|
// handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
|
|
396
398
|
pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext) {
|
|
397
399
|
logAbortErrorHandled(errAbort, globalContext.isProduction, pageContextNominalPageInit);
|
|
@@ -429,13 +431,7 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalConte
|
|
|
429
431
|
if (pageContextAbort._urlRedirect) {
|
|
430
432
|
const pageContextReturn = createPageContext(pageContextInit);
|
|
431
433
|
objectAssign(pageContextReturn, pageContextAbort);
|
|
432
|
-
const httpResponse = createHttpResponseRedirect(pageContextAbort._urlRedirect,
|
|
433
|
-
const { pathname, searchOriginal } = pageContextNominalPageInit.urlParsed;
|
|
434
|
-
const urlLogical = createUrlFromComponents(null, pathname, searchOriginal,
|
|
435
|
-
// The server-side doesn't have access to the hash
|
|
436
|
-
null);
|
|
437
|
-
return urlLogical;
|
|
438
|
-
})());
|
|
434
|
+
const httpResponse = createHttpResponseRedirect(pageContextAbort._urlRedirect, pageContextInit);
|
|
439
435
|
objectAssign(pageContextReturn, { httpResponse });
|
|
440
436
|
return { pageContextReturn };
|
|
441
437
|
}
|
|
@@ -11,7 +11,6 @@ export * from '../../utils/parseUrl.js';
|
|
|
11
11
|
export * from '../../utils/parseUrl-extras.js';
|
|
12
12
|
export * from '../../utils/slice.js';
|
|
13
13
|
export * from '../../utils/sorter.js';
|
|
14
|
-
export * from '../../utils/projectInfo.js';
|
|
15
14
|
export * from '../../utils/isArray.js';
|
|
16
15
|
export * from '../../utils/isObject.js';
|
|
17
16
|
export * from '../../utils/objectAssign.js';
|
|
@@ -15,7 +15,6 @@ export * from '../../utils/parseUrl.js';
|
|
|
15
15
|
export * from '../../utils/parseUrl-extras.js';
|
|
16
16
|
export * from '../../utils/slice.js';
|
|
17
17
|
export * from '../../utils/sorter.js';
|
|
18
|
-
export * from '../../utils/projectInfo.js';
|
|
19
18
|
export * from '../../utils/isArray.js';
|
|
20
19
|
export * from '../../utils/isObject.js';
|
|
21
20
|
export * from '../../utils/objectAssign.js';
|
|
@@ -9,16 +9,18 @@ import { setGlobalContext_isProduction } from '../runtime/globalContext.js';
|
|
|
9
9
|
*/
|
|
10
10
|
async function createDevMiddleware(options = {}) {
|
|
11
11
|
setGlobalContext_isProduction(false);
|
|
12
|
-
const
|
|
13
|
-
...options
|
|
14
|
-
|
|
15
|
-
...options.viteConfig
|
|
16
|
-
|
|
12
|
+
const optionsMod = {
|
|
13
|
+
...options,
|
|
14
|
+
viteConfig: {
|
|
15
|
+
...options.viteConfig,
|
|
16
|
+
root: options.root ?? options.viteConfig?.root,
|
|
17
|
+
server: {
|
|
18
|
+
...options.viteConfig?.server,
|
|
19
|
+
middlewareMode: options.viteConfig?.server?.middlewareMode ?? true
|
|
20
|
+
}
|
|
17
21
|
}
|
|
18
22
|
};
|
|
19
|
-
|
|
20
|
-
viteConfigFromOptions.root = options.root;
|
|
21
|
-
const { viteConfigEnhanced } = await prepareViteApiCall(viteConfigFromOptions, 'dev');
|
|
23
|
+
const { viteConfigEnhanced } = await prepareViteApiCall(optionsMod, 'dev');
|
|
22
24
|
const server = await createServer(viteConfigEnhanced);
|
|
23
25
|
const devMiddleware = server.middlewares;
|
|
24
26
|
return { devMiddleware, viteServer: server, viteConfig: server.config };
|
|
@@ -10,7 +10,8 @@ function assertV1Design(pageConfigs, pageFilesAll) {
|
|
|
10
10
|
assert(pageConfigs.length > 0);
|
|
11
11
|
const filesV1 = unique(pageConfigs
|
|
12
12
|
.map((p) => Object.values(p.configValueSources).map((sources) => sources
|
|
13
|
-
.map((c) => c.
|
|
13
|
+
.map((c) => c.definedAt)
|
|
14
|
+
.map((definedAt) => (definedAt.definedBy ? null : definedAt.filePathAbsoluteUserRootDir))
|
|
14
15
|
.filter(isNotNullish)
|
|
15
16
|
.map((filePathToShowToUser) => indent + filePathToShowToUser)))
|
|
16
17
|
.flat(2));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from '../../utils/assert.js';
|
|
2
2
|
export * from '../../utils/getFileExtension.js';
|
|
3
3
|
export * from '../../utils/isPlainObject.js';
|
|
4
|
-
export * from '../../utils/projectInfo.js';
|
|
5
4
|
export * from '../../utils/checkType.js';
|
|
6
5
|
export * from '../../utils/hasProp.js';
|
|
7
6
|
export * from '../../utils/objectAssign.js';
|
|
@@ -3,7 +3,6 @@ assertIsNotBrowser();
|
|
|
3
3
|
export * from '../../utils/assert.js';
|
|
4
4
|
export * from '../../utils/getFileExtension.js';
|
|
5
5
|
export * from '../../utils/isPlainObject.js';
|
|
6
|
-
export * from '../../utils/projectInfo.js';
|
|
7
6
|
export * from '../../utils/checkType.js';
|
|
8
7
|
export * from '../../utils/hasProp.js';
|
|
9
8
|
export * from '../../utils/objectAssign.js';
|