vike 0.4.230-commit-eea72b2 → 0.4.230-commit-f07cc20
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/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +12 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -0
- package/dist/esm/shared/page-configs/PageConfig.d.ts +3 -3
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/package.json +1 -1
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js
CHANGED
|
@@ -54,7 +54,11 @@ function assertExtensionsRequire(plusFiles) {
|
|
|
54
54
|
Object.entries(require).forEach(([reqName, req]) => {
|
|
55
55
|
const errBase = `${picocolors_1.default.bold(name)} requires ${picocolors_1.default.bold(reqName)}`;
|
|
56
56
|
if (reqName === 'vike') {
|
|
57
|
-
|
|
57
|
+
let errMsg = `${errBase} version ${picocolors_1.default.bold(req.version)}, but ${picocolors_1.default.bold(utils_js_1.PROJECT_VERSION)} is installed.`;
|
|
58
|
+
if (req.optional) {
|
|
59
|
+
errMsg += " Either update it, or remove it (it's an optional peer dependency).";
|
|
60
|
+
}
|
|
61
|
+
(0, utils_js_1.assertUsage)(isVersionRange(utils_js_1.PROJECT_VERSION, req.version), errMsg);
|
|
58
62
|
return;
|
|
59
63
|
}
|
|
60
64
|
const extensionVersion = extensions[reqName];
|
|
@@ -708,6 +708,8 @@ function getConfigDefinitions(plusFilesRelevant, filter) {
|
|
|
708
708
|
assertMetaUsage(meta, `Config ${picocolors_1.default.cyan('meta')} defined at ${plusFile.filePath.filePathToShowToUser}`);
|
|
709
709
|
// Set configDef._userEffectDefinedAtFilePath
|
|
710
710
|
Object.entries(meta).forEach(([configName, configDef]) => {
|
|
711
|
+
if ('isDefinedByPeerDependency' in configDef)
|
|
712
|
+
return;
|
|
711
713
|
if (!configDef.effect)
|
|
712
714
|
return;
|
|
713
715
|
(0, utils_js_1.assert)(plusFile.isConfigFile);
|
|
@@ -717,6 +719,12 @@ function getConfigDefinitions(plusFilesRelevant, filter) {
|
|
|
717
719
|
};
|
|
718
720
|
});
|
|
719
721
|
(0, utils_js_1.objectEntries)(meta).forEach(([configName, configDefinitionUserLand]) => {
|
|
722
|
+
if ('isDefinedByPeerDependency' in configDefinitionUserLand) {
|
|
723
|
+
configDefinitionUserLand = {
|
|
724
|
+
env: { client: false, server: false, config: false },
|
|
725
|
+
...configDefinitionUserLand
|
|
726
|
+
};
|
|
727
|
+
}
|
|
720
728
|
// User can override an existing config definition
|
|
721
729
|
configDefinitions[configName] = {
|
|
722
730
|
...configDefinitions[configName],
|
|
@@ -739,6 +747,8 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
|
|
|
739
747
|
(0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
740
748
|
(0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}`)} to a value with an invalid type ${picocolors_1.default.cyan(typeof def)}: it should be an object instead.`);
|
|
741
749
|
}
|
|
750
|
+
if (def.isDefinedByPeerDependency)
|
|
751
|
+
return;
|
|
742
752
|
// env
|
|
743
753
|
let configEnv;
|
|
744
754
|
{
|
|
@@ -849,6 +859,7 @@ function applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEf
|
|
|
849
859
|
}
|
|
850
860
|
assertMetaUsage(configValue, configDefinedAt);
|
|
851
861
|
(0, utils_js_1.objectEntries)(configValue).forEach(([configTargetName, configTargetDef]) => {
|
|
862
|
+
(0, utils_js_1.assert)(!('isDefinedByPeerDependency' in configTargetDef));
|
|
852
863
|
{
|
|
853
864
|
const keys = Object.keys(configTargetDef);
|
|
854
865
|
(0, utils_js_1.assertUsage)(keys.includes('env'), notSupported);
|
package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js
CHANGED
|
@@ -49,7 +49,11 @@ function assertExtensionsRequire(plusFiles) {
|
|
|
49
49
|
Object.entries(require).forEach(([reqName, req]) => {
|
|
50
50
|
const errBase = `${pc.bold(name)} requires ${pc.bold(reqName)}`;
|
|
51
51
|
if (reqName === 'vike') {
|
|
52
|
-
|
|
52
|
+
let errMsg = `${errBase} version ${pc.bold(req.version)}, but ${pc.bold(PROJECT_VERSION)} is installed.`;
|
|
53
|
+
if (req.optional) {
|
|
54
|
+
errMsg += " Either update it, or remove it (it's an optional peer dependency).";
|
|
55
|
+
}
|
|
56
|
+
assertUsage(isVersionRange(PROJECT_VERSION, req.version), errMsg);
|
|
53
57
|
return;
|
|
54
58
|
}
|
|
55
59
|
const extensionVersion = extensions[reqName];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { configDefinitionsBuiltIn };
|
|
2
2
|
export type { ConfigDefinition };
|
|
3
3
|
export type { ConfigDefinitions };
|
|
4
|
+
export type { ConfigDefinitionsInternal };
|
|
4
5
|
export type { ConfigDefinitionInternal };
|
|
5
6
|
export type { ConfigEffect };
|
|
6
7
|
import type { ConfigEnvInternal, ConfigEnv, ConfigValueSources, DefinedAtFilePath } from '../../../../../../shared/page-configs/PageConfig.js';
|
|
@@ -10,7 +11,8 @@ import { type ConfigDefinedAt } from '../../../../../../shared/page-configs/getC
|
|
|
10
11
|
*
|
|
11
12
|
* https://vike.dev/meta
|
|
12
13
|
*/
|
|
13
|
-
type ConfigDefinition =
|
|
14
|
+
type ConfigDefinition = ConfigDefinition_ | ConfigDefinitionDefinedByPeerDependency;
|
|
15
|
+
type ConfigDefinition_ = {
|
|
14
16
|
/** In what environment(s) the config value is loaded.
|
|
15
17
|
*
|
|
16
18
|
* https://vike.dev/meta
|
|
@@ -49,6 +51,12 @@ type ConfigDefinition = {
|
|
|
49
51
|
}) => boolean);
|
|
50
52
|
type?: string | string[];
|
|
51
53
|
};
|
|
54
|
+
type ConfigDefinitionDefinedByPeerDependency = {
|
|
55
|
+
/**
|
|
56
|
+
* Omit the "unknown config" error without defining the config — useful for optional peer dependencies: for example, vike-server sets +stream.require which is defined by vike-{react,vue,solid} but some users don't use vike-{react,vue,solid}
|
|
57
|
+
*/
|
|
58
|
+
isDefinedByPeerDependency: true;
|
|
59
|
+
};
|
|
52
60
|
/**
|
|
53
61
|
* Function called when the config value is defined.
|
|
54
62
|
*
|
|
@@ -67,13 +75,15 @@ type ConfigEffect = (config: {
|
|
|
67
75
|
configDefinedAt: ConfigDefinedAt;
|
|
68
76
|
}) => Config | undefined;
|
|
69
77
|
/** For Vike internal use */
|
|
70
|
-
type ConfigDefinitionInternal = Omit<
|
|
78
|
+
type ConfigDefinitionInternal = Omit<ConfigDefinition_, 'env'> & {
|
|
71
79
|
_computed?: (configValueSources: ConfigValueSources) => unknown;
|
|
72
80
|
_valueIsFilePath?: true;
|
|
73
81
|
_userEffectDefinedAtFilePath?: DefinedAtFilePath;
|
|
74
82
|
env: ConfigEnvInternal;
|
|
75
83
|
};
|
|
76
84
|
type ConfigDefinitions = Record<string, // configName
|
|
85
|
+
ConfigDefinition>;
|
|
86
|
+
type ConfigDefinitionsInternal = Record<string, // configName
|
|
77
87
|
ConfigDefinitionInternal>;
|
|
78
88
|
type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn | ConfigNameGlobal, ConfigDefinitionInternal>;
|
|
79
89
|
declare const configDefinitionsBuiltIn: ConfigDefinitionsBuiltIn;
|
|
@@ -7,20 +7,20 @@ import type { FilePathResolved } from '../../../../../../shared/page-configs/Fil
|
|
|
7
7
|
import { type EsbuildCache } from './transpileAndExecuteFile.js';
|
|
8
8
|
import type { PlusFileValue } from './getPlusFilesAll.js';
|
|
9
9
|
import { PointerImport } from './resolvePointerImport.js';
|
|
10
|
-
import type {
|
|
10
|
+
import type { ConfigDefinitionsInternal } from './configDefinitionsBuiltIn.js';
|
|
11
11
|
type ConfigFile = {
|
|
12
12
|
fileExports: Record<string, unknown>;
|
|
13
13
|
filePath: FilePathResolved;
|
|
14
14
|
extendsFilePaths: string[];
|
|
15
15
|
};
|
|
16
|
-
declare function loadPointerImport(pointerImport: PointerImportLoaded, userRootDir: string, configName: string, configDefinitions:
|
|
16
|
+
declare function loadPointerImport(pointerImport: PointerImportLoaded, userRootDir: string, configName: string, configDefinitions: ConfigDefinitionsInternal, esbuildCache: EsbuildCache): Promise<unknown>;
|
|
17
17
|
type PointerImportLoaded = PointerImport & ({
|
|
18
18
|
fileExportValueLoaded: true;
|
|
19
19
|
fileExportValue: unknown;
|
|
20
20
|
} | {
|
|
21
21
|
fileExportValueLoaded: false;
|
|
22
22
|
});
|
|
23
|
-
declare function loadValueFile(interfaceValueFile: PlusFileValue, configDefinitions:
|
|
23
|
+
declare function loadValueFile(interfaceValueFile: PlusFileValue, configDefinitions: ConfigDefinitionsInternal, userRootDir: string, esbuildCache: EsbuildCache): Promise<void>;
|
|
24
24
|
declare function loadConfigFile(configFilePath: FilePathResolved, userRootDir: string, visited: string[], isExtensionConfig: boolean, esbuildCache: EsbuildCache): Promise<{
|
|
25
25
|
configFile: ConfigFile;
|
|
26
26
|
extendsConfigs: ConfigFile[];
|
|
@@ -9,7 +9,7 @@ export { getVikeConfigFromCliOrEnv };
|
|
|
9
9
|
export { isOverriden };
|
|
10
10
|
export type { VikeConfigObject };
|
|
11
11
|
import type { PageConfigGlobalBuildTime, ConfigValueSource, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
12
|
-
import { type
|
|
12
|
+
import { type ConfigDefinitionsInternal, type ConfigDefinitionInternal } from './getVikeConfig/configDefinitionsBuiltIn.js';
|
|
13
13
|
import type { ResolvedConfig, UserConfig } from 'vite';
|
|
14
14
|
import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from '../../../../../shared/page-configs/getUserFriendlyConfigs.js';
|
|
15
15
|
import { type PlusFile } from './getVikeConfig/getPlusFilesAll.js';
|
|
@@ -34,7 +34,7 @@ declare function getVikeConfigFromCliOrEnv(): {
|
|
|
34
34
|
configFromCliOptions: import("../../../../cli/parseCli.js").CliOptions | null;
|
|
35
35
|
configFromEnvVar: Record<string, unknown> | null;
|
|
36
36
|
};
|
|
37
|
-
declare function getConfigDefinitionOptional(configDefinitions:
|
|
37
|
+
declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinitionsInternal, configName: string): ConfigDefinitionInternal | null;
|
|
38
38
|
declare function getConfVal(plusFile: PlusFile, configName: string): null | {
|
|
39
39
|
value: unknown;
|
|
40
40
|
valueIsLoaded: true;
|
|
@@ -703,6 +703,8 @@ function getConfigDefinitions(plusFilesRelevant, filter) {
|
|
|
703
703
|
assertMetaUsage(meta, `Config ${pc.cyan('meta')} defined at ${plusFile.filePath.filePathToShowToUser}`);
|
|
704
704
|
// Set configDef._userEffectDefinedAtFilePath
|
|
705
705
|
Object.entries(meta).forEach(([configName, configDef]) => {
|
|
706
|
+
if ('isDefinedByPeerDependency' in configDef)
|
|
707
|
+
return;
|
|
706
708
|
if (!configDef.effect)
|
|
707
709
|
return;
|
|
708
710
|
assert(plusFile.isConfigFile);
|
|
@@ -712,6 +714,12 @@ function getConfigDefinitions(plusFilesRelevant, filter) {
|
|
|
712
714
|
};
|
|
713
715
|
});
|
|
714
716
|
objectEntries(meta).forEach(([configName, configDefinitionUserLand]) => {
|
|
717
|
+
if ('isDefinedByPeerDependency' in configDefinitionUserLand) {
|
|
718
|
+
configDefinitionUserLand = {
|
|
719
|
+
env: { client: false, server: false, config: false },
|
|
720
|
+
...configDefinitionUserLand
|
|
721
|
+
};
|
|
722
|
+
}
|
|
715
723
|
// User can override an existing config definition
|
|
716
724
|
configDefinitions[configName] = {
|
|
717
725
|
...configDefinitions[configName],
|
|
@@ -734,6 +742,8 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
|
|
|
734
742
|
assert(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
|
|
735
743
|
assertUsage(false, `${metaConfigDefinedAt} sets ${pc.cyan(`meta.${configName}`)} to a value with an invalid type ${pc.cyan(typeof def)}: it should be an object instead.`);
|
|
736
744
|
}
|
|
745
|
+
if (def.isDefinedByPeerDependency)
|
|
746
|
+
return;
|
|
737
747
|
// env
|
|
738
748
|
let configEnv;
|
|
739
749
|
{
|
|
@@ -844,6 +854,7 @@ function applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEf
|
|
|
844
854
|
}
|
|
845
855
|
assertMetaUsage(configValue, configDefinedAt);
|
|
846
856
|
objectEntries(configValue).forEach(([configTargetName, configTargetDef]) => {
|
|
857
|
+
assert(!('isDefinedByPeerDependency' in configTargetDef));
|
|
847
858
|
{
|
|
848
859
|
const keys = Object.keys(configTargetDef);
|
|
849
860
|
assertUsage(keys.includes('env'), notSupported);
|
|
@@ -23,7 +23,7 @@ export type { DefinedAtFilePath };
|
|
|
23
23
|
import type { ConfigValueSerialized } from './serialize/PageConfigSerialized.js';
|
|
24
24
|
import type { LocationId } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js';
|
|
25
25
|
import type { FilePath } from './FilePath.js';
|
|
26
|
-
import type {
|
|
26
|
+
import type { ConfigDefinitionsInternal } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js';
|
|
27
27
|
import type { PlusFile } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js';
|
|
28
28
|
import type { Operation } from '../../node/api/types.js';
|
|
29
29
|
type PageConfigCommon = {
|
|
@@ -51,7 +51,7 @@ type PageConfigGlobalRuntime = {
|
|
|
51
51
|
};
|
|
52
52
|
/** Page config, build-time data structure */
|
|
53
53
|
type PageConfigBuildTime = PageConfigCommon & {
|
|
54
|
-
configDefinitions:
|
|
54
|
+
configDefinitions: ConfigDefinitionsInternal;
|
|
55
55
|
plusFiles: PlusFile[];
|
|
56
56
|
configValueSources: ConfigValueSources;
|
|
57
57
|
configValuesComputed: ConfigValuesComputed;
|
|
@@ -59,7 +59,7 @@ type PageConfigBuildTime = PageConfigCommon & {
|
|
|
59
59
|
/** Global config that applies to all pages, build-time data structure */
|
|
60
60
|
type PageConfigGlobalBuildTime = {
|
|
61
61
|
configValueSources: ConfigValueSources;
|
|
62
|
-
configDefinitions:
|
|
62
|
+
configDefinitions: ConfigDefinitionsInternal;
|
|
63
63
|
configValuesComputed?: undefined;
|
|
64
64
|
};
|
|
65
65
|
/** Same as PageConfigRuntime but also contains all lazily loaded config values such as config.Page */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.230-commit-
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.230-commit-f07cc20";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.230-commit-
|
|
2
|
+
export const PROJECT_VERSION = '0.4.230-commit-f07cc20';
|