vike 0.4.224-commit-00ed9fe → 0.4.225
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 +15 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +9 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +75 -21
- 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/resolvePrerenderConfig.js +25 -17
- package/dist/cjs/node/prerender/runPrerender.js +2 -2
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +9 -5
- 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 +18 -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 +6 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +2 -2
- package/dist/cjs/utils/assertSingleInstance.js +11 -17
- 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.js +15 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -0
- 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 +9 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +75 -21
- 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/resolvePrerenderConfig.js +26 -18
- package/dist/esm/node/prerender/runPrerender.js +3 -3
- 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.js +10 -6
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -3
- 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 +3 -3
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +19 -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 +6 -2
- package/dist/esm/shared/route/loadPageRoutes.js +2 -2
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +2 -2
- package/dist/esm/utils/assertSingleInstance.js +11 -17
- package/package.json +3 -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
|
@@ -16,7 +16,7 @@ const utils_js_1 = require("./utils.js");
|
|
|
16
16
|
* https://vike.dev/api#build
|
|
17
17
|
*/
|
|
18
18
|
async function build(options = {}) {
|
|
19
|
-
const { viteConfigEnhanced, vikeConfig } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options
|
|
19
|
+
const { viteConfigEnhanced, vikeConfig } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options, 'build');
|
|
20
20
|
// Pass it to pluginAutoFullBuild()
|
|
21
21
|
if (viteConfigEnhanced)
|
|
22
22
|
viteConfigEnhanced._viteConfigEnhanced = viteConfigEnhanced;
|
|
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isVikeCliOrApi = isVikeCliOrApi;
|
|
4
4
|
exports.setContextApiOperation = setContextApiOperation;
|
|
5
5
|
exports.clearContextApiOperation = clearContextApiOperation;
|
|
6
|
+
exports.getApiOperation = getApiOperation;
|
|
6
7
|
const utils_js_1 = require("./utils.js");
|
|
7
8
|
const globalObject = (0, utils_js_1.getGlobalObject)('api/context.ts', {});
|
|
8
9
|
function getApiOperation() {
|
|
9
|
-
|
|
10
|
-
return globalObject.apiOperation;
|
|
10
|
+
return globalObject.apiOperation ?? null;
|
|
11
11
|
}
|
|
12
12
|
function isVikeCliOrApi() {
|
|
13
13
|
// The CLI uses the API
|
|
14
14
|
return !!globalObject.apiOperation;
|
|
15
15
|
}
|
|
16
|
-
function setContextApiOperation(operation) {
|
|
16
|
+
function setContextApiOperation(operation, options) {
|
|
17
17
|
(0, utils_js_1.assert)(!globalObject.apiOperation);
|
|
18
|
-
globalObject.apiOperation = operation;
|
|
18
|
+
globalObject.apiOperation = { operation, options };
|
|
19
19
|
}
|
|
20
20
|
function clearContextApiOperation() {
|
|
21
21
|
globalObject.apiOperation = undefined;
|
package/dist/cjs/node/api/dev.js
CHANGED
|
@@ -9,7 +9,7 @@ const vite_1 = require("vite");
|
|
|
9
9
|
* https://vike.dev/api#dev
|
|
10
10
|
*/
|
|
11
11
|
async function dev(options = {}) {
|
|
12
|
-
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options
|
|
12
|
+
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options, 'dev');
|
|
13
13
|
const server = await (0, vite_1.createServer)(viteConfigEnhanced);
|
|
14
14
|
return {
|
|
15
15
|
viteServer: server,
|
|
@@ -48,9 +48,10 @@ const utils_js_1 = require("./utils.js");
|
|
|
48
48
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
49
49
|
const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
50
50
|
const globalObject = (0, utils_js_1.getGlobalObject)('api/prepareViteApiCall.ts', {});
|
|
51
|
-
async function prepareViteApiCall(
|
|
51
|
+
async function prepareViteApiCall(options, operation) {
|
|
52
52
|
clear();
|
|
53
|
-
(0, context_js_1.setContextApiOperation)(operation);
|
|
53
|
+
(0, context_js_1.setContextApiOperation)(operation, options);
|
|
54
|
+
const viteConfigFromOptions = options.viteConfig;
|
|
54
55
|
return enhanceViteConfig(viteConfigFromOptions, operation);
|
|
55
56
|
}
|
|
56
57
|
// For subsequent API calls, e.g. calling prerender() after build()
|
|
@@ -10,7 +10,7 @@ const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
|
|
|
10
10
|
* https://vike.dev/api#prerender
|
|
11
11
|
*/
|
|
12
12
|
async function prerender(options = {}) {
|
|
13
|
-
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options
|
|
13
|
+
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options, 'prerender');
|
|
14
14
|
options.viteConfig = viteConfigEnhanced;
|
|
15
15
|
const { viteConfig } = await (0, runPrerender_js_1.runPrerenderFromAPI)(options);
|
|
16
16
|
return {
|
|
@@ -9,7 +9,7 @@ const vite_1 = require("vite");
|
|
|
9
9
|
* https://vike.dev/api#preview
|
|
10
10
|
*/
|
|
11
11
|
async function preview(options = {}) {
|
|
12
|
-
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options
|
|
12
|
+
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options, 'preview');
|
|
13
13
|
const server = await (0, vite_1.preview)(viteConfigEnhanced);
|
|
14
14
|
return {
|
|
15
15
|
viteServer: server,
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isVikeCli = isVikeCli;
|
|
4
4
|
exports.setContextCliCommand = setContextCliCommand;
|
|
5
|
+
exports.getCliOptions = getCliOptions;
|
|
5
6
|
const utils_js_1 = require("./utils.js");
|
|
6
7
|
const globalObject = (0, utils_js_1.getGlobalObject)('cli/context.ts', {});
|
|
7
|
-
function
|
|
8
|
-
return globalObject.cliCommand;
|
|
8
|
+
function getCliOptions() {
|
|
9
|
+
return globalObject.cliCommand?.cliOptions ?? null;
|
|
9
10
|
}
|
|
10
11
|
function isVikeCli() {
|
|
11
12
|
return !!globalObject.cliCommand;
|
|
12
13
|
}
|
|
13
|
-
function setContextCliCommand(command) {
|
|
14
|
+
function setContextCliCommand(command, cliOptions) {
|
|
14
15
|
(0, utils_js_1.assert)(!globalObject.cliCommand);
|
|
15
|
-
globalObject.cliCommand = command;
|
|
16
|
+
globalObject.cliCommand = { command, cliOptions };
|
|
16
17
|
}
|
|
@@ -43,8 +43,8 @@ const parseCli_js_1 = require("./parseCli.js");
|
|
|
43
43
|
const context_js_1 = require("./context.js");
|
|
44
44
|
cli();
|
|
45
45
|
async function cli() {
|
|
46
|
-
const { command } = (0, parseCli_js_1.parseCli)();
|
|
47
|
-
(0, context_js_1.setContextCliCommand)(command);
|
|
46
|
+
const { command, cliOptions } = (0, parseCli_js_1.parseCli)();
|
|
47
|
+
(0, context_js_1.setContextCliCommand)(command, cliOptions);
|
|
48
48
|
if (command === 'dev') {
|
|
49
49
|
await cmdDev();
|
|
50
50
|
}
|
|
@@ -66,7 +66,7 @@ async function cmdDev() {
|
|
|
66
66
|
const info = viteServer.config.logger.info;
|
|
67
67
|
const startupDurationString = picocolors_1.default.dim(`ready in ${picocolors_1.default.reset(picocolors_1.default.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
|
|
68
68
|
const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
|
|
69
|
-
info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold(
|
|
69
|
+
info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold('Vike')} v${utils_js_1.PROJECT_VERSION}`)} ${startupDurationString}\n`, {
|
|
70
70
|
clear: !hasExistingLogs
|
|
71
71
|
});
|
|
72
72
|
viteServer.printUrls();
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.parseCli = parseCli;
|
|
7
7
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
8
8
|
const utils_js_1 = require("./utils.js");
|
|
9
|
+
const getEnvVarObject_js_1 = require("../plugin/shared/getEnvVarObject.js");
|
|
9
10
|
const commands = [
|
|
10
11
|
{ name: 'dev', desc: 'Start development server' },
|
|
11
12
|
{ name: 'build', desc: 'Build for production' },
|
|
@@ -13,32 +14,59 @@ const commands = [
|
|
|
13
14
|
{ name: 'prerender', desc: 'Pre-render pages (only needed when partial.disableAutoRun is true)' }
|
|
14
15
|
];
|
|
15
16
|
function parseCli() {
|
|
16
|
-
const command = (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
const command = getCommand();
|
|
18
|
+
const cliOptions = getCliOptions();
|
|
19
|
+
return { command, cliOptions };
|
|
20
|
+
}
|
|
21
|
+
function getCommand() {
|
|
22
|
+
const firstArg = process.argv[2];
|
|
23
|
+
if ((0, utils_js_1.includes)(commands.map((c) => c.name), firstArg)) {
|
|
24
|
+
return firstArg;
|
|
25
|
+
}
|
|
26
|
+
if (!firstArg)
|
|
27
|
+
showHelp();
|
|
28
|
+
showHelpOrVersion(firstArg);
|
|
29
|
+
wrongUsage(`Unknown command ${picocolors_1.default.bold(firstArg)}`);
|
|
30
|
+
}
|
|
31
|
+
function getCliOptions() {
|
|
32
|
+
let cliOptions = {};
|
|
33
|
+
let configNameCurrent;
|
|
34
|
+
const commitIfDefinedWithoutValue = () => {
|
|
35
|
+
if (configNameCurrent)
|
|
36
|
+
commit(true);
|
|
37
|
+
};
|
|
38
|
+
const commit = (val) => {
|
|
39
|
+
(0, utils_js_1.assert)(configNameCurrent);
|
|
40
|
+
cliOptions[configNameCurrent] = val;
|
|
41
|
+
configNameCurrent = undefined;
|
|
42
|
+
};
|
|
26
43
|
for (const arg of process.argv.slice(3)) {
|
|
27
44
|
showHelpOrVersion(arg);
|
|
28
|
-
|
|
45
|
+
if (arg.startsWith('--')) {
|
|
46
|
+
commitIfDefinedWithoutValue();
|
|
47
|
+
configNameCurrent = arg.slice('--'.length);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (!configNameCurrent)
|
|
51
|
+
wrongUsage(`Unknown option ${picocolors_1.default.bold(arg)}`);
|
|
52
|
+
commit((0, getEnvVarObject_js_1.parseJson5)(arg, `CLI option --${configNameCurrent}`));
|
|
53
|
+
}
|
|
29
54
|
}
|
|
30
|
-
|
|
55
|
+
commitIfDefinedWithoutValue();
|
|
56
|
+
return cliOptions;
|
|
31
57
|
}
|
|
32
58
|
function showHelp() {
|
|
33
59
|
const TAB = ' '.repeat(3);
|
|
34
60
|
const nameMaxLength = Math.max(...commands.map((c) => c.name.length));
|
|
35
61
|
console.log([
|
|
36
|
-
`vike@${utils_js_1.
|
|
62
|
+
`vike@${utils_js_1.PROJECT_VERSION}`,
|
|
37
63
|
'',
|
|
38
64
|
'Usage:',
|
|
39
65
|
...[...commands, { name: '-v', desc: "Print Vike's installed version" }].map((c) => ` ${picocolors_1.default.dim('$')} ${picocolors_1.default.bold(`vike ${c.name}`)}${' '.repeat(nameMaxLength - c.name.length)}${TAB}${picocolors_1.default.dim(`# ${c.desc}`)}`),
|
|
40
66
|
'',
|
|
41
|
-
`
|
|
67
|
+
`Vike settings can be passed over the ${picocolors_1.default.cyan('VIKE_CONFIG')} environment variable or as ${picocolors_1.default.cyan('CLI options')} such as --host.`,
|
|
68
|
+
`Vite settings can be passed over the ${picocolors_1.default.cyan('VITE_CONFIG')} environment variable.`,
|
|
69
|
+
`See ${picocolors_1.default.underline('https://vike.dev/cli')} for more information.`
|
|
42
70
|
].join('\n'));
|
|
43
71
|
process.exit(1);
|
|
44
72
|
}
|
|
@@ -51,7 +79,7 @@ function showHelpOrVersion(arg) {
|
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
81
|
function showVersion() {
|
|
54
|
-
console.log(utils_js_1.
|
|
82
|
+
console.log(utils_js_1.PROJECT_VERSION);
|
|
55
83
|
process.exit(1);
|
|
56
84
|
}
|
|
57
85
|
function wrongUsage(msg) {
|
|
@@ -19,6 +19,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
const onLoad_js_1 = require("./onLoad.js");
|
|
20
20
|
(0, onLoad_js_1.onLoad)();
|
|
21
21
|
__exportStar(require("../../utils/assert.js"), exports);
|
|
22
|
-
__exportStar(require("../../utils/
|
|
22
|
+
__exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
|
|
23
23
|
__exportStar(require("../../utils/includes.js"), exports);
|
|
24
24
|
__exportStar(require("../../utils/getGlobalObject.js"), exports);
|
|
@@ -40,7 +40,7 @@ function pluginBuildEntry() {
|
|
|
40
40
|
function getServerProductionEntryCode(config) {
|
|
41
41
|
const importPath = getImportPath(config);
|
|
42
42
|
const buildInfo = {
|
|
43
|
-
versionAtBuildTime: utils_js_1.
|
|
43
|
+
versionAtBuildTime: utils_js_1.PROJECT_VERSION,
|
|
44
44
|
usesClientRouter: (0, extractExportNamesPlugin_js_1.isUsingClientRouter)(), // TODO/v1-release: remove
|
|
45
45
|
viteConfigRuntime: (0, globalContext_js_1.getViteConfigRuntime)(config)
|
|
46
46
|
};
|
|
@@ -78,11 +78,22 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
78
78
|
config: {
|
|
79
79
|
order: 'post',
|
|
80
80
|
handler(configFromUser) {
|
|
81
|
-
// Change default port
|
|
82
81
|
let configFromVike = { server: {}, preview: {} };
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
const vike = getVikeConfigPublic(configFromUser);
|
|
83
|
+
if (vike.config.port !== undefined) {
|
|
84
|
+
// https://vike.dev/port
|
|
85
|
+
setDefault('port', vike.config.port, configFromUser, configFromVike);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Change Vite's default port
|
|
89
|
+
setDefault('port', 3000, configFromUser, configFromVike);
|
|
90
|
+
}
|
|
91
|
+
if (vike.config.host) {
|
|
92
|
+
// https://vike.dev/host
|
|
93
|
+
setDefault('host', vike.config.host, configFromUser, configFromVike);
|
|
94
|
+
}
|
|
95
|
+
else if ((0, utils_js_1.isDocker)()) {
|
|
96
|
+
// Set `--host` for Docker/Podman
|
|
86
97
|
setDefault('host', true, configFromUser, configFromVike);
|
|
87
98
|
}
|
|
88
99
|
// VITE_CONFIG
|
|
@@ -55,6 +55,8 @@ async function getPageDeps(config, pageConfigs) {
|
|
|
55
55
|
const { definedAtFilePath, configEnv } = configValueSource;
|
|
56
56
|
if (!configEnv.client)
|
|
57
57
|
return;
|
|
58
|
+
if (definedAtFilePath.definedBy)
|
|
59
|
+
return;
|
|
58
60
|
if (definedAtFilePath.filePathAbsoluteUserRootDir !== null) {
|
|
59
61
|
// Vite expects entries to be filesystem absolute paths (surprisingly so).
|
|
60
62
|
addEntry(definedAtFilePath.filePathAbsoluteFilesystem);
|
|
@@ -125,6 +125,14 @@ const configDefinitionsBuiltIn = {
|
|
|
125
125
|
cacheControl: {
|
|
126
126
|
env: { server: true }
|
|
127
127
|
},
|
|
128
|
+
host: {
|
|
129
|
+
env: { config: true },
|
|
130
|
+
global: true
|
|
131
|
+
},
|
|
132
|
+
port: {
|
|
133
|
+
env: { config: true },
|
|
134
|
+
global: true
|
|
135
|
+
},
|
|
128
136
|
injectScriptsAt: {
|
|
129
137
|
env: { server: true }
|
|
130
138
|
},
|
|
@@ -150,7 +158,7 @@ const configDefinitionsBuiltIn = {
|
|
|
150
158
|
},
|
|
151
159
|
prerender: {
|
|
152
160
|
env: { config: true },
|
|
153
|
-
global: (value) => typeof value === 'object',
|
|
161
|
+
global: (value, { isGlobalLocation }) => typeof value === 'object' || isGlobalLocation,
|
|
154
162
|
type: ['boolean', 'object'],
|
|
155
163
|
cumulative: true
|
|
156
164
|
},
|
|
@@ -28,6 +28,9 @@ const assertExtensions_js_1 = require("./getVikeConfig/assertExtensions.js");
|
|
|
28
28
|
const getPageConfigUserFriendly_js_1 = require("../../../../../shared/page-configs/getPageConfigUserFriendly.js");
|
|
29
29
|
const serializeConfigValues_js_1 = require("../../../../../shared/page-configs/serialize/serializeConfigValues.js");
|
|
30
30
|
const getPlusFilesAll_js_1 = require("./getVikeConfig/getPlusFilesAll.js");
|
|
31
|
+
const getEnvVarObject_js_1 = require("../../../shared/getEnvVarObject.js");
|
|
32
|
+
const context_js_1 = require("../../../../api/context.js");
|
|
33
|
+
const context_js_2 = require("../../../../cli/context.js");
|
|
31
34
|
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
32
35
|
let restartVite = false;
|
|
33
36
|
let wasConfigInvalid = null;
|
|
@@ -151,6 +154,8 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
|
151
154
|
const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
|
|
152
155
|
// Backwards compatibility for vike(options) in vite.config.js
|
|
153
156
|
temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
|
|
157
|
+
// TODO/now: add validation
|
|
158
|
+
setCliAndApiOptions(pageConfigGlobal);
|
|
154
159
|
// global
|
|
155
160
|
const pageConfigGlobalValues = getConfigValues(pageConfigGlobal);
|
|
156
161
|
const global = (0, getPageConfigUserFriendly_js_1.getPageConfigGlobalUserFriendly)({ pageConfigGlobalValues });
|
|
@@ -209,13 +214,13 @@ function getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRo
|
|
|
209
214
|
(0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsGlobal).forEach(([configName, configDef]) => {
|
|
210
215
|
const sources = resolveConfigValueSources(configName, configDef,
|
|
211
216
|
// We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
|
|
212
|
-
Object.values(plusFilesAll).flat(), userRootDir, true);
|
|
217
|
+
Object.values(plusFilesAll).flat(), userRootDir, true, plusFilesAll);
|
|
213
218
|
if (sources.length === 0)
|
|
214
219
|
return;
|
|
215
220
|
pageConfigGlobal.configValueSources[configName] = sources;
|
|
216
221
|
});
|
|
217
222
|
applyEffectsMetaEnv(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal);
|
|
218
|
-
applyEffectsConfVal(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal);
|
|
223
|
+
applyEffectsConfVal(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal, plusFilesAll);
|
|
219
224
|
sortConfigValueSources(pageConfigGlobal.configValueSources, null);
|
|
220
225
|
assertPageConfigGlobal(pageConfigGlobal, plusFilesAll);
|
|
221
226
|
const pageConfigs = (0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsLocal)
|
|
@@ -226,14 +231,14 @@ function getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRo
|
|
|
226
231
|
(0, utils_js_1.objectEntries)(configDefinitionsLocal)
|
|
227
232
|
.filter(([_configName, configDef]) => configDef.global !== true)
|
|
228
233
|
.forEach(([configName, configDef]) => {
|
|
229
|
-
const sources = resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, false);
|
|
234
|
+
const sources = resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, false, plusFilesAll);
|
|
230
235
|
if (sources.length === 0)
|
|
231
236
|
return;
|
|
232
237
|
configValueSources[configName] = sources;
|
|
233
238
|
});
|
|
234
239
|
const pageConfigRoute = determineRouteFilesystem(locationId, configValueSources);
|
|
235
240
|
applyEffectsMetaEnv(configValueSources, configDefinitionsLocal);
|
|
236
|
-
applyEffectsConfVal(configValueSources, configDefinitionsLocal);
|
|
241
|
+
applyEffectsConfVal(configValueSources, configDefinitionsLocal, plusFilesAll);
|
|
237
242
|
sortConfigValueSources(configValueSources, locationId);
|
|
238
243
|
const configValuesComputed = getComputed(configValueSources, configDefinitionsLocal);
|
|
239
244
|
const pageConfig = {
|
|
@@ -358,6 +363,7 @@ function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, use
|
|
|
358
363
|
(0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn), configName));
|
|
359
364
|
const configDef = configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn[configName];
|
|
360
365
|
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
366
|
+
// TODO/now: use getSourceNonConfigFile()
|
|
361
367
|
sources.push({
|
|
362
368
|
valueIsLoaded: true,
|
|
363
369
|
value,
|
|
@@ -376,6 +382,49 @@ function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, use
|
|
|
376
382
|
});
|
|
377
383
|
});
|
|
378
384
|
}
|
|
385
|
+
function setCliAndApiOptions(pageConfigGlobal) {
|
|
386
|
+
// VIKE_CONFIG
|
|
387
|
+
const configFromEnv = (0, getEnvVarObject_js_1.getEnvVarObject)('VIKE_CONFIG');
|
|
388
|
+
if (configFromEnv) {
|
|
389
|
+
add(configFromEnv, { definedBy: 'env' });
|
|
390
|
+
}
|
|
391
|
+
// Vike API — passed options
|
|
392
|
+
const apiOperation = (0, context_js_1.getApiOperation)();
|
|
393
|
+
if (apiOperation?.options.vikeConfig) {
|
|
394
|
+
add(apiOperation.options.vikeConfig, {
|
|
395
|
+
definedBy: 'api',
|
|
396
|
+
operation: apiOperation.operation
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
// Vike CLI options
|
|
400
|
+
const cliOptions = (0, context_js_2.getCliOptions)();
|
|
401
|
+
if (cliOptions) {
|
|
402
|
+
add(cliOptions, { definedBy: 'cli' });
|
|
403
|
+
}
|
|
404
|
+
return;
|
|
405
|
+
function add(configValues, definedBy) {
|
|
406
|
+
Object.entries(configValues).forEach(([configName, value]) => {
|
|
407
|
+
var _a;
|
|
408
|
+
const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
|
|
409
|
+
sources.unshift(getSourceNonConfigFile(configName, value, definedBy));
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
function getSourceNonConfigFile(configName, value, definedAt) {
|
|
414
|
+
(0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn), configName));
|
|
415
|
+
const configDef = configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn[configName];
|
|
416
|
+
const source = {
|
|
417
|
+
valueIsLoaded: true,
|
|
418
|
+
value,
|
|
419
|
+
configEnv: configDef.env,
|
|
420
|
+
definedAtFilePath: definedAt,
|
|
421
|
+
locationId: '/',
|
|
422
|
+
plusFile: null,
|
|
423
|
+
valueIsLoadedWithImport: false,
|
|
424
|
+
valueIsDefinedByPlusValueFile: false
|
|
425
|
+
};
|
|
426
|
+
return source;
|
|
427
|
+
}
|
|
379
428
|
function sortConfigValueSources(configValueSources, locationIdPage) {
|
|
380
429
|
Object.entries(configValueSources).forEach(([configName, sources]) => {
|
|
381
430
|
sources
|
|
@@ -462,7 +511,7 @@ function sortPlusFilesSameLocationId(plusFile1, plusFile2, configName) {
|
|
|
462
511
|
// No need to make it deterministic: the overall order is arleady deterministic, see sortMakeDeterministic() at getPlusFilesAll()
|
|
463
512
|
return 0;
|
|
464
513
|
}
|
|
465
|
-
function resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, isGlobal) {
|
|
514
|
+
function resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, isGlobal, plusFilesAll) {
|
|
466
515
|
let sources = plusFilesRelevant
|
|
467
516
|
.filter((plusFile) => isDefiningConfig(plusFile, configName))
|
|
468
517
|
.map((plusFile) => getConfigValueSource(configName, plusFile, configDef, userRootDir));
|
|
@@ -477,7 +526,7 @@ function resolveConfigValueSources(configName, configDef, plusFilesRelevant, use
|
|
|
477
526
|
sources = sources.filter((source) => {
|
|
478
527
|
(0, utils_js_1.assert)(source.configEnv.config);
|
|
479
528
|
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
480
|
-
const valueIsGlobal = resolveIsGlobalValue(configDef.global, source
|
|
529
|
+
const valueIsGlobal = resolveIsGlobalValue(configDef.global, source, plusFilesAll);
|
|
481
530
|
return isGlobal ? valueIsGlobal : !valueIsGlobal;
|
|
482
531
|
});
|
|
483
532
|
}
|
|
@@ -601,10 +650,13 @@ function isDefiningPage(plusFiles) {
|
|
|
601
650
|
function isDefiningPageConfig(configName) {
|
|
602
651
|
return ['Page', 'route'].includes(configName);
|
|
603
652
|
}
|
|
604
|
-
function resolveIsGlobalValue(configDefGlobal,
|
|
653
|
+
function resolveIsGlobalValue(configDefGlobal, source, plusFilesAll) {
|
|
654
|
+
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
605
655
|
let isGlobal;
|
|
606
656
|
if ((0, utils_js_1.isCallable)(configDefGlobal))
|
|
607
|
-
isGlobal = configDefGlobal(
|
|
657
|
+
isGlobal = configDefGlobal(source.value, {
|
|
658
|
+
isGlobalLocation: isGlobalLocation(source.locationId, plusFilesAll)
|
|
659
|
+
});
|
|
608
660
|
else
|
|
609
661
|
isGlobal = configDefGlobal ?? false;
|
|
610
662
|
(0, utils_js_1.assert)(typeof isGlobal === 'boolean');
|
|
@@ -694,7 +746,7 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
|
|
|
694
746
|
});
|
|
695
747
|
}
|
|
696
748
|
// Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/vite.config.ts#L39
|
|
697
|
-
function applyEffectsConfVal(configValueSources, configDefinitions) {
|
|
749
|
+
function applyEffectsConfVal(configValueSources, configDefinitions, plusFilesAll) {
|
|
698
750
|
(0, utils_js_1.objectEntries)(configDefinitions).forEach(([configNameEffect, configDefEffect]) => {
|
|
699
751
|
const sourceEffect = configValueSources[configNameEffect]?.[0];
|
|
700
752
|
if (!sourceEffect)
|
|
@@ -702,8 +754,8 @@ function applyEffectsConfVal(configValueSources, configDefinitions) {
|
|
|
702
754
|
const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
|
|
703
755
|
if (!effect)
|
|
704
756
|
return;
|
|
705
|
-
const
|
|
706
|
-
applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions,
|
|
757
|
+
const configModFromEffect = effect;
|
|
758
|
+
applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll);
|
|
707
759
|
});
|
|
708
760
|
}
|
|
709
761
|
// Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/pages/config-meta/effect/e2e-test.ts#L16
|
|
@@ -715,7 +767,7 @@ function applyEffectsMetaEnv(configValueSources, configDefinitions) {
|
|
|
715
767
|
const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
|
|
716
768
|
if (!effect)
|
|
717
769
|
return;
|
|
718
|
-
const
|
|
770
|
+
const configModFromEffect = effect;
|
|
719
771
|
applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEffect);
|
|
720
772
|
});
|
|
721
773
|
}
|
|
@@ -727,17 +779,16 @@ function runEffect(configName, configDef, source) {
|
|
|
727
779
|
`Cannot add meta.effect to ${picocolors_1.default.cyan(configName)} because its meta.env is ${picocolors_1.default.cyan(JSON.stringify(configDef.env))} but an effect can only be added to a config that has a meta.env with ${picocolors_1.default.cyan('{ config: true }')}.`
|
|
728
780
|
].join(' '));
|
|
729
781
|
(0, utils_js_1.assert)(source.valueIsLoaded);
|
|
730
|
-
const configValueEffectSource = source.value;
|
|
731
782
|
// Call effect
|
|
732
783
|
const configModFromEffect = configDef.effect({
|
|
733
|
-
configValue:
|
|
784
|
+
configValue: source.value,
|
|
734
785
|
configDefinedAt: (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, source.definedAtFilePath)
|
|
735
786
|
});
|
|
736
787
|
if (!configModFromEffect)
|
|
737
788
|
return null;
|
|
738
|
-
return
|
|
789
|
+
return configModFromEffect;
|
|
739
790
|
}
|
|
740
|
-
function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions,
|
|
791
|
+
function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll) {
|
|
741
792
|
(0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configNameTarget, configValue]) => {
|
|
742
793
|
if (configNameTarget === 'meta')
|
|
743
794
|
return;
|
|
@@ -754,11 +805,12 @@ function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSource
|
|
|
754
805
|
valueIsLoaded: true,
|
|
755
806
|
value: configValue
|
|
756
807
|
};
|
|
757
|
-
|
|
758
|
-
const
|
|
808
|
+
(0, utils_js_1.assert)(sourceEffect.valueIsLoaded);
|
|
809
|
+
const isValueGlobalSource = resolveIsGlobalValue(configDefEffect.global, sourceEffect, plusFilesAll);
|
|
810
|
+
const isValueGlobalTarget = resolveIsGlobalValue(configDef.global, configValueSource, plusFilesAll);
|
|
759
811
|
const isGlobalHumanReadable = (isGlobal) => `${isGlobal ? 'non-' : ''}global`;
|
|
760
812
|
// The error message make it sound like it's an inherent limitation, it actually isn't (both ways can make senses).
|
|
761
|
-
(0, utils_js_1.assertUsage)(isValueGlobalSource === isValueGlobalTarget, `The configuration ${picocolors_1.default.cyan(configNameEffect)} is set to ${picocolors_1.default.cyan(JSON.stringify(
|
|
813
|
+
(0, utils_js_1.assertUsage)(isValueGlobalSource === isValueGlobalTarget, `The configuration ${picocolors_1.default.cyan(configNameEffect)} is set to ${picocolors_1.default.cyan(JSON.stringify(sourceEffect.value))} which is considered ${isGlobalHumanReadable(isValueGlobalSource)}. However, it has a meta.effect that sets the configuration ${picocolors_1.default.cyan(configNameTarget)} to ${picocolors_1.default.cyan(JSON.stringify(configValue))} which is considered ${isGlobalHumanReadable(isValueGlobalTarget)}. This is contradictory: make sure the values are either both non-global or both global.`);
|
|
762
814
|
configValueSources[configNameTarget] ?? (configValueSources[configNameTarget] = []);
|
|
763
815
|
configValueSources[configNameTarget].push(configValueSource);
|
|
764
816
|
});
|
|
@@ -895,7 +947,7 @@ function determineRouteFilesystem(locationId, configValueSources) {
|
|
|
895
947
|
(0, utils_js_1.assert)(filesystemRouteString.startsWith('/'));
|
|
896
948
|
const routeFilesystem = {
|
|
897
949
|
routeString: filesystemRouteString,
|
|
898
|
-
|
|
950
|
+
definedAtLocation: filesystemRouteDefinedBy
|
|
899
951
|
};
|
|
900
952
|
return { routeFilesystem, isErrorPage: undefined };
|
|
901
953
|
}
|
|
@@ -907,7 +959,9 @@ function getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName)
|
|
|
907
959
|
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, configFilesystemRoutingRoot.definedAtFilePath);
|
|
908
960
|
(0, utils_js_1.assertUsage)(typeof value === 'string', `${configDefinedAt} should be a string`);
|
|
909
961
|
(0, utils_js_1.assertUsage)(value.startsWith('/'), `${configDefinedAt} is ${picocolors_1.default.cyan(value)} but it should start with a leading slash ${picocolors_1.default.cyan('/')}`);
|
|
910
|
-
const {
|
|
962
|
+
const { definedAtFilePath } = configFilesystemRoutingRoot;
|
|
963
|
+
(0, utils_js_1.assert)(!definedAtFilePath.definedBy);
|
|
964
|
+
const { filePathAbsoluteUserRootDir } = definedAtFilePath;
|
|
911
965
|
(0, utils_js_1.assert)(filePathAbsoluteUserRootDir);
|
|
912
966
|
const before = (0, filesystemRouting_js_1.getFilesystemRouteString)((0, filesystemRouting_js_1.getLocationId)(filePathAbsoluteUserRootDir));
|
|
913
967
|
const after = value;
|
|
@@ -4,26 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getEnvVarObject = getEnvVarObject;
|
|
7
|
+
exports.parseJson5 = parseJson5;
|
|
7
8
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
8
9
|
const utils_js_1 = require("../utils.js");
|
|
9
10
|
const json5_1 = __importDefault(require("json5"));
|
|
10
|
-
function getEnvVarObject(envVarName
|
|
11
|
-
/* Let's eventually implement this for Vike's config as well
|
|
12
|
-
| 'VIKE_CONFIG'
|
|
13
|
-
*/
|
|
14
|
-
) {
|
|
11
|
+
function getEnvVarObject(envVarName) {
|
|
15
12
|
const valueStr = process.env[envVarName];
|
|
16
13
|
if (!valueStr)
|
|
17
14
|
return null;
|
|
15
|
+
const value = parseJson5(valueStr, envVarName);
|
|
16
|
+
(0, utils_js_1.assertUsage)(value, `${envVarName} should define an object but it's ${picocolors_1.default.bold(String(value))} instead.`);
|
|
17
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(value), `${envVarName} should define an object but it's set to the following which isn't an object: ${picocolors_1.default.bold(valueStr)}`);
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
function parseJson5(valueStr, what) {
|
|
18
21
|
let value;
|
|
19
22
|
try {
|
|
20
23
|
value = json5_1.default.parse(valueStr);
|
|
21
24
|
}
|
|
22
25
|
catch (err) {
|
|
23
26
|
console.error(err);
|
|
24
|
-
(0, utils_js_1.assertUsage)(false, `Cannot parse ${
|
|
27
|
+
(0, utils_js_1.assertUsage)(false, `Cannot parse ${picocolors_1.default.cyan(what)} (see error above) because it's set to the following which isn't a valid JSON5 string: ${picocolors_1.default.bold(valueStr)}`);
|
|
25
28
|
}
|
|
26
|
-
(0, utils_js_1.assertUsage)(value, `${envVarName} should define an object but it's ${picocolors_1.default.bold(String(value))} instead.`);
|
|
27
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(value), `${envVarName} should define an object but it's set to the following which isn't an object: ${picocolors_1.default.bold(valueStr)}`);
|
|
28
29
|
return value;
|
|
29
30
|
}
|
|
@@ -20,7 +20,7 @@ function logWithVikeTag(msg, logType, category, showVikeVersion = false) {
|
|
|
20
20
|
function getProjectTag(showVikeVersion) {
|
|
21
21
|
let projectTag;
|
|
22
22
|
if (showVikeVersion) {
|
|
23
|
-
projectTag = `[vike@${utils_js_1.
|
|
23
|
+
projectTag = `[vike@${utils_js_1.PROJECT_VERSION}]`;
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
26
26
|
projectTag = `[vike]`;
|
|
@@ -4,24 +4,32 @@ exports.resolvePrerenderConfigGlobal = resolvePrerenderConfigGlobal;
|
|
|
4
4
|
exports.resolvePrerenderConfigLocal = resolvePrerenderConfigLocal;
|
|
5
5
|
const utils_js_1 = require("./utils.js");
|
|
6
6
|
const getConfigValueBuildTime_js_1 = require("../../shared/page-configs/getConfigValueBuildTime.js");
|
|
7
|
+
// When setting +prerender to an object => it also enables pre-rendering
|
|
8
|
+
const defaultValueForObject = true;
|
|
7
9
|
function resolvePrerenderConfigGlobal(vikeConfig) {
|
|
8
|
-
const prerenderConfigs = vikeConfig.global.config.prerender;
|
|
9
|
-
|
|
10
|
-
// Needed because of backwards compatibility of `vike({prerender:true})` in `vite.config.js`; after we remove it we can remove this line.
|
|
11
|
-
prerenderConfigList = prerenderConfigList.filter(isObject2);
|
|
12
|
-
(0, utils_js_1.assert)(prerenderConfigList.every(isObject2)); // Help TS
|
|
10
|
+
const prerenderConfigs = vikeConfig.global.config.prerender || [];
|
|
11
|
+
const prerenderSettings = prerenderConfigs.filter(isObject2);
|
|
13
12
|
const prerenderConfigGlobal = {
|
|
14
|
-
partial: pickFirst(
|
|
15
|
-
noExtraDir: pickFirst(
|
|
16
|
-
parallel: pickFirst(
|
|
17
|
-
disableAutoRun: pickFirst(
|
|
13
|
+
partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
|
|
14
|
+
noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
|
|
15
|
+
parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
|
|
16
|
+
disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
|
|
18
17
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
let defaultLocalValue = false;
|
|
19
|
+
{
|
|
20
|
+
const valueFirst = prerenderConfigs.filter((p) => !(0, utils_js_1.isObject)(p) || p.value !== null)[0];
|
|
21
|
+
if (valueFirst === true || ((0, utils_js_1.isObject)(valueFirst) && (valueFirst.value ?? defaultValueForObject))) {
|
|
22
|
+
defaultLocalValue = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// TODO/next-major: remove
|
|
26
|
+
// Backwards compatibility for `vike({prerender:true})` in vite.config.js
|
|
27
|
+
{
|
|
28
|
+
const valuesWithDefinedAt = vikeConfig.global._from.configsCumulative.prerender?.values ?? [];
|
|
29
|
+
if (valuesWithDefinedAt.some((v) => v.definedAt.includes('vite.config.js') && v.value)) {
|
|
30
|
+
defaultLocalValue = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
25
33
|
(0, utils_js_1.objectAssign)(prerenderConfigGlobal, {
|
|
26
34
|
defaultLocalValue,
|
|
27
35
|
isPrerenderingEnabledForAllPages: vikeConfig.pageConfigs.length > 0 &&
|
|
@@ -47,8 +55,8 @@ function resolvePrerenderConfigLocal(pageConfig) {
|
|
|
47
55
|
const prerenderConfigLocal = { value };
|
|
48
56
|
return prerenderConfigLocal;
|
|
49
57
|
}
|
|
50
|
-
function isObject2(
|
|
51
|
-
return typeof
|
|
58
|
+
function isObject2(value) {
|
|
59
|
+
return typeof value === 'object' && value !== null;
|
|
52
60
|
}
|
|
53
61
|
function pickFirst(arr) {
|
|
54
62
|
return arr.filter((v) => v !== undefined)[0];
|