vike 0.4.168 → 0.4.170
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 +10 -2
- package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +19 -16
- package/dist/cjs/node/plugin/plugins/distFileNames.js +7 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +1 -5
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +7 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +14 -11
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +7 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +11 -14
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +129 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +8 -8
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +53 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +82 -106
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +2 -2
- package/dist/cjs/node/plugin/shared/getFilePath.js +50 -49
- package/dist/cjs/node/plugin/utils.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +6 -5
- package/dist/cjs/node/prerender/utils.js +2 -1
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/cjs/node/runtime/index-common.js +14 -3
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -1
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +25 -14
- package/dist/cjs/node/runtime/renderPage/log404/index.js +2 -2
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +1 -1
- package/dist/cjs/node/runtime/utils.js +2 -1
- package/dist/cjs/node/shared/assertV1Design.js +1 -1
- package/dist/cjs/node/shared/getClientEntry.js +2 -2
- package/dist/cjs/node/shared/prependEntriesDir.js +1 -0
- package/dist/cjs/node/shared/utils.js +0 -1
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/getExports.js +8 -15
- package/dist/cjs/shared/getPageFiles.js +3 -6
- package/dist/cjs/shared/hooks/getHook.js +7 -6
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +48 -0
- package/dist/cjs/shared/page-configs/{helpers/getConfigValue.js → getConfigValue.js} +6 -8
- package/dist/cjs/shared/page-configs/helpers.js +6 -11
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +2 -1
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +11 -6
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +4 -3
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +3 -3
- package/dist/cjs/shared/route/index.js +2 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +12 -10
- package/dist/cjs/shared/route/resolveRouteFunction.js +8 -9
- package/dist/cjs/shared/route/resolveRouteString.js +5 -16
- package/dist/cjs/shared/route/utils.js +0 -1
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/assertPathFilesystemAbsolute.js +39 -0
- package/dist/cjs/utils/createErrorWithCleanStackTrace.js +1 -7
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/findFile.js +2 -1
- package/dist/cjs/utils/hasProp.js +9 -5
- package/dist/cjs/utils/injectRollupInputs.js +2 -1
- package/dist/cjs/utils/isArray.js +8 -0
- package/dist/cjs/utils/isArrayOfStrings.js +8 -0
- package/dist/cjs/utils/isDev.js +12 -4
- package/dist/cjs/utils/isNpmPackage.js +1 -1
- package/dist/cjs/utils/isObjectOfStrings.js +8 -0
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +2 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.d.ts +1 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +1 -0
- package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -7
- package/dist/esm/node/plugin/plugins/buildConfig.js +9 -1
- package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +20 -17
- package/dist/esm/node/plugin/plugins/distFileNames.js +8 -2
- package/dist/esm/node/plugin/plugins/envVars.js +2 -6
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +9 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +14 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +4 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +7 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +12 -15
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +12 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +123 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.d.ts +8 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +7 -7
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +54 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +82 -106
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/shared/getFilePath.d.ts +11 -5
- package/dist/esm/node/plugin/shared/getFilePath.js +49 -48
- package/dist/esm/node/plugin/utils.d.ts +2 -2
- package/dist/esm/node/plugin/utils.js +2 -2
- package/dist/esm/node/prerender/runPrerender.js +6 -5
- package/dist/esm/node/prerender/utils.d.ts +2 -1
- package/dist/esm/node/prerender/utils.js +2 -1
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +1 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/esm/node/runtime/index-common.d.ts +0 -4
- package/dist/esm/node/runtime/index-common.js +14 -3
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +4 -4
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +27 -16
- package/dist/esm/node/runtime/renderPage/log404/index.js +2 -2
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -7
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +16 -16
- package/dist/esm/node/runtime/utils.d.ts +2 -1
- package/dist/esm/node/runtime/utils.js +2 -1
- package/dist/esm/node/shared/assertV1Design.js +1 -1
- package/dist/esm/node/shared/getClientEntry.js +1 -1
- package/dist/esm/node/shared/prependEntriesDir.js +1 -0
- package/dist/esm/node/shared/utils.d.ts +0 -1
- package/dist/esm/node/shared/utils.js +0 -1
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/getExports.d.ts +4 -5
- package/dist/esm/shared/getPageFiles/getExports.js +9 -16
- package/dist/esm/shared/getPageFiles.d.ts +1 -2
- package/dist/esm/shared/getPageFiles.js +1 -3
- package/dist/esm/shared/hooks/getHook.js +6 -5
- package/dist/esm/shared/page-configs/Config.d.ts +2 -2
- package/dist/esm/shared/page-configs/FilePath.d.ts +32 -22
- package/dist/esm/shared/page-configs/PageConfig.d.ts +27 -15
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +11 -0
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +42 -0
- package/dist/esm/shared/page-configs/{helpers/getConfigValue.d.ts → getConfigValue.d.ts} +2 -2
- package/dist/esm/shared/page-configs/{helpers/getConfigValue.js → getConfigValue.js} +6 -8
- package/dist/esm/shared/page-configs/helpers.d.ts +3 -9
- package/dist/esm/shared/page-configs/helpers.js +6 -8
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +7 -4
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +2 -2
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +2 -1
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +12 -7
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +5 -4
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +3 -3
- package/dist/esm/shared/route/index.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.d.ts +3 -3
- package/dist/esm/shared/route/loadPageRoutes.js +10 -8
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +1 -1
- package/dist/esm/shared/route/resolveRouteFunction.js +9 -10
- package/dist/esm/shared/route/resolveRouteString.d.ts +0 -2
- package/dist/esm/shared/route/resolveRouteString.js +5 -16
- package/dist/esm/shared/route/utils.d.ts +0 -1
- package/dist/esm/shared/route/utils.js +0 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/utils/assertPathFilesystemAbsolute.d.ts +6 -0
- package/dist/esm/utils/assertPathFilesystemAbsolute.js +33 -0
- package/dist/esm/utils/createErrorWithCleanStackTrace.js +1 -7
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/findFile.js +2 -1
- package/dist/esm/utils/hasProp.d.ts +1 -0
- package/dist/esm/utils/hasProp.js +9 -5
- package/dist/esm/utils/injectRollupInputs.js +2 -1
- package/dist/esm/utils/isArray.d.ts +1 -0
- package/dist/esm/utils/isArray.js +4 -0
- package/dist/esm/utils/isArrayOfStrings.d.ts +2 -0
- package/dist/esm/utils/isArrayOfStrings.js +5 -0
- package/dist/esm/utils/isDev.d.ts +3 -0
- package/dist/esm/utils/isDev.js +11 -3
- package/dist/esm/utils/isNpmPackage.js +1 -1
- package/dist/esm/utils/isObjectOfStrings.d.ts +2 -0
- package/dist/esm/utils/isObjectOfStrings.js +5 -0
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +3 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +0 -136
- package/dist/cjs/shared/page-configs/helpers/getConfigDefinedAtString.js +0 -43
- package/dist/cjs/utils/assertPathIsFilesystemAbsolute.js +0 -21
- package/dist/cjs/utils/isStringRecord.js +0 -7
- package/dist/cjs/utils/mergeCumulativeValues.js +0 -21
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.d.ts +0 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +0 -130
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.d.ts +0 -7
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.js +0 -37
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.d.ts +0 -3
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.js +0 -15
- package/dist/esm/utils/isStringRecord.d.ts +0 -1
- package/dist/esm/utils/isStringRecord.js +0 -3
- package/dist/esm/utils/mergeCumulativeValues.d.ts +0 -2
- package/dist/esm/utils/mergeCumulativeValues.js +0 -18
|
@@ -41,6 +41,7 @@ const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
|
|
|
41
41
|
const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
|
|
42
42
|
const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
|
|
43
43
|
const helpers_js_1 = require("../../shared/page-configs/helpers.js");
|
|
44
|
+
const getConfigValue_js_1 = require("../../shared/page-configs/getConfigValue.js");
|
|
44
45
|
const loadConfigValues_js_1 = require("../../shared/page-configs/loadConfigValues.js");
|
|
45
46
|
const error_page_js_1 = require("../../shared/error-page.js");
|
|
46
47
|
const addUrlComputedProps_js_1 = require("../../shared/addUrlComputedProps.js");
|
|
@@ -103,7 +104,7 @@ async function runPrerender(options, manuallyTriggered) {
|
|
|
103
104
|
}
|
|
104
105
|
const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
|
|
105
106
|
const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
|
|
106
|
-
(0, utils_js_1.
|
|
107
|
+
(0, utils_js_1.assertPathFilesystemAbsolute)(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
|
|
107
108
|
await (0, globalContext_js_1.initGlobalContext)(true, outDirRoot);
|
|
108
109
|
const renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
|
|
109
110
|
renderContext.pageFilesAll.forEach(assertExportNames);
|
|
@@ -141,9 +142,9 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
|
|
|
141
142
|
// V1 design
|
|
142
143
|
pageConfigs.forEach((pageConfig) => {
|
|
143
144
|
const configName = 'prerender';
|
|
144
|
-
const configValue = (0,
|
|
145
|
+
const configValue = (0, getConfigValue_js_1.getConfigValue)(pageConfig, configName, 'boolean');
|
|
145
146
|
if (configValue?.value === false) {
|
|
146
|
-
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue);
|
|
147
|
+
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
|
|
147
148
|
(0, utils_js_1.assert)(configValueFilePathToShowToUser);
|
|
148
149
|
doNotPrerenderList.push({
|
|
149
150
|
pageId: pageConfig.pageId,
|
|
@@ -501,7 +502,7 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
|
|
|
501
502
|
if (pageContext._pageConfigs.length > 0) {
|
|
502
503
|
const pageConfig = pageContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
503
504
|
(0, utils_js_1.assert)(pageConfig);
|
|
504
|
-
usesClientRouter = (0,
|
|
505
|
+
usesClientRouter = (0, getConfigValue_js_1.getConfigValue)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
505
506
|
}
|
|
506
507
|
else {
|
|
507
508
|
usesClientRouter = globalContext.pluginManifest.usesClientRouter;
|
|
@@ -637,7 +638,7 @@ async function write(urlOriginal, pageContext, fileExtension, fileContent, root,
|
|
|
637
638
|
}
|
|
638
639
|
}
|
|
639
640
|
function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hookName) {
|
|
640
|
-
if (
|
|
641
|
+
if ((0, utils_js_1.isArray)(prerenderResult)) {
|
|
641
642
|
return prerenderResult.map(normalize);
|
|
642
643
|
}
|
|
643
644
|
else {
|
|
@@ -29,4 +29,5 @@ __exportStar(require("../../utils/urlToFile.js"), exports);
|
|
|
29
29
|
__exportStar(require("../../utils/isPlainObject.js"), exports);
|
|
30
30
|
__exportStar(require("../../utils/assertNodeEnv.js"), exports);
|
|
31
31
|
__exportStar(require("../../utils/pLimit.js"), exports);
|
|
32
|
-
__exportStar(require("../../utils/
|
|
32
|
+
__exportStar(require("../../utils/assertPathFilesystemAbsolute.js"), exports);
|
|
33
|
+
__exportStar(require("../../utils/isArray.js"), exports);
|
|
@@ -23,6 +23,7 @@ const PASS_TO_CLIENT = [
|
|
|
23
23
|
*/
|
|
24
24
|
pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient,
|
|
25
25
|
'_pageId',
|
|
26
|
+
'routeParams',
|
|
26
27
|
'data' // for data() hook
|
|
27
28
|
];
|
|
28
29
|
const PASS_TO_CLIENT_ERROR_PAGE = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
|
|
@@ -22,7 +22,18 @@ Object.defineProperty(exports, "_injectAssets", { enumerable: true, get: functio
|
|
|
22
22
|
// TODO/v1-release: remove
|
|
23
23
|
var createPageRenderer_js_1 = require("../createPageRenderer.js");
|
|
24
24
|
Object.defineProperty(exports, "createPageRenderer", { enumerable: true, get: function () { return createPageRenderer_js_1.createPageRenderer; } });
|
|
25
|
-
|
|
26
|
-
globalThis._isVitePluginSsr = true;
|
|
27
|
-
globalThis._isVike = true;
|
|
25
|
+
addEcosystemStamp();
|
|
28
26
|
require("./page-files/setup.js");
|
|
27
|
+
// Used by:
|
|
28
|
+
// - Telefunc (to detect the user's stack https://github.com/brillout/telefunc/blob/8288310e88e06a42b710d39c39fb502364ca6d30/telefunc/utils/isVikeApp.ts#L4)
|
|
29
|
+
function addEcosystemStamp() {
|
|
30
|
+
const g = globalThis;
|
|
31
|
+
g._isVikeApp =
|
|
32
|
+
/* Don't set to true so that consumers do `!!globalThis._isVikeApp` instead of `globalThis._isVikeApp === true`.
|
|
33
|
+
true
|
|
34
|
+
*/
|
|
35
|
+
// We use an object so that we can eventually, in the future, add helpful information as needed. (E.g. the Vike version, or global settings.)
|
|
36
|
+
{};
|
|
37
|
+
// We keep the old stamp for older Telefunc versions
|
|
38
|
+
g._isVitePluginSsr = true;
|
|
39
|
+
}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCacheControl = void 0;
|
|
4
4
|
const helpers_js_1 = require("../../../../shared/page-configs/helpers.js");
|
|
5
|
+
const getConfigValue_js_1 = require("../../../../shared/page-configs/getConfigValue.js");
|
|
5
6
|
const defaultValue = 'no-store, max-age=0';
|
|
6
7
|
function getCacheControl(pageId, pageConfigs) {
|
|
7
8
|
// TODO/v1-release: remove
|
|
8
9
|
if (pageConfigs.length === 0)
|
|
9
10
|
return defaultValue;
|
|
10
11
|
const pageConfig = (0, helpers_js_1.getPageConfig)(pageId, pageConfigs);
|
|
11
|
-
const configValue = (0,
|
|
12
|
+
const configValue = (0, getConfigValue_js_1.getConfigValue)(pageConfig, 'cacheControl', 'string');
|
|
12
13
|
const value = configValue?.value;
|
|
13
14
|
if (value)
|
|
14
15
|
return value;
|
|
@@ -12,21 +12,36 @@ const globalContext_js_1 = require("../globalContext.js");
|
|
|
12
12
|
const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
|
|
13
13
|
async function loadUserFilesServerSide(pageContext) {
|
|
14
14
|
const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._pageConfigs, pageContext._pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
15
|
-
const [{
|
|
15
|
+
const [{ pageFilesLoaded, pageConfigLoaded, ...pageContextExports }] = await Promise.all([
|
|
16
16
|
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext._pageId, !(0, globalContext_js_1.getGlobalContext)().isProduction),
|
|
17
17
|
(0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._pageFilesAll, pageContext._pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
18
18
|
]);
|
|
19
19
|
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = (0, analyzePage_js_1.analyzePage)(pageContext._pageFilesAll, pageConfig, pageContext._pageId);
|
|
20
|
+
const isV1Design = !!pageConfig;
|
|
21
|
+
const passToClient = [];
|
|
22
|
+
const errMsg = ' should be an array of strings.';
|
|
23
|
+
if (!isV1Design) {
|
|
24
|
+
pageContextExports.exportsAll.passToClient?.forEach((e) => {
|
|
25
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
|
|
26
|
+
passToClient.push(...e.exportValue);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
pageContextExports.configEntries.passToClient?.forEach((e) => {
|
|
31
|
+
const { configValue } = e;
|
|
32
|
+
(0, utils_js_1.assert)((0, utils_js_1.isArray)(configValue));
|
|
33
|
+
const vals = configValue.flat(1);
|
|
34
|
+
// TODO: improve error message by using (upcoming) new data structure instead of configEntries
|
|
35
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isArrayOfStrings)(vals), `${e.configDefinedAt}${errMsg}`);
|
|
36
|
+
passToClient.push(...vals);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
20
39
|
const pageContextAddendum = {};
|
|
21
40
|
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
exports,
|
|
25
|
-
exportsAll,
|
|
26
|
-
pageExports,
|
|
27
|
-
Page: exports.Page,
|
|
41
|
+
...pageContextExports,
|
|
42
|
+
Page: pageContextExports.exports.Page,
|
|
28
43
|
_isHtmlOnly: isHtmlOnly,
|
|
29
|
-
_passToClient:
|
|
44
|
+
_passToClient: passToClient,
|
|
30
45
|
_pageFilePathsLoaded: pageFilesLoaded.map((p) => p.filePath)
|
|
31
46
|
});
|
|
32
47
|
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
@@ -87,13 +102,9 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
87
102
|
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
|
|
88
103
|
const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
|
|
89
104
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
90
|
-
const
|
|
105
|
+
const pageContextExports = (0, getPageFiles_js_1.getPageContextExports)(pageFilesServerSide, pageConfigLoaded);
|
|
91
106
|
return {
|
|
92
|
-
|
|
93
|
-
configEntries,
|
|
94
|
-
exports,
|
|
95
|
-
exportsAll,
|
|
96
|
-
pageExports,
|
|
107
|
+
...pageContextExports,
|
|
97
108
|
pageFilesLoaded: pageFilesServerSide,
|
|
98
109
|
pageConfigLoaded
|
|
99
110
|
};
|
|
@@ -42,8 +42,8 @@ function getRoutesInfo(pageRoutes) {
|
|
|
42
42
|
routeDefinedBy = pageRoute.routeFilesystemDefinedBy;
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
(0, utils_js_1.assert)(pageRoute.
|
|
46
|
-
routeDefinedBy = pageRoute.
|
|
45
|
+
(0, utils_js_1.assert)(pageRoute.routeDefinedAtString);
|
|
46
|
+
routeDefinedBy = pageRoute.routeDefinedAtString;
|
|
47
47
|
}
|
|
48
48
|
if (pageRoute.routeType === 'STRING') {
|
|
49
49
|
routeStr = pageRoute.routeString;
|
|
@@ -83,7 +83,7 @@ function isCjsEsmError(error) {
|
|
|
83
83
|
}
|
|
84
84
|
exports.isCjsEsmError = isCjsEsmError;
|
|
85
85
|
function normalizeRes(res) {
|
|
86
|
-
let packageNames =
|
|
86
|
+
let packageNames = (0, utils_js_1.isArray)(res) ? res : [res];
|
|
87
87
|
packageNames = (0, utils_js_1.unique)(packageNames.filter(utils_js_1.isNotNullish).filter((packageName) => packageName !== '@brillout/import'));
|
|
88
88
|
if (packageNames.length === 0)
|
|
89
89
|
return false;
|
|
@@ -31,6 +31,7 @@ __exportStar(require("../../utils/parseUrl-extras.js"), exports);
|
|
|
31
31
|
__exportStar(require("../../utils/slice.js"), exports);
|
|
32
32
|
__exportStar(require("../../utils/sorter.js"), exports);
|
|
33
33
|
__exportStar(require("../../utils/projectInfo.js"), exports);
|
|
34
|
+
__exportStar(require("../../utils/isArray.js"), exports);
|
|
34
35
|
__exportStar(require("../../utils/isObject.js"), exports);
|
|
35
36
|
__exportStar(require("../../utils/objectAssign.js"), exports);
|
|
36
37
|
__exportStar(require("../../utils/PromiseType.js"), exports);
|
|
@@ -54,7 +55,6 @@ __exportStar(require("../../utils/isNotNullish.js"), exports);
|
|
|
54
55
|
__exportStar(require("../../utils/isScriptFile.js"), exports);
|
|
55
56
|
__exportStar(require("../../utils/removeFileExtention.js"), exports);
|
|
56
57
|
__exportStar(require("../../utils/objectKeys.js"), exports);
|
|
57
|
-
__exportStar(require("../../utils/isStringRecord.js"), exports);
|
|
58
58
|
__exportStar(require("../../utils/getFileExtension.js"), exports);
|
|
59
59
|
__exportStar(require("../../utils/assertIsNotProductionRuntime.js"), exports);
|
|
60
60
|
__exportStar(require("../../utils/virtual-files.js"), exports);
|
|
@@ -67,3 +67,4 @@ __exportStar(require("../../utils/getTerminWidth.js"), exports);
|
|
|
67
67
|
__exportStar(require("../../utils/truncateString.js"), exports);
|
|
68
68
|
__exportStar(require("../../utils/formatHintLog.js"), exports);
|
|
69
69
|
__exportStar(require("../../utils/joinEnglish.js"), exports);
|
|
70
|
+
__exportStar(require("../../utils/isArrayOfStrings.js"), exports);
|
|
@@ -12,7 +12,7 @@ function assertV1Design(isOldDesign, pageConfigs, pageFilesAll) {
|
|
|
12
12
|
const indent = '- ';
|
|
13
13
|
const filesV1 = (0, utils_js_1.unique)(pageConfigs
|
|
14
14
|
.map((p) => Object.values(p.configValues)
|
|
15
|
-
.map(helpers_js_1.getConfigValueFilePathToShowToUser)
|
|
15
|
+
.map((c) => (0, helpers_js_1.getConfigValueFilePathToShowToUser)(c.definedAtData))
|
|
16
16
|
.filter(utils_js_1.isNotNullish)
|
|
17
17
|
.map((filePathToShowToUser) => indent + filePathToShowToUser))
|
|
18
18
|
.flat(2));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getClientEntry = void 0;
|
|
4
|
-
const
|
|
4
|
+
const getConfigValue_js_1 = require("../../shared/page-configs/getConfigValue.js");
|
|
5
5
|
function getClientEntry(pageConfig) {
|
|
6
6
|
const configName = 'client';
|
|
7
|
-
const configValue = (0,
|
|
7
|
+
const configValue = (0, getConfigValue_js_1.getConfigValue)(pageConfig, configName, 'string');
|
|
8
8
|
if (!configValue)
|
|
9
9
|
return null;
|
|
10
10
|
return configValue.value;
|
|
@@ -22,7 +22,6 @@ __exportStar(require("../../utils/isPlainObject.js"), exports);
|
|
|
22
22
|
__exportStar(require("../../utils/projectInfo.js"), exports);
|
|
23
23
|
__exportStar(require("../../utils/checkType.js"), exports);
|
|
24
24
|
__exportStar(require("../../utils/hasProp.js"), exports);
|
|
25
|
-
__exportStar(require("../../utils/isStringRecord.js"), exports);
|
|
26
25
|
__exportStar(require("../../utils/objectAssign.js"), exports);
|
|
27
26
|
__exportStar(require("../../utils/checkType.js"), exports);
|
|
28
27
|
__exportStar(require("../../utils/hasProp.js"), exports);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.analyzeClientSide = void 0;
|
|
4
|
-
const
|
|
4
|
+
const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
|
|
5
5
|
const analyzePageClientSide_js_1 = require("./analyzePageClientSide.js");
|
|
6
6
|
function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
|
|
7
7
|
// V1 design
|
|
8
8
|
if (pageConfig) {
|
|
9
|
-
const isClientRouting = (0,
|
|
10
|
-
const isClientSideRenderable = (0,
|
|
9
|
+
const isClientRouting = (0, getConfigValue_js_1.getConfigValue)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
10
|
+
const isClientSideRenderable = (0, getConfigValue_js_1.getConfigValue)(pageConfig, 'isClientSideRenderable', 'boolean')?.value ?? false;
|
|
11
11
|
return { isClientSideRenderable, isClientRouting };
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.getPageContextExports = void 0;
|
|
7
7
|
const isScriptFile_js_1 = require("../../utils/isScriptFile.js");
|
|
8
8
|
const utils_js_1 = require("../utils.js");
|
|
9
9
|
const assert_exports_old_design_js_1 = require("./assert_exports_old_design.js");
|
|
10
|
+
const getConfigDefinedAt_js_1 = require("../page-configs/getConfigDefinedAt.js");
|
|
10
11
|
const helpers_js_1 = require("../page-configs/helpers.js");
|
|
11
12
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
12
|
-
function
|
|
13
|
+
function getPageContextExports(pageFiles, pageConfig) {
|
|
13
14
|
const configEntries = {};
|
|
14
15
|
const config = {};
|
|
15
16
|
const exportsAll = {};
|
|
@@ -34,8 +35,8 @@ function getExports(pageFiles, pageConfig) {
|
|
|
34
35
|
if (pageConfig) {
|
|
35
36
|
Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
|
|
36
37
|
const { value } = configValue;
|
|
37
|
-
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue);
|
|
38
|
-
const configDefinedAt = (0,
|
|
38
|
+
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
|
|
39
|
+
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, configValue.definedAtData);
|
|
39
40
|
config[configName] = config[configName] ?? value;
|
|
40
41
|
configEntries[configName] = configEntries[configName] ?? [];
|
|
41
42
|
// Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
|
|
@@ -73,7 +74,7 @@ function getExports(pageFiles, pageConfig) {
|
|
|
73
74
|
});
|
|
74
75
|
(0, utils_js_1.assert)(!('default' in exports));
|
|
75
76
|
(0, utils_js_1.assert)(!('default' in exportsAll));
|
|
76
|
-
|
|
77
|
+
const pageContextExports = {
|
|
77
78
|
config,
|
|
78
79
|
configEntries,
|
|
79
80
|
// TODO/v1-release: remove
|
|
@@ -81,8 +82,9 @@ function getExports(pageFiles, pageConfig) {
|
|
|
81
82
|
exportsAll,
|
|
82
83
|
pageExports
|
|
83
84
|
};
|
|
85
|
+
return pageContextExports;
|
|
84
86
|
}
|
|
85
|
-
exports.
|
|
87
|
+
exports.getPageContextExports = getPageContextExports;
|
|
86
88
|
function getExportValues(pageFile) {
|
|
87
89
|
const { filePath, fileExports } = pageFile;
|
|
88
90
|
(0, utils_js_1.assert)(fileExports); // assume pageFile.loadFile() was called
|
|
@@ -132,12 +134,3 @@ function createObjectWithDeprecationWarning() {
|
|
|
132
134
|
}
|
|
133
135
|
});
|
|
134
136
|
}
|
|
135
|
-
function getExportUnion(exportsAll, propName) {
|
|
136
|
-
return (exportsAll[propName]
|
|
137
|
-
?.map((e) => {
|
|
138
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource} should be an array of strings.`);
|
|
139
|
-
return e.exportValue;
|
|
140
|
-
})
|
|
141
|
-
.flat() ?? []);
|
|
142
|
-
}
|
|
143
|
-
exports.getExportUnion = getExportUnion;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
// Utils
|
|
5
|
-
var getExports_js_1 = require("./getPageFiles/getExports.js");
|
|
6
|
-
Object.defineProperty(exports, "getExportUnion", { enumerable: true, get: function () { return getExports_js_1.getExportUnion; } });
|
|
3
|
+
exports.getPageContextExports = exports.getPageFilesServerSide = exports.getPageFilesClientSide = exports.setPageFilesAsync = exports.setPageFiles = exports.getPageFilesAll = void 0;
|
|
7
4
|
var setPageFiles_js_1 = require("./getPageFiles/setPageFiles.js");
|
|
8
5
|
Object.defineProperty(exports, "getPageFilesAll", { enumerable: true, get: function () { return setPageFiles_js_1.getPageFilesAll; } });
|
|
9
6
|
var setPageFiles_js_2 = require("./getPageFiles/setPageFiles.js");
|
|
@@ -14,5 +11,5 @@ var getAllPageIdFiles_js_1 = require("./getPageFiles/getAllPageIdFiles.js");
|
|
|
14
11
|
Object.defineProperty(exports, "getPageFilesClientSide", { enumerable: true, get: function () { return getAllPageIdFiles_js_1.getPageFilesClientSide; } });
|
|
15
12
|
var getAllPageIdFiles_js_2 = require("./getPageFiles/getAllPageIdFiles.js");
|
|
16
13
|
Object.defineProperty(exports, "getPageFilesServerSide", { enumerable: true, get: function () { return getAllPageIdFiles_js_2.getPageFilesServerSide; } });
|
|
17
|
-
var
|
|
18
|
-
Object.defineProperty(exports, "
|
|
14
|
+
var getExports_js_1 = require("./getPageFiles/getExports.js");
|
|
15
|
+
Object.defineProperty(exports, "getPageContextExports", { enumerable: true, get: function () { return getExports_js_1.getPageContextExports; } });
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getHookTimeoutDefault = exports.setIsPrerenderering = exports.assertHook = exports.getHookFromPageConfigGlobal = exports.getHookFromPageConfig = exports.getHook = void 0;
|
|
7
7
|
const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
|
|
8
8
|
const helpers_js_1 = require("../page-configs/helpers.js");
|
|
9
|
+
const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
|
|
9
10
|
const utils_js_1 = require("../utils.js");
|
|
10
11
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
11
12
|
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('getHook.ts', {
|
|
@@ -30,15 +31,15 @@ function getHook(pageContext, hookName) {
|
|
|
30
31
|
}
|
|
31
32
|
exports.getHook = getHook;
|
|
32
33
|
function getHookFromPageConfig(pageConfig, hookName) {
|
|
33
|
-
const configValue = (0,
|
|
34
|
-
const hooksTimeout = (0,
|
|
34
|
+
const configValue = (0, getConfigValue_js_1.getConfigValue)(pageConfig, hookName);
|
|
35
|
+
const hooksTimeout = (0, getConfigValue_js_1.getConfigValue)(pageConfig, 'hooksTimeout')?.value;
|
|
35
36
|
if (!configValue)
|
|
36
37
|
return null;
|
|
37
38
|
const hookFn = configValue.value;
|
|
38
39
|
if (!hookFn)
|
|
39
40
|
return null;
|
|
40
|
-
const hookFilePath = (0, helpers_js_1.getHookFilePathToShowToUser)(configValue);
|
|
41
|
-
// hook isn't a computed nor a cumulative config =>
|
|
41
|
+
const hookFilePath = (0, helpers_js_1.getHookFilePathToShowToUser)(configValue.definedAtData);
|
|
42
|
+
// hook isn't a computed nor a cumulative config => hookFilePath should always be defined
|
|
42
43
|
(0, utils_js_1.assert)(hookFilePath);
|
|
43
44
|
assertHookFn(hookFn, { hookName, hookFilePath });
|
|
44
45
|
const hookTimeout = getHookTimeout(hooksTimeout, hookName);
|
|
@@ -52,8 +53,8 @@ function getHookFromPageConfigGlobal(pageConfigGlobal, hookName) {
|
|
|
52
53
|
const hookFn = configValue.value;
|
|
53
54
|
if (!hookFn)
|
|
54
55
|
return null;
|
|
55
|
-
const hookFilePath = (0, helpers_js_1.getHookFilePathToShowToUser)(configValue);
|
|
56
|
-
// hook isn't a computed nor a cumulative config =>
|
|
56
|
+
const hookFilePath = (0, helpers_js_1.getHookFilePathToShowToUser)(configValue.definedAtData);
|
|
57
|
+
// hook isn't a computed nor a cumulative config => hookFilePath should always be defined
|
|
57
58
|
(0, utils_js_1.assert)(hookFilePath);
|
|
58
59
|
assertHookFn(hookFn, { hookName, hookFilePath });
|
|
59
60
|
// We could use the global value of configooksTimeout but it requires some non-trivial refactoring
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getDefinedAtString = exports.getConfigDefinedAtOptional = exports.getConfigDefinedAt = void 0;
|
|
7
|
+
const utils_js_1 = require("../utils.js");
|
|
8
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
9
|
+
const getExportPath_js_1 = require("./getExportPath.js");
|
|
10
|
+
function getConfigDefinedAt(sentenceBegin, configName, definedAtData) {
|
|
11
|
+
return `${begin(sentenceBegin, configName)} at ${getDefinedAtString(definedAtData, configName)}`;
|
|
12
|
+
}
|
|
13
|
+
exports.getConfigDefinedAt = getConfigDefinedAt;
|
|
14
|
+
function getConfigDefinedAtOptional(sentenceBegin, configName, definedAtData) {
|
|
15
|
+
if (!definedAtData) {
|
|
16
|
+
return `${begin(sentenceBegin, configName)} internally`;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return `${begin(sentenceBegin, configName)} at ${getDefinedAtString(definedAtData, configName)}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.getConfigDefinedAtOptional = getConfigDefinedAtOptional;
|
|
23
|
+
function begin(sentenceBegin, configName) {
|
|
24
|
+
return `${sentenceBegin} ${picocolors_1.default.cyan(configName)} defined`;
|
|
25
|
+
}
|
|
26
|
+
function getDefinedAtString(definedAtData, configName) {
|
|
27
|
+
let files;
|
|
28
|
+
if ((0, utils_js_1.isArray)(definedAtData)) {
|
|
29
|
+
files = definedAtData;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
files = [definedAtData];
|
|
33
|
+
}
|
|
34
|
+
(0, utils_js_1.assert)(files.length >= 1);
|
|
35
|
+
const definedAtString = files
|
|
36
|
+
.map((source) => {
|
|
37
|
+
const { filePathToShowToUser, fileExportPathToShowToUser } = source;
|
|
38
|
+
let s = filePathToShowToUser;
|
|
39
|
+
const exportPath = (0, getExportPath_js_1.getExportPath)(fileExportPathToShowToUser, configName);
|
|
40
|
+
if (exportPath) {
|
|
41
|
+
s = `${s} > ${picocolors_1.default.cyan(exportPath)}`;
|
|
42
|
+
}
|
|
43
|
+
return s;
|
|
44
|
+
})
|
|
45
|
+
.join(' / ');
|
|
46
|
+
return definedAtString;
|
|
47
|
+
}
|
|
48
|
+
exports.getDefinedAtString = getDefinedAtString;
|
|
@@ -4,22 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getConfigValue = void 0;
|
|
7
|
-
const utils_js_1 = require("
|
|
7
|
+
const utils_js_1 = require("../utils.js");
|
|
8
8
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
9
|
-
const
|
|
9
|
+
const getConfigDefinedAt_js_1 = require("./getConfigDefinedAt.js");
|
|
10
10
|
// prettier-ignore
|
|
11
11
|
// biome-ignore format:
|
|
12
12
|
function getConfigValue(pageConfig, configName, type) {
|
|
13
13
|
const configValue = getConfigValueEntry(pageConfig, configName);
|
|
14
14
|
if (configValue === null)
|
|
15
15
|
return null;
|
|
16
|
-
const { value,
|
|
16
|
+
const { value, definedAtData } = configValue;
|
|
17
17
|
if (type)
|
|
18
|
-
assertConfigValueType(value, type, configName,
|
|
18
|
+
assertConfigValueType(value, type, configName, definedAtData);
|
|
19
19
|
return configValue;
|
|
20
20
|
}
|
|
21
21
|
exports.getConfigValue = getConfigValue;
|
|
22
|
-
function assertConfigValueType(value, type, configName,
|
|
22
|
+
function assertConfigValueType(value, type, configName, definedAtData) {
|
|
23
23
|
(0, utils_js_1.assert)(value !== null);
|
|
24
24
|
const typeActual = typeof value;
|
|
25
25
|
if (typeActual === type)
|
|
@@ -28,9 +28,7 @@ function assertConfigValueType(value, type, configName, definedAt) {
|
|
|
28
28
|
const problem = valuePrintable !== null
|
|
29
29
|
? `value ${picocolors_1.default.cyan(valuePrintable)}`
|
|
30
30
|
: `type ${picocolors_1.default.cyan(typeActual)}`;
|
|
31
|
-
const configDefinedAt = (0,
|
|
32
|
-
definedAt
|
|
33
|
-
});
|
|
31
|
+
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, definedAtData);
|
|
34
32
|
const errMsg = `${configDefinedAt} has an invalid ${problem}: it should be a ${picocolors_1.default.cyan(type)} instead`;
|
|
35
33
|
(0, utils_js_1.assertUsage)(false, errMsg);
|
|
36
34
|
}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var getConfigDefinedAtString_js_1 = require("./helpers/getConfigDefinedAtString.js");
|
|
5
|
-
Object.defineProperty(exports, "getConfigDefinedAtString", { enumerable: true, get: function () { return getConfigDefinedAtString_js_1.getConfigDefinedAtString; } });
|
|
6
|
-
Object.defineProperty(exports, "getDefinedAtString", { enumerable: true, get: function () { return getConfigDefinedAtString_js_1.getDefinedAtString; } });
|
|
7
|
-
var getConfigValue_js_1 = require("./helpers/getConfigValue.js");
|
|
8
|
-
Object.defineProperty(exports, "getConfigValue", { enumerable: true, get: function () { return getConfigValue_js_1.getConfigValue; } });
|
|
3
|
+
exports.getHookFilePathToShowToUser = exports.getConfigValueFilePathToShowToUser = exports.getPageConfig = void 0;
|
|
9
4
|
const utils_js_1 = require("../utils.js");
|
|
10
5
|
function getPageConfig(pageId, pageConfigs) {
|
|
11
6
|
const pageConfig = pageConfigs.find((p) => p.pageId === pageId);
|
|
@@ -14,19 +9,19 @@ function getPageConfig(pageId, pageConfigs) {
|
|
|
14
9
|
return pageConfig;
|
|
15
10
|
}
|
|
16
11
|
exports.getPageConfig = getPageConfig;
|
|
17
|
-
function getConfigValueFilePathToShowToUser(
|
|
12
|
+
function getConfigValueFilePathToShowToUser(definedAtData) {
|
|
18
13
|
// A unique file path only exists if the config value isn't cumulative nor computed:
|
|
19
14
|
// - cumulative config values have multiple file paths
|
|
20
15
|
// - computed values don't have any file path
|
|
21
|
-
if (
|
|
16
|
+
if (!definedAtData || (0, utils_js_1.isArray)(definedAtData))
|
|
22
17
|
return null;
|
|
23
|
-
const { filePathToShowToUser } =
|
|
18
|
+
const { filePathToShowToUser } = definedAtData;
|
|
24
19
|
(0, utils_js_1.assert)(filePathToShowToUser);
|
|
25
20
|
return filePathToShowToUser;
|
|
26
21
|
}
|
|
27
22
|
exports.getConfigValueFilePathToShowToUser = getConfigValueFilePathToShowToUser;
|
|
28
|
-
function getHookFilePathToShowToUser(
|
|
29
|
-
const filePathToShowToUser = getConfigValueFilePathToShowToUser(
|
|
23
|
+
function getHookFilePathToShowToUser(definedAtData) {
|
|
24
|
+
const filePathToShowToUser = getConfigValueFilePathToShowToUser(definedAtData);
|
|
30
25
|
(0, utils_js_1.assert)(filePathToShowToUser);
|
|
31
26
|
return filePathToShowToUser;
|
|
32
27
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.assertPageConfigGlobalSerialized = exports.assertPageConfigsSerialized = void 0;
|
|
4
4
|
const utils_js_1 = require("../../utils.js");
|
|
5
5
|
function assertPageConfigsSerialized(pageConfigsSerialized) {
|
|
6
|
-
(0, utils_js_1.assert)(
|
|
6
|
+
(0, utils_js_1.assert)((0, utils_js_1.isArray)(pageConfigsSerialized));
|
|
7
7
|
pageConfigsSerialized.forEach((pageConfigSerialized) => {
|
|
8
8
|
(0, utils_js_1.assert)((0, utils_js_1.isObject)(pageConfigSerialized));
|
|
9
9
|
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageConfigSerialized, 'pageId', 'string'));
|
|
@@ -53,8 +53,9 @@ function parseConfigValuesImported(configValuesImported) {
|
|
|
53
53
|
(0, utils_js_1.assert)(val);
|
|
54
54
|
const { value, importPath, exportName } = val;
|
|
55
55
|
configValues[configName] = {
|
|
56
|
+
type: 'classic',
|
|
56
57
|
value,
|
|
57
|
-
|
|
58
|
+
definedAtData: {
|
|
58
59
|
// importPath cannot be relative to the current file, since the current file is a virtual file
|
|
59
60
|
filePathToShowToUser: importPath,
|
|
60
61
|
fileExportPathToShowToUser: [configName, 'default'].includes(exportName)
|
|
@@ -6,13 +6,18 @@ const parse_1 = require("@brillout/json-serializer/parse");
|
|
|
6
6
|
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
7
7
|
const configValues = {};
|
|
8
8
|
Object.entries(configValuesSerialized).forEach(([configName, configValueSeriliazed]) => {
|
|
9
|
-
const { valueSerialized, definedAt } = configValueSeriliazed;
|
|
10
|
-
(0, utils_js_1.assert)(valueSerialized);
|
|
11
9
|
(0, utils_js_1.assert)(!configValues[configName]);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const { valueSerialized, ...common } = configValueSeriliazed;
|
|
11
|
+
const value = (0, parse_1.parse)(valueSerialized);
|
|
12
|
+
let configValue;
|
|
13
|
+
if (common.type === 'cumulative') {
|
|
14
|
+
(0, utils_js_1.assert)((0, utils_js_1.isArray)(value));
|
|
15
|
+
configValue = { value, ...common };
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
configValue = { value, ...common };
|
|
19
|
+
}
|
|
20
|
+
configValues[configName] = configValue;
|
|
16
21
|
});
|
|
17
22
|
return configValues;
|
|
18
23
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parsePageConfigs = void 0;
|
|
4
4
|
const parseConfigValuesImported_js_1 = require("./parseConfigValuesImported.js");
|
|
5
5
|
const utils_js_1 = require("../../utils.js");
|
|
6
|
-
const
|
|
6
|
+
const getConfigDefinedAt_js_1 = require("../getConfigDefinedAt.js");
|
|
7
7
|
const parseConfigValuesSerialized_js_1 = require("./parseConfigValuesSerialized.js");
|
|
8
8
|
function parsePageConfigs(pageConfigsSerialized, pageConfigGlobalSerialized) {
|
|
9
9
|
const pageConfigs = pageConfigsSerialized.map((pageConfigSerialized) => {
|
|
@@ -41,9 +41,10 @@ function assertRouteConfigValue(configValues) {
|
|
|
41
41
|
const configValue = configValues[configName];
|
|
42
42
|
if (!configValue)
|
|
43
43
|
return;
|
|
44
|
-
const { value } = configValue;
|
|
44
|
+
const { value, definedAtData } = configValue;
|
|
45
45
|
const configValueType = typeof value;
|
|
46
|
-
|
|
46
|
+
(0, utils_js_1.assert)(definedAtData);
|
|
47
|
+
const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, definedAtData);
|
|
47
48
|
(0, utils_js_1.assertUsage)(configValueType === 'string' || (0, utils_js_1.isCallable)(value), `${configDefinedAt} has an invalid type '${configValueType}': it should be a string or a function instead, see https://vike.dev/route`);
|
|
48
49
|
/* We don't use assertRouteString() in order to avoid unnecessarily bloating the client-side bundle when using Server Routing:
|
|
49
50
|
* - When using Server Routing, this file is loaded => loading assertRouteString() would bloat the client bundle.
|
|
@@ -14,7 +14,7 @@ function serializeConfigValue(lines, configName, configValueSerialized) {
|
|
|
14
14
|
lines.push(`${whitespace}['${configName}']: {`);
|
|
15
15
|
whitespace += ' ';
|
|
16
16
|
Object.entries(configValueSerialized).forEach(([key, val]) => {
|
|
17
|
-
const valSerialized = key === '
|
|
17
|
+
const valSerialized = key === 'valueSerialized' ? val : JSON.stringify(val);
|
|
18
18
|
lines.push(`${whitespace} ${key}: ${valSerialized},`);
|
|
19
19
|
});
|
|
20
20
|
whitespace = whitespace.slice(2);
|
|
@@ -24,9 +24,9 @@ exports.serializeConfigValue = serializeConfigValue;
|
|
|
24
24
|
function serializeConfigValueImported(configValueSource, configName, whitespace, varCounterContainer, importStatements) {
|
|
25
25
|
(0, utils_js_1.assert)(!configValueSource.valueIsFilePath);
|
|
26
26
|
(0, utils_js_1.assert)(whitespace.replaceAll(' ', '').length === 0);
|
|
27
|
-
const { valueIsImportedAtRuntime, valueIsDefinedByValueFile,
|
|
27
|
+
const { valueIsImportedAtRuntime, valueIsDefinedByValueFile, definedAtFilePath } = configValueSource;
|
|
28
28
|
(0, utils_js_1.assert)(valueIsImportedAtRuntime);
|
|
29
|
-
const { filePathAbsoluteVite, fileExportName } =
|
|
29
|
+
const { filePathAbsoluteVite, fileExportName } = definedAtFilePath;
|
|
30
30
|
if (valueIsDefinedByValueFile)
|
|
31
31
|
(0, utils_js_1.assert)(fileExportName === undefined);
|
|
32
32
|
const { importName, importStatement } = (0, generateEagerImport_js_1.generateEagerImport)(filePathAbsoluteVite, varCounterContainer.varCounter++, fileExportName);
|
|
@@ -74,8 +74,8 @@ async function route(pageContextForRoute) {
|
|
|
74
74
|
}
|
|
75
75
|
// Route Function defined in `.page.route.js`
|
|
76
76
|
if (pageRoute.routeType === 'FUNCTION') {
|
|
77
|
-
const { routeFunction,
|
|
78
|
-
const match = await (0, resolveRouteFunction_js_1.resolveRouteFunction)(routeFunction, pageContext,
|
|
77
|
+
const { routeFunction, routeDefinedAtString } = pageRoute;
|
|
78
|
+
const match = await (0, resolveRouteFunction_js_1.resolveRouteFunction)(routeFunction, pageContext, routeDefinedAtString);
|
|
79
79
|
if (match) {
|
|
80
80
|
const { routeParams, precedence } = match;
|
|
81
81
|
routeMatches.push({ pageId, precedence, routeParams, routeType });
|