vike 0.4.171 → 0.4.172-commit-ea2b76c
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/buildConfig.js +3 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -1
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +8 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +17 -6
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +31 -75
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -43
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -50
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +17 -2
- package/dist/cjs/node/prerender/runPrerender.js +35 -15
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScripts.js +2 -1
- package/dist/cjs/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
- package/dist/cjs/node/runtime/html/renderHtml.js +19 -20
- package/dist/cjs/node/runtime/html/stream.js +9 -9
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +91 -282
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +30 -10
- package/dist/cjs/node/runtime/renderPage.js +24 -17
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/node/shared/assertV1Design.js +3 -4
- package/dist/cjs/shared/getPageContext.js +5 -0
- package/dist/cjs/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +2 -2
- package/dist/cjs/shared/getPageFiles/getExports.js +49 -1
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +15 -8
- package/dist/cjs/shared/hooks/executeHook.js +22 -3
- package/dist/cjs/shared/hooks/getHook.js +2 -2
- package/dist/cjs/shared/page-configs/getConfigValue.js +14 -17
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +70 -0
- package/dist/cjs/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -18
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +110 -16
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +198 -0
- package/dist/cjs/shared/route/executeGuardHook.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/cjs/shared/route/index.js +2 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
- package/dist/cjs/shared/sortPageContext.js +4 -8
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/assert.js +1 -1
- package/dist/cjs/utils/assertNodeVersion.js +1 -1
- package/dist/cjs/utils/changeEnumerable.js +9 -0
- package/dist/cjs/utils/escapeHtml.js +14 -0
- package/dist/cjs/utils/getPropAccessNotation.js +1 -4
- package/dist/cjs/utils/hasProp.js +5 -7
- package/dist/cjs/utils/normalizeHeaders.js +13 -0
- package/dist/cjs/utils/objectAssign.js +1 -1
- package/dist/cjs/utils/objectDefineProperty.js +8 -0
- package/dist/cjs/utils/objectKeys.js +8 -4
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +6 -4
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +16 -12
- package/dist/esm/client/client-routing-runtime/installClientRouter.js +18 -10
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +3 -3
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +4 -4
- package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/server-routing-runtime/utils.js +1 -0
- package/dist/esm/client/shared/executeOnRenderClientHook.js +1 -1
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +3 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +35 -48
- package/dist/esm/client/shared/loadUserFilesClientSide.js +4 -4
- package/dist/esm/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -1
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +14 -0
- package/dist/esm/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +7 -9
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +18 -7
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +31 -75
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -43
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -50
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +14 -2
- package/dist/esm/node/prerender/runPrerender.js +37 -17
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScripts.js +3 -2
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
- package/dist/esm/node/runtime/html/renderHtml.js +19 -20
- package/dist/esm/node/runtime/html/stream.d.ts +1 -1
- package/dist/esm/node/runtime/html/stream.js +9 -9
- package/dist/esm/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -6
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/esm/node/runtime/renderPage/logErrorHint.d.ts +2 -6
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +92 -283
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +65 -39
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +31 -11
- package/dist/esm/node/runtime/renderPage.js +24 -17
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/node/shared/assertV1Design.d.ts +2 -2
- package/dist/esm/node/shared/assertV1Design.js +3 -4
- package/dist/esm/shared/VikeNamespace.d.ts +9 -0
- package/dist/esm/shared/getPageContext.d.ts +1 -0
- package/dist/esm/shared/getPageContext.js +1 -0
- package/dist/esm/shared/{addUrlComputedProps.d.ts → getPageContextUrlComputed.d.ts} +23 -21
- package/dist/esm/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/esm/shared/getPageFiles/getExports.d.ts +36 -0
- package/dist/esm/shared/getPageFiles/getExports.js +50 -2
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +14 -7
- package/dist/esm/shared/hooks/executeHook.d.ts +10 -1
- package/dist/esm/shared/hooks/executeHook.js +21 -2
- package/dist/esm/shared/hooks/getHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.js +3 -3
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +2 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +14 -8
- package/dist/esm/shared/page-configs/getConfigValue.d.ts +12 -12
- package/dist/esm/shared/page-configs/getConfigValue.js +13 -16
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.d.ts +9 -0
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +67 -0
- package/dist/esm/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +17 -21
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.d.ts +1 -5
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -16
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +4 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +109 -15
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +5 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +192 -0
- package/dist/esm/shared/route/executeGuardHook.js +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/esm/shared/route/index.d.ts +3 -3
- package/dist/esm/shared/route/index.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +3 -3
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
- package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
- package/dist/esm/shared/sortPageContext.js +4 -8
- package/dist/esm/shared/types.d.ts +32 -6
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/assert.js +1 -1
- package/dist/esm/utils/assertNodeVersion.js +1 -1
- package/dist/esm/utils/changeEnumerable.d.ts +2 -0
- package/dist/esm/utils/changeEnumerable.js +5 -0
- package/dist/esm/utils/escapeHtml.d.ts +1 -0
- package/dist/esm/utils/escapeHtml.js +10 -0
- package/dist/esm/utils/getPropAccessNotation.d.ts +1 -2
- package/dist/esm/utils/getPropAccessNotation.js +2 -6
- package/dist/esm/utils/hasProp.d.ts +4 -13
- package/dist/esm/utils/hasProp.js +5 -7
- package/dist/esm/utils/normalizeHeaders.d.ts +1 -0
- package/dist/esm/utils/normalizeHeaders.js +9 -0
- package/dist/esm/utils/objectAssign.js +1 -1
- package/dist/esm/utils/objectDefineProperty.d.ts +4 -0
- package/dist/esm/utils/objectDefineProperty.js +4 -0
- package/dist/esm/utils/objectKeys.d.ts +1 -3
- package/dist/esm/utils/objectKeys.js +8 -4
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +21 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -76
- package/dist/cjs/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -14
- package/dist/cjs/node/shared/getClientEntry.js +0 -12
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +0 -85
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -24
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +0 -50
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +0 -16
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -70
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.d.ts +0 -5
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -11
- package/dist/esm/node/shared/getClientEntry.d.ts +0 -3
- package/dist/esm/node/shared/getClientEntry.js +0 -9
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +0 -82
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -21
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.d.ts +0 -8
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +0 -47
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
export { parseConfigValuesImported };
|
|
2
|
-
import { assert } from '../../utils.js';
|
|
3
|
-
import { assertPlusFileExport } from '../assertPlusFileExport.js';
|
|
4
|
-
function parseConfigValuesImported(configValuesImported) {
|
|
5
|
-
const configValuesUnmerged = {};
|
|
6
|
-
configValuesImported
|
|
7
|
-
.filter((c) => c.configName !== 'client')
|
|
8
|
-
.forEach((configValueLoaded) => {
|
|
9
|
-
if (configValueLoaded.isValueFile) {
|
|
10
|
-
const { exportValues, importPath, configName } = configValueLoaded;
|
|
11
|
-
assertPlusFileExport(exportValues, importPath, configName);
|
|
12
|
-
Object.entries(exportValues).forEach(([exportName, exportValue]) => {
|
|
13
|
-
const isSideExport = exportName !== 'default'; // .md files may have "side-exports" such as `export { frontmatter }`
|
|
14
|
-
const configName = isSideExport ? exportName : configValueLoaded.configName;
|
|
15
|
-
configValuesUnmerged[configName] ?? (configValuesUnmerged[configName] = []);
|
|
16
|
-
configValuesUnmerged[configName].push({
|
|
17
|
-
value: exportValue,
|
|
18
|
-
importPath,
|
|
19
|
-
exportName,
|
|
20
|
-
isSideExport
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const { configName, importPath, exportValue, exportName } = configValueLoaded;
|
|
26
|
-
configValuesUnmerged[configName] ?? (configValuesUnmerged[configName] = []);
|
|
27
|
-
configValuesUnmerged[configName].push({
|
|
28
|
-
value: exportValue,
|
|
29
|
-
importPath,
|
|
30
|
-
exportName,
|
|
31
|
-
isSideExport: false
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
const configValues = {};
|
|
36
|
-
Object.entries(configValuesUnmerged).forEach(([configName, values]) => {
|
|
37
|
-
const valuesWithoutSideExports = values.filter((v) => !v.isSideExport);
|
|
38
|
-
const isCumulative = valuesWithoutSideExports.length > 1;
|
|
39
|
-
const noSideExports = valuesWithoutSideExports.length === values.length;
|
|
40
|
-
if (isCumulative) {
|
|
41
|
-
// Vike currently doesn't support side exports for cumulative configs
|
|
42
|
-
assert(noSideExports);
|
|
43
|
-
// TODO: implement
|
|
44
|
-
assert(false);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
const val = valuesWithoutSideExports[0] ??
|
|
48
|
-
// We can't avoid side-export conflicts upstream. (We cannot know about side-exports at build-time.)
|
|
49
|
-
// Side-exports have lower precedence.
|
|
50
|
-
values[0];
|
|
51
|
-
assert(val);
|
|
52
|
-
const { value, importPath, exportName } = val;
|
|
53
|
-
configValues[configName] = {
|
|
54
|
-
type: 'classic',
|
|
55
|
-
value,
|
|
56
|
-
definedAtData: {
|
|
57
|
-
// importPath cannot be relative to the current file, since the current file is a virtual file
|
|
58
|
-
filePathToShowToUser: importPath,
|
|
59
|
-
fileExportPathToShowToUser: [configName, 'default'].includes(exportName)
|
|
60
|
-
? []
|
|
61
|
-
: [
|
|
62
|
-
// Side-export
|
|
63
|
-
exportName
|
|
64
|
-
]
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
assertIsNotNull(value, configName, importPath);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
return configValues;
|
|
71
|
-
}
|
|
72
|
-
function assertIsNotNull(configValue, configName, importPath) {
|
|
73
|
-
assert(!importPath.includes('+config.'));
|
|
74
|
-
/* Re-use this for:
|
|
75
|
-
* - upcoming config.requestPageContextOnNavigation
|
|
76
|
-
* - for cumulative values in the future: we don't need this for now because, currently, cumulative values are never imported.
|
|
77
|
-
assertUsage(
|
|
78
|
-
configValue !== null,
|
|
79
|
-
`Set ${pc.cyan(configName)} to ${pc.cyan('null')} in a +config.js file instead of ${importPath}`
|
|
80
|
-
)
|
|
81
|
-
*/
|
|
82
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { parseConfigValuesSerialized };
|
|
2
|
-
import type { ConfigValues } from '../PageConfig.js';
|
|
3
|
-
import type { ConfigValueSerialized } from './PageConfigSerialized.js';
|
|
4
|
-
declare function parseConfigValuesSerialized(configValuesSerialized: Record<string, ConfigValueSerialized>): ConfigValues;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export { parseConfigValuesSerialized };
|
|
2
|
-
import { assert, isArray } from '../../utils.js';
|
|
3
|
-
import { parse } from '@brillout/json-serializer/parse';
|
|
4
|
-
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
5
|
-
const configValues = {};
|
|
6
|
-
Object.entries(configValuesSerialized).forEach(([configName, configValueSeriliazed]) => {
|
|
7
|
-
assert(!configValues[configName]);
|
|
8
|
-
const { valueSerialized, ...common } = configValueSeriliazed;
|
|
9
|
-
const value = parse(valueSerialized);
|
|
10
|
-
let configValue;
|
|
11
|
-
if (common.type === 'cumulative') {
|
|
12
|
-
assert(isArray(value));
|
|
13
|
-
configValue = { value, ...common };
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
configValue = { value, ...common };
|
|
17
|
-
}
|
|
18
|
-
configValues[configName] = configValue;
|
|
19
|
-
});
|
|
20
|
-
return configValues;
|
|
21
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { serializeConfigValue };
|
|
2
|
-
export { serializeConfigValueImported };
|
|
3
|
-
import { ConfigValueSource } from '../PageConfig.js';
|
|
4
|
-
import { ConfigValueSerialized } from './PageConfigSerialized.js';
|
|
5
|
-
declare function serializeConfigValue(lines: string[], configName: string, configValueSerialized: ConfigValueSerialized): void;
|
|
6
|
-
declare function serializeConfigValueImported(configValueSource: ConfigValueSource, configName: string, whitespace: string, varCounterContainer: {
|
|
7
|
-
varCounter: number;
|
|
8
|
-
}, importStatements: string[]): string[];
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export { serializeConfigValue };
|
|
2
|
-
export { serializeConfigValueImported };
|
|
3
|
-
// This file is never loaded on the client-side but we save it under the vike/shared/ directory in order to collocate it with:
|
|
4
|
-
// - vike/shared/page-configs/serialize/parsePageConfigs.ts
|
|
5
|
-
// - vike/shared/page-configs/serialize/parseConfigValuesImported.ts
|
|
6
|
-
// Both parsePageConfigs() parseConfigValuesImported() and are loaded on the client-side and server-side
|
|
7
|
-
import { assertIsNotProductionRuntime } from '../../../utils/assertIsNotProductionRuntime.js';
|
|
8
|
-
assertIsNotProductionRuntime();
|
|
9
|
-
import { assert } from '../../utils.js';
|
|
10
|
-
import { generateEagerImport } from '../../../node/plugin/plugins/importUserCode/generateEagerImport.js';
|
|
11
|
-
function serializeConfigValue(lines, configName, configValueSerialized) {
|
|
12
|
-
let whitespace = ' ';
|
|
13
|
-
lines.push(`${whitespace}['${configName}']: {`);
|
|
14
|
-
whitespace += ' ';
|
|
15
|
-
Object.entries(configValueSerialized).forEach(([key, val]) => {
|
|
16
|
-
const valSerialized = key === 'valueSerialized' ? val : JSON.stringify(val);
|
|
17
|
-
lines.push(`${whitespace} ${key}: ${valSerialized},`);
|
|
18
|
-
});
|
|
19
|
-
whitespace = whitespace.slice(2);
|
|
20
|
-
lines.push(`${whitespace}},`);
|
|
21
|
-
}
|
|
22
|
-
function serializeConfigValueImported(configValueSource, configName, whitespace, varCounterContainer, importStatements) {
|
|
23
|
-
assert(!configValueSource.valueIsFilePath);
|
|
24
|
-
assert(whitespace.replaceAll(' ', '').length === 0);
|
|
25
|
-
const { valueIsImportedAtRuntime, valueIsDefinedByValueFile, definedAtFilePath } = configValueSource;
|
|
26
|
-
assert(valueIsImportedAtRuntime);
|
|
27
|
-
const { filePathAbsoluteVite, fileExportName } = definedAtFilePath;
|
|
28
|
-
if (valueIsDefinedByValueFile)
|
|
29
|
-
assert(fileExportName === undefined);
|
|
30
|
-
const { importName, importStatement } = generateEagerImport(filePathAbsoluteVite, varCounterContainer.varCounter++, fileExportName);
|
|
31
|
-
importStatements.push(importStatement);
|
|
32
|
-
const lines = [];
|
|
33
|
-
lines.push(` {`);
|
|
34
|
-
lines.push(` configName: '${configName}',`);
|
|
35
|
-
lines.push(` importPath: '${filePathAbsoluteVite}',`);
|
|
36
|
-
lines.push(` isValueFile: ${JSON.stringify(valueIsDefinedByValueFile)},`);
|
|
37
|
-
if (valueIsDefinedByValueFile) {
|
|
38
|
-
lines.push(` exportValues: ${importName},`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
lines.push(` exportValue: ${importName},`);
|
|
42
|
-
assert(fileExportName);
|
|
43
|
-
lines.push(` exportName: ${JSON.stringify(fileExportName)},`);
|
|
44
|
-
}
|
|
45
|
-
lines.push(` },`);
|
|
46
|
-
return lines;
|
|
47
|
-
}
|