vike 0.4.144-commit-6aef8a6 → 0.4.144-commit-7f5e99a
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/__internal/index.js +6 -2
- package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/commonConfig.js +0 -3
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +29 -42
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +14 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/helpers.js +1 -14
- package/dist/cjs/node/plugin/plugins/previewConfig.js +11 -2
- package/dist/cjs/node/prerender/runPrerender.js +16 -17
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +20 -6
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -2
- package/dist/cjs/node/runtime/renderPage.js +2 -2
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/node/shared/getClientEntryFilePath.js +2 -2
- package/dist/cjs/shared/addUrlComputedProps.js +24 -12
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +4 -6
- package/dist/cjs/shared/getPageFiles/getExports.js +3 -3
- package/dist/cjs/shared/hooks/getHook.js +1 -1
- package/dist/cjs/shared/page-configs/helpers/getConfigDefinedAtString.js +43 -0
- package/dist/cjs/shared/page-configs/helpers/getConfigValue.js +44 -0
- package/dist/cjs/shared/page-configs/helpers.js +33 -0
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +6 -8
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -2
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +2 -2
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +11 -13
- package/dist/cjs/shared/route/index.js +3 -3
- package/dist/cjs/shared/route/loadPageRoutes.js +11 -10
- package/dist/cjs/shared/route/resolveRouteFunction.js +1 -1
- package/dist/cjs/shared/utils.js +1 -1
- package/dist/cjs/utils/{hasPropertyGetter.js → isPropertyGetter.js} +3 -3
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/__internal/index.d.ts +6 -3
- package/dist/esm/__internal/index.js +8 -3
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +2 -3
- package/dist/esm/client/client-routing-runtime/createPageContext.js +3 -3
- package/dist/esm/client/client-routing-runtime/entry.js +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContext.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/getPageContext.js +4 -7
- package/dist/esm/client/client-routing-runtime/getPageId.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/getPageId.js +4 -7
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +26 -8
- package/dist/esm/client/client-routing-runtime/installClientRouter.d.ts +21 -0
- package/dist/esm/client/client-routing-runtime/{useClientRouter.js → installClientRouter.js} +248 -242
- package/dist/esm/client/client-routing-runtime/isClientSideRoutable.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/isClientSideRoutable.js +15 -0
- package/dist/esm/client/client-routing-runtime/navigate.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/navigate.js +10 -8
- package/dist/esm/client/client-routing-runtime/prefetch.js +12 -5
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/skipLink.js +1 -2
- package/dist/esm/client/shared/executeOnRenderClientHook.js +6 -5
- package/dist/esm/client/shared/getPageContextProxyForUser.js +13 -7
- package/dist/esm/node/plugin/plugins/buildConfig.js +1 -1
- package/dist/esm/node/plugin/plugins/commonConfig.js +0 -3
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +29 -42
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +15 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.js +1 -14
- package/dist/esm/node/plugin/plugins/previewConfig.js +11 -2
- package/dist/esm/node/prerender/runPrerender.js +11 -12
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +21 -7
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
- package/dist/esm/node/runtime/renderPage.js +2 -2
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/node/shared/getClientEntryFilePath.js +1 -1
- package/dist/esm/shared/addUrlComputedProps.d.ts +1 -0
- package/dist/esm/shared/addUrlComputedProps.js +25 -13
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +2 -4
- package/dist/esm/shared/getPageFiles/getExports.js +2 -2
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/PageConfig.d.ts +4 -12
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.d.ts +7 -0
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.js +37 -0
- package/dist/esm/shared/page-configs/helpers/getConfigValue.d.ts +14 -0
- package/dist/esm/shared/page-configs/helpers/getConfigValue.js +38 -0
- package/dist/esm/shared/page-configs/helpers.d.ts +13 -0
- package/dist/esm/shared/page-configs/helpers.js +27 -0
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +6 -8
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +2 -2
- package/dist/esm/shared/route/executeOnBeforeRouteHook.d.ts +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +11 -13
- package/dist/esm/shared/route/index.d.ts +11 -9
- package/dist/esm/shared/route/index.js +3 -3
- package/dist/esm/shared/route/loadPageRoutes.js +7 -6
- package/dist/esm/shared/route/resolveRouteFunction.js +1 -1
- package/dist/esm/shared/utils.d.ts +1 -1
- package/dist/esm/shared/utils.js +1 -1
- package/dist/esm/utils/isPropertyGetter.d.ts +1 -0
- package/dist/esm/utils/{hasPropertyGetter.js → isPropertyGetter.js} +1 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/shared/page-configs/utils.js +0 -96
- package/dist/esm/client/client-routing-runtime/skipLink/isClientSideRoutable.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/skipLink/isClientSideRoutable.js +0 -15
- package/dist/esm/client/client-routing-runtime/useClientRouter.d.ts +0 -6
- package/dist/esm/shared/page-configs/utils.d.ts +0 -35
- package/dist/esm/shared/page-configs/utils.js +0 -90
- package/dist/esm/utils/hasPropertyGetter.d.ts +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getClientEntryFilePath = void 0;
|
|
4
|
-
const
|
|
4
|
+
const helpers_js_1 = require("../../shared/page-configs/helpers.js");
|
|
5
5
|
function getClientEntryFilePath(pageConfig) {
|
|
6
6
|
const configName = 'client';
|
|
7
|
-
const configValue = (0,
|
|
7
|
+
const configValue = (0, helpers_js_1.getConfigValue)(pageConfig, configName, 'string');
|
|
8
8
|
if (!configValue)
|
|
9
9
|
return null;
|
|
10
10
|
return configValue.value;
|
|
@@ -6,24 +6,36 @@ const utils_js_1 = require("./utils.js");
|
|
|
6
6
|
function addUrlComputedProps(pageContext, enumerable = true) {
|
|
7
7
|
(0, utils_js_1.assert)(pageContext.urlOriginal);
|
|
8
8
|
if ('urlPathname' in pageContext) {
|
|
9
|
-
(0, utils_js_1.assert)(
|
|
9
|
+
(0, utils_js_1.assert)(typeof pageContext.urlPathname === 'string');
|
|
10
|
+
/* If this assert() fails then it's most likely because Object.assign() was used instead of objectAssign(), i.e.:
|
|
11
|
+
```js
|
|
12
|
+
// Add property getters such as pageContext.urlPathname to pageContext
|
|
13
|
+
addUrlComputedProps(pageContext)
|
|
14
|
+
// ❌ Breaks the property getters of pageContext set by addUrlComputedProps() such as pageContext.urlPathname
|
|
15
|
+
Object.assign(pageContext2, pageContext)
|
|
16
|
+
// ❌ Also breaks the property getters
|
|
17
|
+
const pageContext3 = { ...pageContext }
|
|
18
|
+
// ✅ Preserves property getters of pageContext (see objectAssign() implementation)
|
|
19
|
+
objectAssign(pageContext2, pageContext)
|
|
20
|
+
```
|
|
21
|
+
*/
|
|
22
|
+
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'urlPathname'));
|
|
10
23
|
}
|
|
24
|
+
if ('urlParsed' in pageContext)
|
|
25
|
+
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'urlParsed'));
|
|
26
|
+
// TODO/v1-release: move pageContext.urlParsed to pageContext.url
|
|
27
|
+
if ('url' in pageContext)
|
|
28
|
+
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'url'));
|
|
11
29
|
Object.defineProperty(pageContext, 'urlPathname', {
|
|
12
30
|
get: urlPathnameGetter,
|
|
13
31
|
enumerable,
|
|
14
32
|
configurable: true
|
|
15
33
|
});
|
|
16
|
-
// TODO/v1-release: move pageContext.urlParsed to pageContext.url
|
|
17
|
-
if ('url' in pageContext)
|
|
18
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasPropertyGetter)(pageContext, 'url'));
|
|
19
34
|
Object.defineProperty(pageContext, 'url', {
|
|
20
35
|
get: urlGetter,
|
|
21
36
|
enumerable: false,
|
|
22
37
|
configurable: true
|
|
23
38
|
});
|
|
24
|
-
if ('urlParsed' in pageContext) {
|
|
25
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasPropertyGetter)(pageContext, 'urlParsed'));
|
|
26
|
-
}
|
|
27
39
|
Object.defineProperty(pageContext, 'urlParsed', {
|
|
28
40
|
get: urlParsedGetter,
|
|
29
41
|
enumerable,
|
|
@@ -32,17 +44,17 @@ function addUrlComputedProps(pageContext, enumerable = true) {
|
|
|
32
44
|
}
|
|
33
45
|
exports.addUrlComputedProps = addUrlComputedProps;
|
|
34
46
|
function getUrlParsed(pageContext) {
|
|
35
|
-
// We
|
|
47
|
+
// We need a url handler function because the onBeforeRoute() hook may set pageContext.urlLogical (typically for i18n)
|
|
36
48
|
let urlHandler = pageContext._urlHandler;
|
|
37
49
|
if (!urlHandler) {
|
|
38
50
|
urlHandler = (url) => url;
|
|
39
51
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const urlLogical = urlHandler(url);
|
|
52
|
+
let urlResolved = pageContext._urlRewrite ?? pageContext.urlLogical ?? pageContext.urlOriginal;
|
|
53
|
+
urlResolved = urlHandler(urlResolved);
|
|
43
54
|
const baseServer = pageContext._baseServer;
|
|
55
|
+
(0, utils_js_1.assert)(urlResolved && typeof urlResolved === 'string');
|
|
44
56
|
(0, utils_js_1.assert)(baseServer.startsWith('/'));
|
|
45
|
-
return (0, utils_js_1.parseUrl)(
|
|
57
|
+
return (0, utils_js_1.parseUrl)(urlResolved, baseServer);
|
|
46
58
|
}
|
|
47
59
|
function urlPathnameGetter() {
|
|
48
60
|
const { pathname } = getUrlParsed(this);
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.analyzeClientSide = void 0;
|
|
4
|
-
const
|
|
4
|
+
const helpers_js_1 = require("../page-configs/helpers.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, helpers_js_1.getConfigValue)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
10
|
+
const isClientSideRenderable = (0, helpers_js_1.getConfigValue)(pageConfig, 'isClientSideRenderable', 'boolean')?.value ?? false;
|
|
11
11
|
return { isClientSideRenderable, isClientRouting };
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
|
-
// TODO/v1-release:
|
|
15
|
-
// - remove V0.4 implementation
|
|
16
|
-
// - globally rename isHtmlOnly to !isClientSideRenderable
|
|
14
|
+
// TODO/v1-release: remove
|
|
17
15
|
// V0.4 design
|
|
18
16
|
const { isHtmlOnly, isClientRouting } = (0, analyzePageClientSide_js_1.analyzePageClientSide)(pageFilesAll, pageId);
|
|
19
17
|
return { isClientSideRenderable: !isHtmlOnly, isClientRouting };
|
|
@@ -7,7 +7,7 @@ exports.getExports = exports.getExportUnion = 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
|
|
10
|
+
const helpers_js_1 = require("../page-configs/helpers.js");
|
|
11
11
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
12
12
|
function getExports(pageFiles, pageConfig) {
|
|
13
13
|
const configEntries = {};
|
|
@@ -34,8 +34,8 @@ function getExports(pageFiles, pageConfig) {
|
|
|
34
34
|
if (pageConfig) {
|
|
35
35
|
Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
|
|
36
36
|
const { value } = configValue;
|
|
37
|
-
const configValueFilePathToShowToUser = (0,
|
|
38
|
-
const configDefinedAt = (0,
|
|
37
|
+
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue);
|
|
38
|
+
const configDefinedAt = (0, helpers_js_1.getConfigDefinedAtString)('Config', configName, configValue);
|
|
39
39
|
config[configName] = config[configName] ?? value;
|
|
40
40
|
configEntries[configName] = configEntries[configName] ?? [];
|
|
41
41
|
// 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.)
|
|
@@ -25,7 +25,7 @@ exports.assertHook = assertHook;
|
|
|
25
25
|
function assertHookFn(hookFn, { hookName, hookFilePath }) {
|
|
26
26
|
(0, utils_js_1.assert)(hookName && hookFilePath);
|
|
27
27
|
(0, utils_js_1.assert)(!hookName.endsWith(')'));
|
|
28
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `
|
|
28
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `Hook ${hookName}() defined by ${hookFilePath} should be a function`);
|
|
29
29
|
(0, utils_js_1.checkType)(hookFn);
|
|
30
30
|
}
|
|
31
31
|
exports.assertHookFn = assertHookFn;
|
|
@@ -0,0 +1,43 @@
|
|
|
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.getConfigDefinedAtString = 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 getConfigDefinedAtString(sentenceBegin, configName, { definedAt }) {
|
|
11
|
+
const definedAtString = getDefinedAtString(definedAt, configName);
|
|
12
|
+
const definedAtStr = definedAtString === 'internally' ? definedAtString : `at ${definedAtString}`;
|
|
13
|
+
let configNameStr = `${configName}${sentenceBegin === 'Hook' ? '()' : ''}`;
|
|
14
|
+
const configDefinedAt = `${sentenceBegin} ${picocolors_1.default.cyan(configNameStr)} defined ${definedAtStr}`;
|
|
15
|
+
return configDefinedAt;
|
|
16
|
+
}
|
|
17
|
+
exports.getConfigDefinedAtString = getConfigDefinedAtString;
|
|
18
|
+
function getDefinedAtString(definedAt, configName) {
|
|
19
|
+
if ('isComputed' in definedAt) {
|
|
20
|
+
return 'internally';
|
|
21
|
+
}
|
|
22
|
+
let files;
|
|
23
|
+
if ('files' in definedAt) {
|
|
24
|
+
files = definedAt.files;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
files = [definedAt];
|
|
28
|
+
}
|
|
29
|
+
(0, utils_js_1.assert)(files.length >= 1);
|
|
30
|
+
const definedAtString = files
|
|
31
|
+
.map((source) => {
|
|
32
|
+
const { filePathToShowToUser, fileExportPathToShowToUser } = source;
|
|
33
|
+
let s = filePathToShowToUser;
|
|
34
|
+
const exportPath = (0, getExportPath_js_1.getExportPath)(fileExportPathToShowToUser, configName);
|
|
35
|
+
if (exportPath) {
|
|
36
|
+
s = `${s} > ${picocolors_1.default.cyan(exportPath)}`;
|
|
37
|
+
}
|
|
38
|
+
return s;
|
|
39
|
+
})
|
|
40
|
+
.join(' / ');
|
|
41
|
+
return definedAtString;
|
|
42
|
+
}
|
|
43
|
+
exports.getDefinedAtString = getDefinedAtString;
|
|
@@ -0,0 +1,44 @@
|
|
|
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.getConfigValue = void 0;
|
|
7
|
+
const utils_js_1 = require("../../utils.js");
|
|
8
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
9
|
+
const getConfigDefinedAtString_js_1 = require("./getConfigDefinedAtString.js");
|
|
10
|
+
// prettier-ignore
|
|
11
|
+
function getConfigValue(pageConfig, configName, type) {
|
|
12
|
+
const configValue = getConfigValueEntry(pageConfig, configName);
|
|
13
|
+
if (configValue === null)
|
|
14
|
+
return null;
|
|
15
|
+
const { value, definedAt } = configValue;
|
|
16
|
+
if (type)
|
|
17
|
+
assertConfigValueType(value, type, configName, definedAt);
|
|
18
|
+
return configValue;
|
|
19
|
+
}
|
|
20
|
+
exports.getConfigValue = getConfigValue;
|
|
21
|
+
function assertConfigValueType(value, type, configName, definedAt) {
|
|
22
|
+
(0, utils_js_1.assert)(value !== null);
|
|
23
|
+
const typeActual = typeof value;
|
|
24
|
+
if (typeActual === type)
|
|
25
|
+
return;
|
|
26
|
+
const valuePrintable = (0, utils_js_1.getValuePrintable)(value);
|
|
27
|
+
const problem = valuePrintable !== null
|
|
28
|
+
? `value ${picocolors_1.default.cyan(valuePrintable)}`
|
|
29
|
+
: `type ${picocolors_1.default.cyan(typeActual)}`;
|
|
30
|
+
const configDefinedAt = (0, getConfigDefinedAtString_js_1.getConfigDefinedAtString)('Config', configName, {
|
|
31
|
+
definedAt
|
|
32
|
+
});
|
|
33
|
+
const errMsg = `${configDefinedAt} has an invalid ${problem}: it should be a ${picocolors_1.default.cyan(type)} instead`;
|
|
34
|
+
(0, utils_js_1.assertUsage)(false, errMsg);
|
|
35
|
+
}
|
|
36
|
+
function getConfigValueEntry(pageConfig, configName) {
|
|
37
|
+
const configValue = pageConfig.configValues[configName];
|
|
38
|
+
if (!configValue)
|
|
39
|
+
return null;
|
|
40
|
+
// Enable users to suppress global config values by setting the local config value to null
|
|
41
|
+
if (configValue.value === null)
|
|
42
|
+
return null;
|
|
43
|
+
return configValue;
|
|
44
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfigValue = exports.getDefinedAtString = exports.getConfigDefinedAtString = exports.getHookFilePathToShowToUser = exports.getConfigValueFilePathToShowToUser = exports.getPageConfig = void 0;
|
|
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; } });
|
|
9
|
+
const utils_js_1 = require("../utils.js");
|
|
10
|
+
function getPageConfig(pageId, pageConfigs) {
|
|
11
|
+
const pageConfig = pageConfigs.find((p) => p.pageId === pageId);
|
|
12
|
+
(0, utils_js_1.assert)(pageConfigs.length > 0);
|
|
13
|
+
(0, utils_js_1.assert)(pageConfig);
|
|
14
|
+
return pageConfig;
|
|
15
|
+
}
|
|
16
|
+
exports.getPageConfig = getPageConfig;
|
|
17
|
+
function getConfigValueFilePathToShowToUser({ definedAt }) {
|
|
18
|
+
// A unique file path only exists if the config value isn't cumulative nor computed:
|
|
19
|
+
// - cumulative config values have multiple file paths
|
|
20
|
+
// - computed values don't have any file path
|
|
21
|
+
if ('isComputed' in definedAt || 'files' in definedAt)
|
|
22
|
+
return null;
|
|
23
|
+
const { filePathToShowToUser } = definedAt;
|
|
24
|
+
(0, utils_js_1.assert)(filePathToShowToUser);
|
|
25
|
+
return filePathToShowToUser;
|
|
26
|
+
}
|
|
27
|
+
exports.getConfigValueFilePathToShowToUser = getConfigValueFilePathToShowToUser;
|
|
28
|
+
function getHookFilePathToShowToUser({ definedAt }) {
|
|
29
|
+
const filePathToShowToUser = getConfigValueFilePathToShowToUser({ definedAt });
|
|
30
|
+
(0, utils_js_1.assert)(filePathToShowToUser);
|
|
31
|
+
return filePathToShowToUser;
|
|
32
|
+
}
|
|
33
|
+
exports.getHookFilePathToShowToUser = getHookFilePathToShowToUser;
|
|
@@ -13,14 +13,12 @@ function parseConfigValuesImported(configValuesImported) {
|
|
|
13
13
|
configValues[configName] = {
|
|
14
14
|
value,
|
|
15
15
|
definedAt: {
|
|
16
|
-
file
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
[exportName]
|
|
23
|
-
}
|
|
16
|
+
// importPath cannot be relative to the current file, since the current file is a virtual file
|
|
17
|
+
filePathToShowToUser: importPath,
|
|
18
|
+
fileExportPathToShowToUser: [configName, 'default'].includes(exportName)
|
|
19
|
+
? []
|
|
20
|
+
: // Side-effect config
|
|
21
|
+
[exportName]
|
|
24
22
|
}
|
|
25
23
|
};
|
|
26
24
|
assertIsNotNull(value, configName, importPath);
|
|
@@ -4,7 +4,7 @@ exports.parsePageConfigs = void 0;
|
|
|
4
4
|
const parse_1 = require("@brillout/json-serializer/parse");
|
|
5
5
|
const parseConfigValuesImported_js_1 = require("./parseConfigValuesImported.js");
|
|
6
6
|
const utils_js_1 = require("../../utils.js");
|
|
7
|
-
const
|
|
7
|
+
const helpers_js_1 = require("../helpers.js");
|
|
8
8
|
function parsePageConfigs(pageConfigsSerialized, pageConfigGlobalSerialized) {
|
|
9
9
|
const pageConfigs = pageConfigsSerialized.map((pageConfigSerialized) => {
|
|
10
10
|
const configValues = {};
|
|
@@ -52,7 +52,7 @@ function assertRouteConfigValue(configValues) {
|
|
|
52
52
|
return;
|
|
53
53
|
const { value } = configValue;
|
|
54
54
|
const configValueType = typeof value;
|
|
55
|
-
const configDefinedAt = (0,
|
|
55
|
+
const configDefinedAt = (0, helpers_js_1.getConfigDefinedAtString)('Config', configName, configValue);
|
|
56
56
|
(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`);
|
|
57
57
|
/* We don't use assertRouteString() in order to avoid unnecessarily bloating the client-side bundle when using Server Routing:
|
|
58
58
|
* - When using Server Routing, this file is loaded => loading assertRouteString() would bloat the client bundle.
|
|
@@ -28,9 +28,9 @@ exports.serializeConfigValue = serializeConfigValue;
|
|
|
28
28
|
function serializeConfigValueImported(configValueSource, configName, whitespace, varCounterContainer, importStatements) {
|
|
29
29
|
(0, utils_js_1.assert)(!configValueSource.valueIsFilePath);
|
|
30
30
|
(0, utils_js_1.assert)(whitespace.replaceAll(' ', '').length === 0);
|
|
31
|
-
const { valueIsImportedAtRuntime,
|
|
31
|
+
const { valueIsImportedAtRuntime, definedAt } = configValueSource;
|
|
32
32
|
(0, utils_js_1.assert)(valueIsImportedAtRuntime);
|
|
33
|
-
const { filePathAbsoluteVite, fileExportName } =
|
|
33
|
+
const { filePathAbsoluteVite, fileExportName } = definedAt;
|
|
34
34
|
(0, utils_js_1.assertPosixPath)(filePathAbsoluteVite);
|
|
35
35
|
const fileName = path_1.default.posix.basename(filePathAbsoluteVite);
|
|
36
36
|
const isValueFile = fileName.startsWith('+');
|
|
@@ -11,6 +11,7 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
11
11
|
async function executeOnBeforeRouteHook(onBeforeRouteHook, pageContext) {
|
|
12
12
|
let hookReturn = onBeforeRouteHook.onBeforeRoute(pageContext);
|
|
13
13
|
(0, resolveRouteFunction_js_1.assertSyncRouting)(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
|
|
14
|
+
// TODO/v1-release: make executeOnBeforeRouteHook() and route() sync
|
|
14
15
|
hookReturn = await hookReturn;
|
|
15
16
|
const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
|
|
16
17
|
(0, utils_js_1.assertUsage)(hookReturn === null ||
|
|
@@ -28,28 +29,25 @@ async function executeOnBeforeRouteHook(onBeforeRouteHook, pageContext) {
|
|
|
28
29
|
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'routeParams')) {
|
|
29
30
|
(0, resolveRouteFunction_js_1.assertRouteParams)(hookReturn.pageContext, `${errPrefix} returned ${picocolors_1.default.cyan('{ pageContext: { routeParams } }')} but routeParams should`);
|
|
30
31
|
}
|
|
31
|
-
const
|
|
32
|
+
const deprecatedReturn = (prop) => `${errPrefix} returned ${picocolors_1.default.cyan(`{ pageContext: { ${prop} } }`)} which is deprecated. Return ${picocolors_1.default.cyan('{ pageContext: { urlLogical } }')} instead.`;
|
|
32
33
|
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'url')) {
|
|
33
|
-
(0, utils_js_1.assertWarning)(false,
|
|
34
|
-
hookReturn.pageContext.
|
|
34
|
+
(0, utils_js_1.assertWarning)(false, deprecatedReturn('url'), { onlyOnce: true });
|
|
35
|
+
hookReturn.pageContext.urlLogical = hookReturn.pageContext.url;
|
|
35
36
|
delete hookReturn.pageContext.url;
|
|
36
37
|
}
|
|
37
38
|
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'urlOriginal')) {
|
|
38
|
-
(0, utils_js_1.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// pageContext.urlReal / pageContext.urlModified
|
|
45
|
-
// VS
|
|
46
|
-
// pageContext.urlOriginal / pageContext.urlModified
|
|
47
|
-
(0, utils_js_1.objectAssign)(pageContextAddendumHook, { _urlOriginalPristine: pageContext.urlOriginal });
|
|
39
|
+
(0, utils_js_1.assertWarning)(false, deprecatedReturn('urlOriginal'), { onlyOnce: true });
|
|
40
|
+
hookReturn.pageContext.urlLogical = hookReturn.pageContext.urlOriginal;
|
|
41
|
+
delete hookReturn.pageContext.urlOriginal;
|
|
42
|
+
}
|
|
43
|
+
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'urlLogical')) {
|
|
44
|
+
(0, utils_js_1.assertUsageUrl)(hookReturn.pageContext.urlLogical, `${errPrefix} returned ${picocolors_1.default.cyan('{ pageContext: { urlLogical } }')} but ${picocolors_1.default.cyan('urlLogical')}`);
|
|
48
45
|
}
|
|
49
46
|
(0, assertPageContextProvidedByUser_js_1.assertPageContextProvidedByUser)(hookReturn.pageContext, {
|
|
50
47
|
hookFilePath: onBeforeRouteHook.hookFilePath,
|
|
51
48
|
hookName: 'onBeforeRoute'
|
|
52
49
|
});
|
|
50
|
+
const pageContextAddendumHook = {};
|
|
53
51
|
(0, utils_js_1.objectAssign)(pageContextAddendumHook, hookReturn.pageContext);
|
|
54
52
|
return pageContextAddendumHook;
|
|
55
53
|
}
|
|
@@ -38,7 +38,7 @@ async function route(pageContext) {
|
|
|
38
38
|
_routingProvidedByOnBeforeRouteHook: true,
|
|
39
39
|
_routeMatches: 'CUSTOM_ROUTE'
|
|
40
40
|
});
|
|
41
|
-
return
|
|
41
|
+
return pageContextAddendum;
|
|
42
42
|
}
|
|
43
43
|
// We already assign so that `pageContext.urlOriginal === pageContextAddendum.urlOriginal`; enabling the `onBeforeRoute()` hook to mutate `pageContext.urlOriginal` before routing.
|
|
44
44
|
(0, utils_js_1.objectAssign)(pageContext, pageContextAddendum);
|
|
@@ -104,7 +104,7 @@ async function route(pageContext) {
|
|
|
104
104
|
_pageId: null,
|
|
105
105
|
routeParams: {}
|
|
106
106
|
});
|
|
107
|
-
return
|
|
107
|
+
return pageContextAddendum;
|
|
108
108
|
}
|
|
109
109
|
{
|
|
110
110
|
const { routeParams } = winner;
|
|
@@ -114,6 +114,6 @@ async function route(pageContext) {
|
|
|
114
114
|
routeParams: winner.routeParams
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
|
-
return
|
|
117
|
+
return pageContextAddendum;
|
|
118
118
|
}
|
|
119
119
|
exports.route = route;
|
|
@@ -5,10 +5,10 @@ const error_page_js_1 = require("../error-page.js");
|
|
|
5
5
|
const utils_js_1 = require("./utils.js");
|
|
6
6
|
const deduceRouteStringFromFilesystemPath_js_1 = require("./deduceRouteStringFromFilesystemPath.js");
|
|
7
7
|
const utils_js_2 = require("../utils.js");
|
|
8
|
-
const
|
|
8
|
+
const helpers_js_1 = require("../page-configs/helpers.js");
|
|
9
9
|
const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
|
|
10
10
|
async function loadPageRoutes(
|
|
11
|
-
//
|
|
11
|
+
// Remove all arguments and use GlobalContext instead?
|
|
12
12
|
pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
|
|
13
13
|
await Promise.all(pageFilesAll.filter((p) => p.fileType === '.page.route').map((p) => p.loadFile?.()));
|
|
14
14
|
const { onBeforeRouteHook, filesystemRoots } = getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal);
|
|
@@ -31,10 +31,10 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
31
31
|
let pageRoute = null;
|
|
32
32
|
{
|
|
33
33
|
const configName = 'route';
|
|
34
|
-
const configValue = (0,
|
|
34
|
+
const configValue = (0, helpers_js_1.getConfigValue)(pageConfig, configName);
|
|
35
35
|
if (configValue) {
|
|
36
36
|
const route = configValue.value;
|
|
37
|
-
const definedAt = (0,
|
|
37
|
+
const definedAt = (0, helpers_js_1.getDefinedAtString)(configValue.definedAt, configName);
|
|
38
38
|
if (typeof route === 'string') {
|
|
39
39
|
pageRoute = {
|
|
40
40
|
pageId,
|
|
@@ -46,7 +46,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
48
|
(0, utils_js_1.assert)((0, utils_js_2.isCallable)(route));
|
|
49
|
-
if ((0,
|
|
49
|
+
if ((0, helpers_js_1.getConfigValue)(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
|
|
50
50
|
(0, resolveRouteFunction_js_1.warnDeprecatedAllowKey)();
|
|
51
51
|
pageRoute = {
|
|
52
52
|
pageId,
|
|
@@ -139,12 +139,13 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
139
139
|
function getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal) {
|
|
140
140
|
// V1 Design
|
|
141
141
|
if (pageConfigs.length > 0) {
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
const hookName = 'onBeforeRoute';
|
|
143
|
+
if (pageConfigGlobal.configValues[hookName]?.value) {
|
|
144
|
+
const configValue = pageConfigGlobal.configValues[hookName];
|
|
144
145
|
const { value: hookFn } = configValue;
|
|
145
|
-
const hookFilePath = (0,
|
|
146
|
-
|
|
147
|
-
(0, utils_js_1.assertUsage)((0, utils_js_2.isCallable)(hookFn),
|
|
146
|
+
const hookFilePath = (0, helpers_js_1.getHookFilePathToShowToUser)(configValue);
|
|
147
|
+
const hookDefinedAt = (0, helpers_js_1.getConfigDefinedAtString)('Hook', hookName, configValue);
|
|
148
|
+
(0, utils_js_1.assertUsage)((0, utils_js_2.isCallable)(hookFn), `${hookDefinedAt} should be a function.`);
|
|
148
149
|
const onBeforeRouteHook = {
|
|
149
150
|
hookFilePath: hookFilePath,
|
|
150
151
|
onBeforeRoute: hookFn
|
|
@@ -11,7 +11,7 @@ async function resolveRouteFunction(routeFunction, pageContext, routeDefinedAt)
|
|
|
11
11
|
(0, addUrlComputedProps_js_1.assertPageContextUrlComputedProps)(pageContext);
|
|
12
12
|
let result = routeFunction(pageContext);
|
|
13
13
|
assertSyncRouting(result, `The Route Function ${routeDefinedAt}`);
|
|
14
|
-
// TODO/v1-release
|
|
14
|
+
// TODO/v1-release: make resolveRouteFunction() and route() sync
|
|
15
15
|
//* We disallow asynchronous routing, because we need to check whether a link is a Vike link in a synchronous fashion before calling ev.preventDefault() in the 'click' event listener
|
|
16
16
|
result = await result;
|
|
17
17
|
//*/
|
package/dist/cjs/shared/utils.js
CHANGED
|
@@ -35,7 +35,7 @@ __exportStar(require("../utils/stringifyStringArray.js"), exports);
|
|
|
35
35
|
__exportStar(require("../utils/filesystemPathHandling.js"), exports);
|
|
36
36
|
__exportStar(require("../utils/cast.js"), exports);
|
|
37
37
|
__exportStar(require("../utils/projectInfo.js"), exports);
|
|
38
|
-
__exportStar(require("../utils/
|
|
38
|
+
__exportStar(require("../utils/isPropertyGetter.js"), exports);
|
|
39
39
|
__exportStar(require("../utils/isPromise.js"), exports);
|
|
40
40
|
__exportStar(require("../utils/checkType.js"), exports);
|
|
41
41
|
__exportStar(require("../utils/objectEntries.js"), exports);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.isPropertyGetter = void 0;
|
|
4
|
+
function isPropertyGetter(obj, prop) {
|
|
5
5
|
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
|
6
6
|
return !!descriptor && !('value' in descriptor) && !!descriptor.get;
|
|
7
7
|
}
|
|
8
|
-
exports.
|
|
8
|
+
exports.isPropertyGetter = isPropertyGetter;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.projectInfo = void 0;
|
|
4
4
|
const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
|
|
5
|
-
const PROJECT_VERSION = '0.4.144-commit-
|
|
5
|
+
const PROJECT_VERSION = '0.4.144-commit-7f5e99a';
|
|
6
6
|
const projectInfo = {
|
|
7
7
|
projectName: 'Vike',
|
|
8
8
|
projectVersion: PROJECT_VERSION,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { route, type PageRoutes } from '../shared/route/index.js';
|
|
2
|
-
import { type PageFile } from '../shared/getPageFiles.js';
|
|
3
|
-
import { PageConfigRuntime } from '../shared/page-configs/PageConfig.js';
|
|
4
1
|
export { route, getPagesAndRoutes };
|
|
5
2
|
export type { PageRoutes, PageFile, PageConfigRuntime as PageConfig };
|
|
3
|
+
import { route as routeInternal, type PageRoutes } from '../shared/route/index.js';
|
|
4
|
+
import { type PageFile } from '../shared/getPageFiles.js';
|
|
5
|
+
import { PageConfigRuntime } from '../shared/page-configs/PageConfig.js';
|
|
6
6
|
/**
|
|
7
7
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
|
|
8
8
|
* to compute some rewrite rules and extract { isr } configs.
|
|
@@ -15,3 +15,6 @@ declare function getPagesAndRoutes(): Promise<{
|
|
|
15
15
|
pageConfigs: PageConfigRuntime[];
|
|
16
16
|
allPageIds: string[];
|
|
17
17
|
}>;
|
|
18
|
+
declare function route(pageContext: Parameters<typeof routeInternal>[0]): Promise<{
|
|
19
|
+
pageContextAddendum: import("../shared/route/index.js").PageContextFromRoute;
|
|
20
|
+
}>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Internals needed by vite-plugin-vercel
|
|
2
|
+
export { route, getPagesAndRoutes };
|
|
3
|
+
import { route as routeInternal } from '../shared/route/index.js';
|
|
3
4
|
import { getGlobalContext, initGlobalContext } from '../node/runtime/globalContext.js';
|
|
4
5
|
import { setNodeEnvToProduction } from '../utils/nodeEnv.js';
|
|
5
6
|
import { assert } from '../utils/assert.js';
|
|
6
7
|
import { getRenderContext } from '../node/runtime/renderPage/renderPageAlreadyRouted.js';
|
|
7
|
-
export { route, getPagesAndRoutes };
|
|
8
8
|
/**
|
|
9
9
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
|
|
10
10
|
* to compute some rewrite rules and extract { isr } configs.
|
|
@@ -25,3 +25,8 @@ async function getPagesAndRoutes() {
|
|
|
25
25
|
allPageIds
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
+
async function route(pageContext) {
|
|
29
|
+
const pageContextFromRoute = await routeInternal(pageContext);
|
|
30
|
+
// Old interface
|
|
31
|
+
return { pageContextAddendum: pageContextFromRoute };
|
|
32
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { createPageContext };
|
|
2
|
-
declare function createPageContext
|
|
2
|
+
declare function createPageContext(urlOriginal: string): Promise<{
|
|
3
3
|
urlOriginal: string;
|
|
4
|
-
}>(pageContextBase?: T): Promise<{
|
|
5
4
|
_objectCreatedByVike: boolean;
|
|
6
5
|
_urlHandler: null;
|
|
7
6
|
_urlRewrite: null;
|
|
@@ -13,6 +12,6 @@ declare function createPageContext<T extends {
|
|
|
13
12
|
_allPageIds: string[];
|
|
14
13
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
15
14
|
_onBeforeRouteHook: import("../../shared/route/executeOnBeforeRouteHook.js").OnBeforeRouteHook | null;
|
|
16
|
-
} &
|
|
15
|
+
} & import("../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
17
16
|
_urlRewrite: string | null;
|
|
18
17
|
}>;
|
|
@@ -3,9 +3,9 @@ import { addUrlComputedProps } from '../../shared/addUrlComputedProps.js';
|
|
|
3
3
|
import { getPageFilesAll } from '../../shared/getPageFiles.js';
|
|
4
4
|
import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
|
|
5
5
|
import { getBaseServer } from './getBaseServer.js';
|
|
6
|
-
import { assert, isBaseServer,
|
|
6
|
+
import { assert, isBaseServer, getGlobalObject } from './utils.js';
|
|
7
7
|
const globalObject = getGlobalObject('createPageContext.ts', {});
|
|
8
|
-
async function createPageContext(
|
|
8
|
+
async function createPageContext(urlOriginal) {
|
|
9
9
|
if (!globalObject.pageFilesData) {
|
|
10
10
|
globalObject.pageFilesData = await getPageFilesAll(true);
|
|
11
11
|
}
|
|
@@ -16,6 +16,7 @@ async function createPageContext(pageContextBase) {
|
|
|
16
16
|
// @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
17
17
|
const isProd = import.meta.env.PROD;
|
|
18
18
|
const pageContext = {
|
|
19
|
+
urlOriginal,
|
|
19
20
|
_objectCreatedByVike: true,
|
|
20
21
|
_urlHandler: null,
|
|
21
22
|
_urlRewrite: null,
|
|
@@ -29,7 +30,6 @@ async function createPageContext(pageContextBase) {
|
|
|
29
30
|
_pageRoutes: pageRoutes,
|
|
30
31
|
_onBeforeRouteHook: onBeforeRouteHook
|
|
31
32
|
};
|
|
32
|
-
objectAssign(pageContext, pageContextBase);
|
|
33
33
|
addUrlComputedProps(pageContext);
|
|
34
34
|
return pageContext;
|
|
35
35
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { assertClientRouting } from '../../utils/assertRoutingType.js';
|
|
2
2
|
assertClientRouting();
|
|
3
3
|
import './pageFiles';
|
|
4
|
-
import {
|
|
4
|
+
import { installClientRouter } from './installClientRouter.js';
|
|
5
5
|
import { onClientEntry_ClientRouting } from './utils.js';
|
|
6
6
|
// @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
7
7
|
const isProd = import.meta.env.PROD;
|
|
8
8
|
onClientEntry_ClientRouting(isProd);
|
|
9
|
-
|
|
9
|
+
installClientRouter();
|
|
@@ -21,7 +21,6 @@ declare function getPageContext(pageContext: {
|
|
|
21
21
|
declare function getPageContextErrorPage(pageContext: {
|
|
22
22
|
urlOriginal: string;
|
|
23
23
|
_allPageIds: string[];
|
|
24
|
-
_isFirstRenderAttempt: boolean;
|
|
25
24
|
_pageFilesAll: PageFile[];
|
|
26
25
|
_pageConfigs: PageConfigRuntime[];
|
|
27
26
|
} & PageContextPassThrough): Promise<PageContextAddendum>;
|