vike 0.4.144 → 0.4.145-commit-2520555
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 +3 -3
- package/dist/cjs/node/plugin/plugins/commonConfig.js +0 -3
- package/dist/cjs/node/plugin/plugins/config/index.js +3 -3
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +8 -8
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -0
- package/dist/cjs/node/plugin/plugins/envVars.js +34 -20
- package/dist/cjs/node/plugin/plugins/importBuild/index.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +12 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +249 -228
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +8 -6
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +36 -14
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/helpers.js +1 -14
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +18 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +15 -17
- package/dist/cjs/node/plugin/plugins/previewConfig.js +11 -2
- package/dist/cjs/node/prerender/runPrerender.js +34 -26
- 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/debugPageFiles.js +5 -5
- package/dist/cjs/node/runtime/renderPage/log404/index.js +28 -17
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
- package/dist/cjs/node/runtime/renderPage.js +3 -3
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/node/shared/getClientEntryFilePath.js +2 -2
- package/dist/cjs/node/shared/getConfigVike.js +4 -1
- 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/getExportPath.js +3 -3
- 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/loadConfigValues.js +2 -2
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +14 -13
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -2
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +9 -10
- package/dist/cjs/shared/route/abort.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +41 -15
- package/dist/cjs/shared/route/index.js +22 -32
- package/dist/cjs/shared/route/loadPageRoutes.js +11 -10
- package/dist/cjs/shared/route/noRouteMatch.js +4 -0
- package/dist/cjs/shared/route/resolveRouteFunction.js +1 -1
- package/dist/cjs/shared/utils.js +1 -1
- package/dist/cjs/utils/getFilePathAbsolute.js +11 -11
- package/dist/cjs/utils/isExternalLink.js +7 -0
- package/dist/cjs/utils/{hasPropertyGetter.js → isPropertyGetter.js} +3 -3
- package/dist/cjs/utils/onPageVisibilityChange.js +19 -0
- package/dist/cjs/utils/parseUrl.js +1 -1
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/cjs/utils/truncateString.js +12 -7
- 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 -4
- package/dist/esm/client/client-routing-runtime/entry.js +2 -2
- package/dist/esm/client/client-routing-runtime/getBaseServer.d.ts +2 -1
- package/dist/esm/client/client-routing-runtime/getBaseServer.js +2 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +39 -0
- package/dist/esm/client/client-routing-runtime/{getPageContext.js → getPageContextFromHooks.js} +50 -79
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +31 -9
- package/dist/esm/client/client-routing-runtime/installClientRouter.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/installClientRouter.js +22 -0
- package/dist/esm/client/client-routing-runtime/isClientSideRoutable.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/isClientSideRoutable.js +12 -0
- package/dist/esm/client/client-routing-runtime/navigate.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/navigate.js +9 -8
- package/dist/esm/client/client-routing-runtime/onBrowserHistoryNavigation.d.ts +4 -0
- package/dist/esm/client/client-routing-runtime/onBrowserHistoryNavigation.js +63 -0
- package/dist/esm/client/client-routing-runtime/onLinkClick.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/onLinkClick.js +40 -0
- package/dist/esm/client/client-routing-runtime/prefetch.js +54 -29
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +19 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +347 -0
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +6 -0
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +25 -0
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +7 -0
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +77 -0
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/skipLink.js +9 -5
- package/dist/esm/client/client-routing-runtime/utils.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/utils.js +2 -0
- package/dist/esm/client/server-routing-runtime/getPageContext.js +1 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.js +6 -5
- package/dist/esm/client/shared/getPageContextProxyForUser.js +13 -7
- package/dist/esm/client/shared/loadPageFilesClientSide.d.ts +8 -3
- package/dist/esm/client/shared/loadPageFilesClientSide.js +5 -5
- package/dist/esm/node/plugin/plugins/buildConfig.js +3 -3
- package/dist/esm/node/plugin/plugins/commonConfig.js +0 -3
- package/dist/esm/node/plugin/plugins/config/index.js +4 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +9 -9
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -0
- package/dist/esm/node/plugin/plugins/envVars.d.ts +2 -0
- package/dist/esm/node/plugin/plugins/envVars.js +35 -20
- package/dist/esm/node/plugin/plugins/importBuild/index.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +3 -3
- 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 +5 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +12 -12
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +250 -229
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +7 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +37 -15
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.js +1 -14
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +15 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +16 -18
- package/dist/esm/node/plugin/plugins/previewConfig.js +11 -2
- package/dist/esm/node/prerender/runPrerender.js +29 -21
- 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/debugPageFiles.d.ts +5 -5
- package/dist/esm/node/runtime/renderPage/debugPageFiles.js +5 -5
- package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.js +28 -16
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -2
- package/dist/esm/node/runtime/renderPage.js +3 -3
- 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/node/shared/getConfigVike.d.ts +2 -1
- package/dist/esm/node/shared/getConfigVike.js +4 -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 +55 -31
- package/dist/esm/shared/page-configs/getExportPath.d.ts +1 -1
- package/dist/esm/shared/page-configs/getExportPath.js +3 -3
- 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/loadConfigValues.js +2 -2
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +4 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +15 -11
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +9 -10
- package/dist/esm/shared/route/abort.js +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.d.ts +5 -8
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +41 -15
- package/dist/esm/shared/route/index.d.ts +12 -10
- package/dist/esm/shared/route/index.js +23 -33
- package/dist/esm/shared/route/loadPageRoutes.js +8 -7
- package/dist/esm/shared/route/noRouteMatch.d.ts +1 -0
- package/dist/esm/shared/route/noRouteMatch.js +1 -0
- 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/getFilePathAbsolute.d.ts +1 -1
- package/dist/esm/utils/getFilePathAbsolute.js +11 -11
- package/dist/esm/utils/isPropertyGetter.d.ts +1 -0
- package/dist/esm/utils/{hasPropertyGetter.js → isPropertyGetter.js} +1 -1
- package/dist/esm/utils/onPageVisibilityChange.d.ts +4 -0
- package/dist/esm/utils/onPageVisibilityChange.js +16 -0
- package/dist/esm/utils/parseUrl.js +1 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/projectInfo.js +1 -1
- package/dist/esm/utils/truncateString.d.ts +2 -1
- package/dist/esm/utils/truncateString.js +10 -7
- package/node/cli/bin-entry.js +1 -1
- package/package.json +2 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +0 -16
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +0 -13
- package/dist/cjs/shared/page-configs/utils.js +0 -103
- package/dist/esm/client/client-routing-runtime/getPageContext.d.ts +0 -29
- package/dist/esm/client/client-routing-runtime/getPageId.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/getPageId.js +0 -17
- package/dist/esm/client/client-routing-runtime/navigationState.d.ts +0 -5
- package/dist/esm/client/client-routing-runtime/navigationState.js +0 -14
- 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/client/client-routing-runtime/useClientRouter.js +0 -493
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.d.ts +0 -24
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +0 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +0 -10
- package/dist/esm/shared/page-configs/utils.d.ts +0 -35
- package/dist/esm/shared/page-configs/utils.js +0 -97
- package/dist/esm/utils/hasPropertyGetter.d.ts +0 -1
- /package/dist/esm/{client/client-routing-runtime → utils}/isExternalLink.d.ts +0 -0
- /package/dist/esm/{client/client-routing-runtime → utils}/isExternalLink.js +0 -0
|
@@ -8,9 +8,39 @@ const assertPageContextProvidedByUser_js_1 = require("../assertPageContextProvid
|
|
|
8
8
|
const utils_js_1 = require("./utils.js");
|
|
9
9
|
const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
|
|
10
10
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
11
|
-
async function executeOnBeforeRouteHook(
|
|
11
|
+
async function executeOnBeforeRouteHook(pageContext) {
|
|
12
|
+
const pageContextFromOnBeforeRouteHook = {};
|
|
13
|
+
if (!pageContext._onBeforeRouteHook)
|
|
14
|
+
return null;
|
|
15
|
+
const pageContextFromHook = await executeHook(pageContext._onBeforeRouteHook, pageContext);
|
|
16
|
+
if (pageContextFromHook) {
|
|
17
|
+
(0, utils_js_1.objectAssign)(pageContextFromOnBeforeRouteHook, pageContextFromHook);
|
|
18
|
+
if ((0, utils_js_1.hasProp)(pageContextFromOnBeforeRouteHook, '_pageId', 'string') ||
|
|
19
|
+
(0, utils_js_1.hasProp)(pageContextFromOnBeforeRouteHook, '_pageId', 'null')) {
|
|
20
|
+
// We bypass Vike's routing
|
|
21
|
+
if (!(0, utils_js_1.hasProp)(pageContextFromOnBeforeRouteHook, 'routeParams')) {
|
|
22
|
+
(0, utils_js_1.objectAssign)(pageContextFromOnBeforeRouteHook, { routeParams: {} });
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextFromOnBeforeRouteHook, 'routeParams', 'object'));
|
|
26
|
+
}
|
|
27
|
+
(0, utils_js_1.objectAssign)(pageContextFromOnBeforeRouteHook, {
|
|
28
|
+
_routingProvidedByOnBeforeRouteHook: true,
|
|
29
|
+
_debugRouteMatches: 'CUSTOM_ROUTING'
|
|
30
|
+
});
|
|
31
|
+
return pageContextFromOnBeforeRouteHook;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
(0, utils_js_1.objectAssign)(pageContextFromOnBeforeRouteHook, {
|
|
35
|
+
_routingProvidedByOnBeforeRouteHook: false
|
|
36
|
+
});
|
|
37
|
+
return pageContextFromOnBeforeRouteHook;
|
|
38
|
+
}
|
|
39
|
+
exports.executeOnBeforeRouteHook = executeOnBeforeRouteHook;
|
|
40
|
+
async function executeHook(onBeforeRouteHook, pageContext) {
|
|
12
41
|
let hookReturn = onBeforeRouteHook.onBeforeRoute(pageContext);
|
|
13
42
|
(0, resolveRouteFunction_js_1.assertSyncRouting)(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
|
|
43
|
+
// TODO/v1-release: make executeOnBeforeRouteHook() and route() sync
|
|
14
44
|
hookReturn = await hookReturn;
|
|
15
45
|
const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
|
|
16
46
|
(0, utils_js_1.assertUsage)(hookReturn === null ||
|
|
@@ -28,29 +58,25 @@ async function executeOnBeforeRouteHook(onBeforeRouteHook, pageContext) {
|
|
|
28
58
|
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'routeParams')) {
|
|
29
59
|
(0, resolveRouteFunction_js_1.assertRouteParams)(hookReturn.pageContext, `${errPrefix} returned ${picocolors_1.default.cyan('{ pageContext: { routeParams } }')} but routeParams should`);
|
|
30
60
|
}
|
|
31
|
-
const
|
|
61
|
+
const deprecatedReturn = (prop) => `${errPrefix} returned ${picocolors_1.default.cyan(`{ pageContext: { ${prop} } }`)} which is deprecated. Return ${picocolors_1.default.cyan('{ pageContext: { urlLogical } }')} instead.`;
|
|
32
62
|
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'url')) {
|
|
33
|
-
(0, utils_js_1.assertWarning)(false,
|
|
34
|
-
hookReturn.pageContext.
|
|
63
|
+
(0, utils_js_1.assertWarning)(false, deprecatedReturn('url'), { onlyOnce: true });
|
|
64
|
+
hookReturn.pageContext.urlLogical = hookReturn.pageContext.url;
|
|
35
65
|
delete hookReturn.pageContext.url;
|
|
36
66
|
}
|
|
37
67
|
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 });
|
|
68
|
+
(0, utils_js_1.assertWarning)(false, deprecatedReturn('urlOriginal'), { onlyOnce: true });
|
|
69
|
+
hookReturn.pageContext.urlLogical = hookReturn.pageContext.urlOriginal;
|
|
70
|
+
delete hookReturn.pageContext.urlOriginal;
|
|
71
|
+
}
|
|
72
|
+
if ((0, utils_js_1.hasProp)(hookReturn.pageContext, 'urlLogical')) {
|
|
73
|
+
(0, utils_js_1.assertUsageUrl)(hookReturn.pageContext.urlLogical, `${errPrefix} returned ${picocolors_1.default.cyan('{ pageContext: { urlLogical } }')} but ${picocolors_1.default.cyan('urlLogical')}`);
|
|
48
74
|
}
|
|
49
75
|
(0, assertPageContextProvidedByUser_js_1.assertPageContextProvidedByUser)(hookReturn.pageContext, {
|
|
50
76
|
hookFilePath: onBeforeRouteHook.hookFilePath,
|
|
51
77
|
hookName: 'onBeforeRoute'
|
|
52
78
|
});
|
|
79
|
+
const pageContextAddendumHook = {};
|
|
53
80
|
(0, utils_js_1.objectAssign)(pageContextAddendumHook, hookReturn.pageContext);
|
|
54
81
|
return pageContextAddendumHook;
|
|
55
82
|
}
|
|
56
|
-
exports.executeOnBeforeRouteHook = executeOnBeforeRouteHook;
|
|
@@ -18,35 +18,25 @@ const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
|
|
|
18
18
|
const executeOnBeforeRouteHook_js_1 = require("./executeOnBeforeRouteHook.js");
|
|
19
19
|
const debug_js_1 = require("./debug.js");
|
|
20
20
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
21
|
-
async function route(
|
|
22
|
-
(0,
|
|
23
|
-
(0,
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
else {
|
|
35
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextAddendum, 'routeParams', 'object'));
|
|
36
|
-
}
|
|
37
|
-
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
38
|
-
_routingProvidedByOnBeforeRouteHook: true,
|
|
39
|
-
_routeMatches: 'CUSTOM_ROUTE'
|
|
40
|
-
});
|
|
41
|
-
return { pageContextAddendum };
|
|
42
|
-
}
|
|
43
|
-
// We already assign so that `pageContext.urlOriginal === pageContextAddendum.urlOriginal`; enabling the `onBeforeRoute()` hook to mutate `pageContext.urlOriginal` before routing.
|
|
44
|
-
(0, utils_js_1.objectAssign)(pageContext, pageContextAddendum);
|
|
21
|
+
async function route(pageContextForRoute) {
|
|
22
|
+
(0, debug_js_1.debug)('Pages routes:', pageContextForRoute._pageRoutes);
|
|
23
|
+
(0, addUrlComputedProps_js_1.addUrlComputedProps)(pageContextForRoute);
|
|
24
|
+
const pageContextFromRoute = {};
|
|
25
|
+
// onBeforeRoute()
|
|
26
|
+
const pageContextFromOnBeforeRouteHook = await (0, executeOnBeforeRouteHook_js_1.executeOnBeforeRouteHook)(pageContextForRoute);
|
|
27
|
+
if (pageContextFromOnBeforeRouteHook) {
|
|
28
|
+
if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
|
|
29
|
+
(0, utils_js_1.assert)(pageContextFromOnBeforeRouteHook._pageId);
|
|
30
|
+
return pageContextFromOnBeforeRouteHook;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
(0, utils_js_1.objectAssign)(pageContextFromRoute, pageContextFromOnBeforeRouteHook);
|
|
45
34
|
}
|
|
46
35
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
// We take into account pageContext.urlLogical set by onBeforeRoute()
|
|
37
|
+
const pageContext = {};
|
|
38
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextForRoute);
|
|
39
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextFromOnBeforeRouteHook);
|
|
50
40
|
// Vike's routing
|
|
51
41
|
const allPageIds = pageContext._allPageIds;
|
|
52
42
|
(0, utils_js_1.assert)(allPageIds.length >= 0);
|
|
@@ -98,22 +88,22 @@ async function route(pageContext) {
|
|
|
98
88
|
(0, resolvePrecedence_js_1.resolvePrecendence)(routeMatches);
|
|
99
89
|
const winner = routeMatches[0];
|
|
100
90
|
(0, debug_js_1.debug)(`Route matches for URL ${picocolors_1.default.cyan(urlPathname)} (in precedence order):`, routeMatches);
|
|
101
|
-
(0, utils_js_1.objectAssign)(
|
|
91
|
+
(0, utils_js_1.objectAssign)(pageContextFromRoute, { _debugRouteMatches: routeMatches });
|
|
102
92
|
if (!winner) {
|
|
103
|
-
(0, utils_js_1.objectAssign)(
|
|
93
|
+
(0, utils_js_1.objectAssign)(pageContextFromRoute, {
|
|
104
94
|
_pageId: null,
|
|
105
95
|
routeParams: {}
|
|
106
96
|
});
|
|
107
|
-
return
|
|
97
|
+
return pageContextFromRoute;
|
|
108
98
|
}
|
|
109
99
|
{
|
|
110
100
|
const { routeParams } = winner;
|
|
111
101
|
(0, utils_js_1.assert)((0, utils_js_1.isPlainObject)(routeParams));
|
|
112
|
-
(0, utils_js_1.objectAssign)(
|
|
102
|
+
(0, utils_js_1.objectAssign)(pageContextFromRoute, {
|
|
113
103
|
_pageId: winner.pageId,
|
|
114
104
|
routeParams: winner.routeParams
|
|
115
105
|
});
|
|
116
106
|
}
|
|
117
|
-
return
|
|
107
|
+
return pageContextFromRoute;
|
|
118
108
|
}
|
|
119
109
|
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);
|
|
@@ -34,27 +34,27 @@ function getFilePathAbsolute(filePath, config) {
|
|
|
34
34
|
filePathUnresolved = path_1.default.posix.join(root, filePath);
|
|
35
35
|
(0, assertPathIsFilesystemAbsolute_js_1.assertPathIsFilesystemAbsolute)(filePathUnresolved);
|
|
36
36
|
}
|
|
37
|
-
let
|
|
37
|
+
let filePathAbsoluteFilesystem;
|
|
38
38
|
try {
|
|
39
|
-
|
|
39
|
+
filePathAbsoluteFilesystem = require_.resolve(filePathUnresolved, { paths: [config.root] });
|
|
40
40
|
}
|
|
41
41
|
catch (err) {
|
|
42
42
|
console.error(err);
|
|
43
43
|
(0, assert_js_1.assert)(false);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
(0, assertPathIsFilesystemAbsolute_js_1.assertPathIsFilesystemAbsolute)(
|
|
47
|
-
return
|
|
45
|
+
filePathAbsoluteFilesystem = (0, filesystemPathHandling_js_1.toPosixPath)(filePathAbsoluteFilesystem);
|
|
46
|
+
(0, assertPathIsFilesystemAbsolute_js_1.assertPathIsFilesystemAbsolute)(filePathAbsoluteFilesystem);
|
|
47
|
+
return filePathAbsoluteFilesystem;
|
|
48
48
|
}
|
|
49
49
|
exports.getFilePathAbsolute = getFilePathAbsolute;
|
|
50
|
-
function getFilePathRelativeToUserRootDir(
|
|
51
|
-
(0, filesystemPathHandling_js_1.assertPosixPath)(
|
|
50
|
+
function getFilePathRelativeToUserRootDir(filePathAbsoluteFilesystem, userRootDir, alwaysRelative = false) {
|
|
51
|
+
(0, filesystemPathHandling_js_1.assertPosixPath)(filePathAbsoluteFilesystem);
|
|
52
52
|
(0, filesystemPathHandling_js_1.assertPosixPath)(userRootDir);
|
|
53
|
-
let filePathRelativeToUserRootDir = path_1.default.posix.relative(userRootDir,
|
|
54
|
-
if (
|
|
53
|
+
let filePathRelativeToUserRootDir = path_1.default.posix.relative(userRootDir, filePathAbsoluteFilesystem);
|
|
54
|
+
if (filePathAbsoluteFilesystem.startsWith(userRootDir)) {
|
|
55
55
|
(0, assert_js_1.assert)(!filePathRelativeToUserRootDir.startsWith('.') && !filePathRelativeToUserRootDir.startsWith('/'),
|
|
56
56
|
// Surprinsingly, this assertion seem to fail sometimes: https://github.com/vikejs/vike/issues/1139
|
|
57
|
-
{ filePathRelativeToUserRootDir,
|
|
57
|
+
{ filePathRelativeToUserRootDir, filePathAbsoluteFilesystem, userRootDir });
|
|
58
58
|
filePathRelativeToUserRootDir = `/${filePathRelativeToUserRootDir}`;
|
|
59
59
|
return filePathRelativeToUserRootDir;
|
|
60
60
|
}
|
|
@@ -63,7 +63,7 @@ function getFilePathRelativeToUserRootDir(filePathAbsolute, userRootDir, alwaysR
|
|
|
63
63
|
return filePathRelativeToUserRootDir;
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
|
-
return
|
|
66
|
+
return filePathAbsoluteFilesystem;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isExternalLink = void 0;
|
|
4
|
+
function isExternalLink(url) {
|
|
5
|
+
return !url.startsWith('/') && !url.startsWith('.') && !url.startsWith('?') && url !== '';
|
|
6
|
+
}
|
|
7
|
+
exports.isExternalLink = isExternalLink;
|
|
@@ -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;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.onPageShow = exports.onPageHide = void 0;
|
|
4
|
+
function onPageHide(listener) {
|
|
5
|
+
window.addEventListener('visibilitychange', () => {
|
|
6
|
+
if (document.visibilityState === 'hidden') {
|
|
7
|
+
listener();
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
exports.onPageHide = onPageHide;
|
|
12
|
+
function onPageShow(listener) {
|
|
13
|
+
window.addEventListener('visibilitychange', () => {
|
|
14
|
+
if (document.visibilityState === 'visible') {
|
|
15
|
+
listener();
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
exports.onPageShow = onPageShow;
|
|
@@ -52,7 +52,7 @@ function parseUrl(url, baseServer) {
|
|
|
52
52
|
const searchAll = {};
|
|
53
53
|
Array.from(new URLSearchParams(searchOriginal || '')).forEach(([key, val]) => {
|
|
54
54
|
search[key] = val;
|
|
55
|
-
searchAll[key] = [...(searchAll[key]
|
|
55
|
+
searchAll[key] = [...(searchAll.hasOwnProperty(key) ? searchAll[key] : []), val];
|
|
56
56
|
});
|
|
57
57
|
// Origin + pathname
|
|
58
58
|
const { origin, pathname: pathnameResolved } = parsePathname(urlWithoutHashNorSearch, baseServer);
|
|
@@ -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.
|
|
5
|
+
const PROJECT_VERSION = '0.4.145-commit-2520555';
|
|
6
6
|
const projectInfo = {
|
|
7
7
|
projectName: 'Vike',
|
|
8
8
|
projectVersion: PROJECT_VERSION,
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.truncateString = void 0;
|
|
4
|
-
|
|
7
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
8
|
+
const assert_js_1 = require("./assert.js");
|
|
9
|
+
function truncateString(str, lenMax) {
|
|
10
|
+
const lenMaxReal = lenMax - 3;
|
|
11
|
+
(0, assert_js_1.assert)(lenMaxReal >= 1); // Show at least one character before the ellipsis
|
|
5
12
|
if (str.length < lenMax) {
|
|
6
13
|
return str;
|
|
7
14
|
}
|
|
8
15
|
else {
|
|
9
|
-
//
|
|
10
|
-
// - So far, the str we pass to truncateString(str)
|
|
11
|
-
str = str.substring(0,
|
|
12
|
-
|
|
13
|
-
if (dim)
|
|
14
|
-
ellipsis = dim(ellipsis);
|
|
16
|
+
// Breaks ANSI codes.
|
|
17
|
+
// - So far, the `str` we pass to truncateString(str) is always expected to not contain any ANSI code
|
|
18
|
+
str = str.substring(0, lenMaxReal);
|
|
19
|
+
const ellipsis = picocolors_1.default.dim('...');
|
|
15
20
|
str = str + ellipsis;
|
|
16
21
|
return str;
|
|
17
22
|
}
|
|
@@ -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,12 +16,12 @@ 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,
|
|
22
23
|
_baseServer: baseServer,
|
|
23
24
|
_isProduction: isProd,
|
|
24
|
-
// TODO: use GlobalContext instead
|
|
25
25
|
_pageFilesAll: pageFilesAll,
|
|
26
26
|
_pageConfigs: pageConfigs,
|
|
27
27
|
_pageConfigGlobal: pageConfigGlobal,
|
|
@@ -29,7 +29,6 @@ async function createPageContext(pageContextBase) {
|
|
|
29
29
|
_pageRoutes: pageRoutes,
|
|
30
30
|
_onBeforeRouteHook: onBeforeRouteHook
|
|
31
31
|
};
|
|
32
|
-
objectAssign(pageContext, pageContextBase);
|
|
33
32
|
addUrlComputedProps(pageContext);
|
|
34
33
|
return pageContext;
|
|
35
34
|
}
|
|
@@ -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();
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { getBaseServer };
|
|
2
|
+
declare function getBaseServer(): string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export { getBaseServer };
|
|
1
2
|
import { assert } from '../server-routing-runtime/utils.js';
|
|
2
|
-
|
|
3
|
+
function getBaseServer() {
|
|
3
4
|
// @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
4
5
|
const baseServer = import.meta.env.BASE_SERVER;
|
|
5
6
|
assert(isBaseServer(baseServer));
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export { getPageContextFromHooks_firstRender };
|
|
2
|
+
export { getPageContextFromHooks_uponNavigation };
|
|
3
|
+
export { getPageContextFromHooks_errorPage };
|
|
4
|
+
export { isAlreadyServerSideRouted };
|
|
5
|
+
export type { PageContextFromHooks };
|
|
6
|
+
import type { PageContextExports, PageFile } from '../../shared/getPageFiles.js';
|
|
7
|
+
import type { PageContextUrlComputedPropsInternal } from '../../shared/addUrlComputedProps.js';
|
|
8
|
+
import type { PageContextForRoute } from '../../shared/route/index.js';
|
|
9
|
+
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
10
|
+
import type { PageContextForPassToClientWarning } from '../shared/getPageContextProxyForUser.js';
|
|
11
|
+
/** - pageContext set by user hooks
|
|
12
|
+
* - pageContext set by loadPageFilesClientSide()
|
|
13
|
+
* - misc:
|
|
14
|
+
* - pageContext.isHydration
|
|
15
|
+
* - pageContext._pageId
|
|
16
|
+
* - pageContext._hasPageContextFromClient
|
|
17
|
+
* - pageContext._hasPageContextFromServer
|
|
18
|
+
*/
|
|
19
|
+
type PageContextFromHooks = {
|
|
20
|
+
_pageId: string;
|
|
21
|
+
isHydration: boolean;
|
|
22
|
+
_pageFilesLoaded: PageFile[];
|
|
23
|
+
} & PageContextExports & PageContextForPassToClientWarning;
|
|
24
|
+
type PageContext = PageContextUrlComputedPropsInternal & PageContextForRoute & {
|
|
25
|
+
_allPageIds: string[];
|
|
26
|
+
_pageFilesAll: PageFile[];
|
|
27
|
+
_pageConfigs: PageConfigRuntime[];
|
|
28
|
+
isBackwardNavigation: boolean | null;
|
|
29
|
+
};
|
|
30
|
+
declare function getPageContextFromHooks_firstRender(pageContext: {
|
|
31
|
+
urlOriginal: string;
|
|
32
|
+
} & PageContext): Promise<PageContextFromHooks>;
|
|
33
|
+
declare function getPageContextFromHooks_errorPage(pageContext: {
|
|
34
|
+
urlOriginal: string;
|
|
35
|
+
} & PageContext): Promise<PageContextFromHooks>;
|
|
36
|
+
declare function getPageContextFromHooks_uponNavigation(pageContext: {
|
|
37
|
+
_pageId: string;
|
|
38
|
+
} & PageContext): Promise<PageContextFromHooks>;
|
|
39
|
+
declare function isAlreadyServerSideRouted(err: unknown): boolean;
|