vike 0.4.229-commit-58f7ed0 → 0.4.229-commit-5da80bf
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/client/server-routing-runtime/utils.js +1 -0
- package/dist/cjs/client/shared/{preparePageContextForUserConsumptionClientSide.js → preparePageContextForPublicUsageClientShared.js} +15 -19
- package/dist/cjs/node/api/build.js +1 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
- package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +42 -38
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +13 -27
- package/dist/cjs/node/runtime/html/serializeContext.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -1
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +6 -9
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +11 -0
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
- package/dist/cjs/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +10 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
- package/dist/cjs/node/runtime/renderPage.js +9 -7
- package/dist/cjs/node/runtime/utils.js +1 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -1
- package/dist/cjs/shared/addIs404ToPageProps.js +0 -7
- package/dist/cjs/shared/createGlobalContextShared.js +37 -8
- package/dist/cjs/shared/createPageContextShared.js +16 -11
- package/dist/cjs/shared/getPageContext.js +3 -3
- package/dist/cjs/shared/getPageContextUrlComputed.js +2 -36
- package/dist/cjs/shared/getProxyForPublicUsage.js +106 -0
- package/dist/cjs/shared/hooks/execHook.js +164 -0
- package/dist/cjs/shared/hooks/getHook.js +23 -4
- package/dist/cjs/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +54 -47
- package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +10 -0
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +75 -0
- package/dist/cjs/shared/route/abort.js +2 -2
- package/dist/cjs/shared/route/executeGuardHook.js +4 -9
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +4 -3
- package/dist/cjs/shared/route/index.js +2 -4
- package/dist/cjs/shared/route/loadPageRoutes.js +6 -0
- package/dist/cjs/shared/route/resolveRouteFunction.js +14 -10
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/objectAssign.js +3 -3
- package/dist/cjs/utils/objectDefineProperty.js +1 -1
- package/dist/esm/client/client-routing-runtime/{createPageContext.d.ts → createPageContextClientSide.d.ts} +21 -13
- package/dist/esm/client/client-routing-runtime/{createPageContext.js → createPageContextClientSide.js} +9 -11
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +400 -15
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +46 -44
- package/dist/esm/client/client-routing-runtime/globalContext.d.ts +11 -1
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +3 -8
- package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
- package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.d.ts +11 -0
- package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +135 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +79 -78
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +19 -13
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +12 -15
- package/dist/esm/client/server-routing-runtime/entry.js +4 -4
- package/dist/esm/client/server-routing-runtime/globalContext.d.ts +11 -1
- package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.d.ts +9 -0
- package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
- package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/server-routing-runtime/utils.js +1 -0
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +11 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +3 -3
- package/dist/esm/client/shared/executeOnRenderClientHook.js +4 -13
- package/dist/esm/client/shared/{loadUserFilesClientSide.d.ts → loadPageConfigsLazyClientSide.d.ts} +2 -2
- package/dist/esm/client/shared/{loadUserFilesClientSide.js → loadPageConfigsLazyClientSide.js} +4 -4
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +11 -0
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +40 -0
- package/dist/esm/node/api/build.js +1 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
- package/dist/esm/node/plugin/shared/loggerNotProd.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +37 -73
- package/dist/esm/node/prerender/runPrerender.js +42 -38
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +46 -251
- package/dist/esm/node/runtime/globalContext.js +14 -28
- package/dist/esm/node/runtime/html/serializeContext.d.ts +1 -1
- package/dist/esm/node/runtime/html/serializeContext.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +0 -1
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +26 -41
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +7 -10
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +12 -0
- package/dist/esm/node/runtime/renderPage/execHookServer.js +9 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -3
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +4 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
- package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.d.ts → loadPageConfigsLazyServerSide.d.ts} +6 -6
- package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +20 -0
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +8 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +38 -74
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
- package/dist/esm/node/runtime/renderPage.d.ts +21 -39
- package/dist/esm/node/runtime/renderPage.js +9 -7
- package/dist/esm/node/runtime/utils.d.ts +1 -1
- package/dist/esm/node/runtime/utils.js +1 -1
- package/dist/esm/shared/NOT_SERIALIZABLE.js +0 -1
- package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -6
- package/dist/esm/shared/addIs404ToPageProps.js +1 -8
- package/dist/esm/shared/createGlobalContextShared.d.ts +28 -6
- package/dist/esm/shared/createGlobalContextShared.js +37 -8
- package/dist/esm/shared/createPageContextShared.d.ts +7 -6
- package/dist/esm/shared/createPageContextShared.js +17 -12
- package/dist/esm/shared/getPageContext.d.ts +1 -1
- package/dist/esm/shared/getPageContext.js +1 -1
- package/dist/esm/shared/getPageContextUrlComputed.d.ts +2 -5
- package/dist/esm/shared/getPageContextUrlComputed.js +3 -37
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/getProxyForPublicUsage.d.ts +12 -0
- package/dist/esm/shared/getProxyForPublicUsage.js +104 -0
- package/dist/esm/shared/hooks/execHook.d.ts +63 -0
- package/dist/esm/shared/hooks/execHook.js +162 -0
- package/dist/esm/shared/hooks/getHook.d.ts +10 -11
- package/dist/esm/shared/hooks/getHook.js +23 -4
- package/dist/esm/shared/page-configs/Config.d.ts +11 -4
- package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.d.ts → getUserFriendlyConfigs.d.ts} +8 -6
- package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +55 -48
- package/dist/esm/shared/prepareGlobalContextForPublicUsage.d.ts +7 -0
- package/dist/esm/shared/prepareGlobalContextForPublicUsage.js +8 -0
- package/dist/esm/shared/preparePageContextForPublicUsage.d.ts +12 -0
- package/dist/esm/shared/preparePageContextForPublicUsage.js +73 -0
- package/dist/esm/shared/route/abort.js +1 -1
- package/dist/esm/shared/route/executeGuardHook.d.ts +4 -3
- package/dist/esm/shared/route/executeGuardHook.js +4 -9
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +4 -3
- package/dist/esm/shared/route/index.js +2 -4
- package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -1
- package/dist/esm/shared/route/loadPageRoutes.js +7 -1
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
- package/dist/esm/shared/route/resolveRouteFunction.js +14 -10
- package/dist/esm/shared/types.d.ts +14 -4
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +3 -3
- package/dist/esm/utils/objectDefineProperty.d.ts +0 -1
- package/dist/esm/utils/objectDefineProperty.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/client/shared/getPageContextProxyForUser.js +0 -16
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -16
- package/dist/cjs/shared/getPageConfigsRuntime.js +0 -23
- package/dist/cjs/shared/hooks/executeHook.js +0 -87
- package/dist/cjs/shared/hooks/executeHookGeneric.js +0 -18
- package/dist/cjs/shared/preparePageContextForUserConsumption.js +0 -34
- package/dist/cjs/utils/getPublicProxy.js +0 -27
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +0 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +0 -14
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +0 -12
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +0 -44
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +0 -24
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -14
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +0 -14
- package/dist/esm/shared/getPageConfigsRuntime.js +0 -21
- package/dist/esm/shared/hooks/executeHook.d.ts +0 -21
- package/dist/esm/shared/hooks/executeHook.js +0 -85
- package/dist/esm/shared/hooks/executeHookGeneric.d.ts +0 -8
- package/dist/esm/shared/hooks/executeHookGeneric.js +0 -16
- package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +0 -5
- package/dist/esm/shared/preparePageContextForUserConsumption.js +0 -32
- package/dist/esm/utils/getPublicProxy.d.ts +0 -2
- package/dist/esm/utils/getPublicProxy.js +0 -25
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
export { createPageContextClientSide };
|
|
2
2
|
declare function createPageContextClientSide(): Promise<{
|
|
3
|
-
|
|
3
|
+
_isOriginalObject: true;
|
|
4
|
+
isPageContext: true;
|
|
5
|
+
} & {
|
|
6
|
+
isClientSide: true;
|
|
7
|
+
isPrerendering: false;
|
|
8
|
+
isHydration: true;
|
|
9
|
+
_globalContext: {
|
|
4
10
|
isGlobalContext: true;
|
|
11
|
+
_isOriginalObject: true;
|
|
5
12
|
_virtualFileExports: unknown;
|
|
6
13
|
_pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
7
14
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
8
15
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
9
16
|
_allPageIds: string[];
|
|
17
|
+
_userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
|
|
10
18
|
config: import("../../types/index.js").ConfigResolved;
|
|
11
|
-
pages:
|
|
19
|
+
pages: {
|
|
20
|
+
[k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
|
|
21
|
+
route: import("../../shared/page-configs/Config.js").Route;
|
|
22
|
+
isErrorPage?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
route?: undefined;
|
|
25
|
+
isErrorPage: true;
|
|
26
|
+
});
|
|
27
|
+
};
|
|
12
28
|
} & {
|
|
13
29
|
isClientSide: true;
|
|
14
30
|
} & object;
|
|
@@ -16,21 +32,11 @@ declare function createPageContextClientSide(): Promise<{
|
|
|
16
32
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
17
33
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
18
34
|
_allPageIds: string[];
|
|
19
|
-
isPrerendering: boolean;
|
|
20
|
-
isClientSide: boolean;
|
|
21
|
-
isHydration: true;
|
|
22
35
|
isBackwardNavigation: null;
|
|
23
36
|
_hasPageContextFromServer: true;
|
|
24
|
-
_hasPageContextFromClient: false;
|
|
25
37
|
} & {
|
|
26
38
|
pageId: string;
|
|
27
39
|
routeParams: Record<string, string>;
|
|
28
|
-
} & {
|
|
29
|
-
config: import("../../types/index.js").ConfigResolved;
|
|
30
|
-
_source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
|
|
31
|
-
_sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
|
|
32
|
-
_from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
|
|
33
|
-
isPageContext: true;
|
|
34
|
-
} & import("../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
|
|
40
|
+
} & import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & import("../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
|
|
35
41
|
_pageFilesLoaded: import("../../shared/getPageFiles.js").PageFile[];
|
|
36
42
|
}>;
|
|
@@ -1,35 +1,32 @@
|
|
|
1
1
|
export { createPageContextClientSide };
|
|
2
2
|
import { assertUsage, augmentType, objectAssign } from './utils.js';
|
|
3
3
|
import { getPageContextSerializedInHtml } from '../shared/getJsonSerializedInHtml.js';
|
|
4
|
-
import {
|
|
4
|
+
import { loadPageConfigsLazyClientSide } from '../shared/loadPageConfigsLazyClientSide.js';
|
|
5
5
|
import { getCurrentUrl } from '../shared/getCurrentUrl.js';
|
|
6
|
-
import { createPageContextShared } from '../../shared/createPageContextShared.js';
|
|
6
|
+
import { createPageContextObject, createPageContextShared } from '../../shared/createPageContextShared.js';
|
|
7
7
|
import { getGlobalContextClientInternal } from './globalContext.js';
|
|
8
8
|
const urlFirst = getCurrentUrl({ withoutHash: true });
|
|
9
9
|
async function createPageContextClientSide() {
|
|
10
10
|
const globalContext = await getGlobalContextClientInternal();
|
|
11
|
-
const pageContextCreated =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const pageContextCreated = createPageContextObject();
|
|
12
|
+
objectAssign(pageContextCreated, {
|
|
13
|
+
isClientSide: true,
|
|
14
|
+
isPrerendering: false,
|
|
15
|
+
isHydration: true,
|
|
16
|
+
_globalContext: globalContext,
|
|
16
17
|
_pageFilesAll: globalContext._pageFilesAll,
|
|
17
18
|
_pageConfigs: globalContext._pageConfigs,
|
|
18
19
|
_pageConfigGlobal: globalContext._pageConfigGlobal,
|
|
19
20
|
_allPageIds: globalContext._allPageIds,
|
|
20
|
-
isPrerendering: false,
|
|
21
|
-
isClientSide: true,
|
|
22
|
-
isHydration: true,
|
|
23
21
|
isBackwardNavigation: null,
|
|
24
|
-
_hasPageContextFromServer: true
|
|
25
|
-
|
|
26
|
-
};
|
|
22
|
+
_hasPageContextFromServer: true
|
|
23
|
+
});
|
|
27
24
|
objectAssign(pageContextCreated, getPageContextSerializedInHtml());
|
|
28
25
|
// Sets pageContext.config to global configs
|
|
29
|
-
const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal);
|
|
26
|
+
const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._userFriendlyConfigsGlobal);
|
|
30
27
|
augmentType(pageContextCreated, pageContextAugmented);
|
|
31
28
|
// Sets pageContext.config to local configs (overrides the pageContext.config set above)
|
|
32
|
-
objectAssign(pageContextCreated, await
|
|
29
|
+
objectAssign(pageContextCreated, await loadPageConfigsLazyClientSide(pageContextCreated.pageId, pageContextCreated._pageFilesAll, pageContextCreated._pageConfigs, pageContextCreated._pageConfigGlobal));
|
|
33
30
|
assertPristineUrl();
|
|
34
31
|
return pageContextCreated;
|
|
35
32
|
}
|
|
@@ -2,9 +2,10 @@ import { assertServerRouting } from '../../utils/assertRoutingType.js';
|
|
|
2
2
|
assertServerRouting();
|
|
3
3
|
import { createPageContextClientSide } from './createPageContextClientSide.js';
|
|
4
4
|
import { executeOnRenderClientHook } from '../shared/executeOnRenderClientHook.js';
|
|
5
|
-
import { assertHook } from '../../shared/hooks/getHook.js';
|
|
6
5
|
import { assertSingleInstance_onClientEntryServerRouting } from './utils.js';
|
|
7
6
|
import { removeFoucBuster } from '../shared/removeFoucBuster.js';
|
|
7
|
+
import { execHook } from '../../shared/hooks/execHook.js';
|
|
8
|
+
import { preparePageContextForPublicUsageClient } from './preparePageContextForPublicUsageClient.js';
|
|
8
9
|
// @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
9
10
|
const isProd = import.meta.env.PROD;
|
|
10
11
|
assertSingleInstance_onClientEntryServerRouting(isProd);
|
|
@@ -13,7 +14,6 @@ if (import.meta.env.DEV)
|
|
|
13
14
|
hydrate();
|
|
14
15
|
async function hydrate() {
|
|
15
16
|
const pageContext = await createPageContextClientSide();
|
|
16
|
-
await executeOnRenderClientHook(pageContext,
|
|
17
|
-
|
|
18
|
-
await pageContext.exports.onHydrationEnd?.(pageContext);
|
|
17
|
+
await executeOnRenderClientHook(pageContext, preparePageContextForPublicUsageClient);
|
|
18
|
+
await execHook('onHydrationEnd', pageContext, preparePageContextForPublicUsageClient);
|
|
19
19
|
}
|
|
@@ -5,13 +5,23 @@ type GlobalContextClientWithServerRouting = GlobalContextSharedPublic & Pick<Glo
|
|
|
5
5
|
type GlobalContextClientInternal = Awaited<ReturnType<typeof getGlobalContextClientInternal>>;
|
|
6
6
|
declare const getGlobalContextClientInternal: () => Promise<{
|
|
7
7
|
isGlobalContext: true;
|
|
8
|
+
_isOriginalObject: true;
|
|
8
9
|
_virtualFileExports: unknown;
|
|
9
10
|
_pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
10
11
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
11
12
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
12
13
|
_allPageIds: string[];
|
|
14
|
+
_userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
|
|
13
15
|
config: import("../../types/index.js").ConfigResolved;
|
|
14
|
-
pages:
|
|
16
|
+
pages: {
|
|
17
|
+
[k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
|
|
18
|
+
route: import("../../shared/page-configs/Config.js").Route;
|
|
19
|
+
isErrorPage?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
route?: undefined;
|
|
22
|
+
isErrorPage: true;
|
|
23
|
+
});
|
|
24
|
+
};
|
|
15
25
|
} & {
|
|
16
26
|
isClientSide: true;
|
|
17
27
|
} & object>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { preparePageContextForPublicUsageClient };
|
|
2
|
+
export type { PageContextForPublicUsageClient };
|
|
3
|
+
import type { PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
4
|
+
import type { PageContextInternalClient_ServerRouting } from '../../shared/types.js';
|
|
5
|
+
import type { PageContextPrepareMinimum } from '../../shared/preparePageContextForPublicUsage.js';
|
|
6
|
+
type PageContextForPublicUsageClient = PageContextPrepareMinimum & PageContextInternalClient_ServerRouting & PageConfigUserFriendlyOld;
|
|
7
|
+
declare function preparePageContextForPublicUsageClient<PageContext extends PageContextForPublicUsageClient>(pageContext: PageContext): PageContext & {
|
|
8
|
+
Page: unknown;
|
|
9
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { preparePageContextForPublicUsageClient };
|
|
2
|
+
import { preparePageContextForPublicUsageClientShared } from '../shared/preparePageContextForPublicUsageClientShared.js';
|
|
3
|
+
function preparePageContextForPublicUsageClient(pageContext) {
|
|
4
|
+
return preparePageContextForPublicUsageClientShared(pageContext);
|
|
5
|
+
}
|
|
@@ -15,3 +15,4 @@ export * from '../../utils/slice.js';
|
|
|
15
15
|
export * from '../../utils/unique.js'; // Only used by Server Routing (not needed for Client Routing)
|
|
16
16
|
export * from '../../utils/getPropAccessNotation.js';
|
|
17
17
|
export * from '../../utils/augmentType.js';
|
|
18
|
+
export * from '../../utils/changeEnumerable.js';
|
|
@@ -4,13 +4,23 @@ export { createGetGlobalContextClient };
|
|
|
4
4
|
import { type GlobalContextShared } from '../../shared/createGlobalContextShared.js';
|
|
5
5
|
declare function createGetGlobalContextClient<GlobalContextAddendum extends object>(virtualFileExports: unknown, isClientRouting: boolean, addGlobalContext?: (globalContext: GlobalContextShared) => Promise<GlobalContextAddendum>): () => Promise<{
|
|
6
6
|
isGlobalContext: true;
|
|
7
|
+
_isOriginalObject: true;
|
|
7
8
|
_virtualFileExports: unknown;
|
|
8
9
|
_pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
9
10
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
10
11
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
11
12
|
_allPageIds: string[];
|
|
13
|
+
_userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
|
|
12
14
|
config: import("../../types/index.js").ConfigResolved;
|
|
13
|
-
pages:
|
|
15
|
+
pages: {
|
|
16
|
+
[k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
|
|
17
|
+
route: import("../../shared/page-configs/Config.js").Route;
|
|
18
|
+
isErrorPage?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
route?: undefined;
|
|
21
|
+
isErrorPage: true;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
14
24
|
} & Awaited<{
|
|
15
25
|
/**
|
|
16
26
|
* Whether the environment is client-side or server-side / pre-rendering.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { executeOnRenderClientHook };
|
|
2
2
|
export type { PageContextBeforeRenderClient };
|
|
3
3
|
import type { PageFile, PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { PageContextForPublicUsageClientShared } from './preparePageContextForPublicUsageClientShared.js';
|
|
5
5
|
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
6
6
|
type PageContextBeforeRenderClient = {
|
|
7
7
|
_pageFilesLoaded: PageFile[];
|
|
@@ -9,5 +9,5 @@ type PageContextBeforeRenderClient = {
|
|
|
9
9
|
urlPathname?: string;
|
|
10
10
|
pageId: string;
|
|
11
11
|
_pageConfigs: PageConfigRuntime[];
|
|
12
|
-
} & PageConfigUserFriendlyOld &
|
|
13
|
-
declare function executeOnRenderClientHook<
|
|
12
|
+
} & PageConfigUserFriendlyOld & PageContextForPublicUsageClientShared;
|
|
13
|
+
declare function executeOnRenderClientHook<PageContext extends PageContextBeforeRenderClient>(pageContext: PageContext, prepareForPublicUsage: (pageConfig: PageContext) => PageContext): Promise<void>;
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
export { executeOnRenderClientHook };
|
|
2
2
|
import { assert, assertUsage } from '../server-routing-runtime/utils.js';
|
|
3
3
|
import { getHookFromPageContext } from '../../shared/hooks/getHook.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
async function executeOnRenderClientHook(pageContext, isClientRouting) {
|
|
7
|
-
const pageContextForUserConsumption = preparePageContextForUserConsumptionClientSide(pageContext, isClientRouting);
|
|
4
|
+
import { execHookSingle } from '../../shared/hooks/execHook.js';
|
|
5
|
+
async function executeOnRenderClientHook(pageContext, prepareForPublicUsage) {
|
|
8
6
|
let hook = null;
|
|
9
|
-
let hookName;
|
|
10
7
|
{
|
|
11
8
|
const renderHook = getHookFromPageContext(pageContext, 'render');
|
|
12
9
|
hook = renderHook;
|
|
13
|
-
hookName = 'render';
|
|
14
10
|
}
|
|
15
11
|
{
|
|
16
12
|
const renderHook = getHookFromPageContext(pageContext, 'onRenderClient');
|
|
17
13
|
if (renderHook) {
|
|
18
14
|
hook = renderHook;
|
|
19
|
-
hookName = 'onRenderClient';
|
|
20
15
|
}
|
|
21
16
|
}
|
|
22
17
|
if (!hook) {
|
|
@@ -42,16 +37,12 @@ async function executeOnRenderClientHook(pageContext, isClientRouting) {
|
|
|
42
37
|
assertUsage(false, errMsg);
|
|
43
38
|
}
|
|
44
39
|
}
|
|
45
|
-
assert(hook);
|
|
46
|
-
const renderHook = hook.hookFn;
|
|
47
|
-
assert(hookName);
|
|
48
40
|
// We don't use a try-catch wrapper because rendering errors are usually handled by the UI framework. (E.g. React's Error Boundaries.)
|
|
49
|
-
|
|
50
|
-
assertUsage(hookResult === undefined, `The ${hookName}() hook defined by ${hook.hookFilePath} isn't allowed to return a value`);
|
|
41
|
+
await execHookSingle(hook, pageContext, prepareForPublicUsage);
|
|
51
42
|
}
|
|
52
43
|
function getUrlToShowToUser(pageContext) {
|
|
53
44
|
let url;
|
|
54
|
-
// try/catch to avoid passToClient assertUsage() (although: this may not be needed anymore, since we're now accessing pageContext and not
|
|
45
|
+
// try/catch to avoid passToClient assertUsage() (although: this may not be needed anymore, since we're now accessing pageContext and not pageContextForPublicUsage)
|
|
55
46
|
try {
|
|
56
47
|
url =
|
|
57
48
|
// Client Routing
|
package/dist/esm/client/shared/{loadUserFilesClientSide.d.ts → loadPageConfigsLazyClientSide.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { loadPageConfigsLazyClientSide };
|
|
2
2
|
export { isErrorFetchingStaticAssets };
|
|
3
3
|
export type { PageContextUserFiles };
|
|
4
4
|
import { type PageFile, type PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
@@ -11,5 +11,5 @@ type PageContextUserFiles = {
|
|
|
11
11
|
_pageConfigs: PageConfigRuntime[];
|
|
12
12
|
_pageConfigGlobal: PageConfigGlobalRuntime;
|
|
13
13
|
};
|
|
14
|
-
declare function
|
|
14
|
+
declare function loadPageConfigsLazyClientSide(pageId: string, pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime): Promise<PageContextUserFilesLoaded>;
|
|
15
15
|
declare function isErrorFetchingStaticAssets(err: unknown): boolean;
|
package/dist/esm/client/shared/{loadUserFilesClientSide.js → loadPageConfigsLazyClientSide.js}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { loadPageConfigsLazyClientSide };
|
|
2
2
|
export { isErrorFetchingStaticAssets };
|
|
3
3
|
import { getPageFilesClientSide } from '../../shared/getPageFiles.js';
|
|
4
|
-
import {
|
|
4
|
+
import { getUserFriendlyConfigsPageLazy } from '../../shared/page-configs/getUserFriendlyConfigs.js';
|
|
5
5
|
import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
|
|
6
6
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
7
7
|
import { objectAssign } from '../server-routing-runtime/utils.js';
|
|
8
8
|
const stamp = '__whileFetchingAssets';
|
|
9
|
-
async function
|
|
9
|
+
async function loadPageConfigsLazyClientSide(pageId, pageFilesAll, pageConfigs, pageConfigGlobal) {
|
|
10
10
|
const pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
|
|
11
11
|
const pageConfig = findPageConfig(pageConfigs, pageId);
|
|
12
12
|
let pageConfigLoaded;
|
|
@@ -30,7 +30,7 @@ async function loadUserFilesClientSide(pageId, pageFilesAll, pageConfigs, pageCo
|
|
|
30
30
|
}
|
|
31
31
|
throw err;
|
|
32
32
|
}
|
|
33
|
-
const pageContextExports =
|
|
33
|
+
const pageContextExports = getUserFriendlyConfigsPageLazy(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
|
|
34
34
|
const pageContextAddendum = {};
|
|
35
35
|
objectAssign(pageContextAddendum, pageContextExports);
|
|
36
36
|
objectAssign(pageContextAddendum, { _pageFilesLoaded: pageFilesClientSide });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { preparePageContextForPublicUsageClientShared };
|
|
2
|
+
export { preparePageContextForPublicUsageClientMinimal };
|
|
3
|
+
export type { PageContextForPublicUsageClientShared };
|
|
4
|
+
import type { PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
5
|
+
import { type PageContextPrepareMinimum } from '../../shared/preparePageContextForPublicUsage.js';
|
|
6
|
+
import type { PageContextInternalClient } from '../../shared/types.js';
|
|
7
|
+
type PageContextForPublicUsageClientShared = PageContextPrepareMinimum & PageContextInternalClient & PageConfigUserFriendlyOld;
|
|
8
|
+
declare function preparePageContextForPublicUsageClientShared<PageContext extends PageContextForPublicUsageClientShared>(pageContext: PageContext): PageContext & {
|
|
9
|
+
Page: unknown;
|
|
10
|
+
};
|
|
11
|
+
declare function preparePageContextForPublicUsageClientMinimal<PageContext extends PageContextPrepareMinimum>(pageContext: PageContext): never;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export { preparePageContextForPublicUsageClientShared };
|
|
2
|
+
export { preparePageContextForPublicUsageClientMinimal };
|
|
3
|
+
import { objectAssign } from '../server-routing-runtime/utils.js';
|
|
4
|
+
import { assertPropertyGetters, preparePageContextForPublicUsage } from '../../shared/preparePageContextForPublicUsage.js';
|
|
5
|
+
function preparePageContextForPublicUsageClientShared(pageContext) {
|
|
6
|
+
// TODO/now use proxy
|
|
7
|
+
const Page = pageContext.config?.Page ||
|
|
8
|
+
// TODO/next-major-release: remove
|
|
9
|
+
pageContext.exports?.Page;
|
|
10
|
+
objectAssign(pageContext, { Page });
|
|
11
|
+
// TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
|
|
12
|
+
assertPropertyGetters(pageContext);
|
|
13
|
+
// TODO/next-major-release: remove
|
|
14
|
+
// - Requires https://github.com/vikejs/vike-vue/issues/198
|
|
15
|
+
// - Last time I tried to remove it (https://github.com/vikejs/vike/commit/705fd23598d9d69bf46a52c8550216cd7117ce71) the tests were failing as expected: only the Vue integrations that used shallowReactive() failed.
|
|
16
|
+
supportVueReactiviy(pageContext);
|
|
17
|
+
return preparePageContextForPublicUsageClientMinimal(pageContext);
|
|
18
|
+
}
|
|
19
|
+
function preparePageContextForPublicUsageClientMinimal(pageContext) {
|
|
20
|
+
const pageContextPublic = preparePageContextForPublicUsage(pageContext);
|
|
21
|
+
return pageContextPublic;
|
|
22
|
+
}
|
|
23
|
+
// With Vue + Cient Routing, the `pageContext` is made reactive:
|
|
24
|
+
// ```js
|
|
25
|
+
// import { reactive } from 'vue'
|
|
26
|
+
// // See /examples/vue-full/renderer/createVueApp.ts
|
|
27
|
+
// const pageContextReactive = reactive(pageContext)
|
|
28
|
+
// ```
|
|
29
|
+
function supportVueReactiviy(pageContext) {
|
|
30
|
+
resolveGetters(pageContext);
|
|
31
|
+
}
|
|
32
|
+
// Remove propery descriptor getters because they break Vue's reactivity.
|
|
33
|
+
// E.g. resolve the `pageContext.urlPathname` getter.
|
|
34
|
+
function resolveGetters(pageContext) {
|
|
35
|
+
return;
|
|
36
|
+
Object.entries(pageContext).forEach(([key, val]) => {
|
|
37
|
+
delete pageContext[key];
|
|
38
|
+
pageContext[key] = val;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export { build };
|
|
2
2
|
import { prepareViteApiCall } from './prepareViteApiCall.js';
|
|
3
3
|
import { build as buildVite, version, createBuilder } from 'vite';
|
|
4
|
-
import assert from 'assert';
|
|
5
4
|
import { isVikeCli } from '../cli/context.js';
|
|
6
5
|
import { isPrerendering } from '../prerender/context.js';
|
|
7
|
-
import { assertVersion } from './utils.js';
|
|
6
|
+
import { assert, assertVersion } from './utils.js';
|
|
8
7
|
/**
|
|
9
8
|
* Programmatically trigger `$ vike build`
|
|
10
9
|
*
|
|
@@ -56,6 +56,10 @@ const configDefinitionsBuiltIn = {
|
|
|
56
56
|
data: {
|
|
57
57
|
env: { server: true }
|
|
58
58
|
},
|
|
59
|
+
onData: {
|
|
60
|
+
env: { server: true, client: true },
|
|
61
|
+
cumulative: true
|
|
62
|
+
},
|
|
59
63
|
iKnowThePerformanceRisksOfAsyncRouteFunctions: {
|
|
60
64
|
env: { server: true, client: 'if-client-routing' },
|
|
61
65
|
eager: true
|
|
@@ -11,7 +11,7 @@ export type { VikeConfigObject };
|
|
|
11
11
|
import type { PageConfigGlobalBuildTime, ConfigValueSource, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
12
12
|
import { type ConfigDefinitions, type ConfigDefinitionInternal } from './getVikeConfig/configDefinitionsBuiltIn.js';
|
|
13
13
|
import type { ResolvedConfig, UserConfig } from 'vite';
|
|
14
|
-
import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from '../../../../../shared/page-configs/
|
|
14
|
+
import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from '../../../../../shared/page-configs/getUserFriendlyConfigs.js';
|
|
15
15
|
import { type PlusFile } from './getVikeConfig/getPlusFilesAll.js';
|
|
16
16
|
type VikeConfigObject = {
|
|
17
17
|
pageConfigs: PageConfigBuildTime[];
|
|
@@ -21,7 +21,7 @@ import { resolvePointerImport } from './getVikeConfig/resolvePointerImport.js';
|
|
|
21
21
|
import { getFilePathResolved } from '../../../shared/getFilePath.js';
|
|
22
22
|
import { getConfigValueBuildTime } from '../../../../../shared/page-configs/getConfigValueBuildTime.js';
|
|
23
23
|
import { assertExtensionsRequire } from './getVikeConfig/assertExtensions.js';
|
|
24
|
-
import {
|
|
24
|
+
import { getUserFriendlyConfigsGlobal, getUserFriendlyConfigsPageEager } from '../../../../../shared/page-configs/getUserFriendlyConfigs.js';
|
|
25
25
|
import { getConfigValuesBase, isJsonValue } from '../../../../../shared/page-configs/serialize/serializeConfigValues.js';
|
|
26
26
|
import { getPlusFilesAll } from './getVikeConfig/getPlusFilesAll.js';
|
|
27
27
|
import { getEnvVarObject } from '../../../shared/getEnvVarObject.js';
|
|
@@ -137,7 +137,7 @@ async function loadVikeConfig_withErrorHandling(userRootDir, isDev, vikeVitePlug
|
|
|
137
137
|
configDefinitions: {},
|
|
138
138
|
configValueSources: {}
|
|
139
139
|
},
|
|
140
|
-
global:
|
|
140
|
+
global: getUserFriendlyConfigsGlobal({ pageConfigGlobalValues: {} }),
|
|
141
141
|
pages: {},
|
|
142
142
|
vikeConfigDependencies: new Set()
|
|
143
143
|
};
|
|
@@ -158,13 +158,19 @@ async function loadVikeConfig(userRootDir, vikeVitePluginOptions) {
|
|
|
158
158
|
setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
|
|
159
159
|
// global
|
|
160
160
|
const pageConfigGlobalValues = getConfigValues(pageConfigGlobal);
|
|
161
|
-
const
|
|
161
|
+
const userFriendlyConfigsGlobal = getUserFriendlyConfigsGlobal({ pageConfigGlobalValues });
|
|
162
162
|
// pages
|
|
163
|
-
const
|
|
163
|
+
const userFriendlyConfigsPageEager = objectFromEntries(pageConfigs.map((pageConfig) => {
|
|
164
164
|
const pageConfigValues = getConfigValues(pageConfig, true);
|
|
165
|
-
return
|
|
165
|
+
return getUserFriendlyConfigsPageEager(pageConfigGlobalValues, pageConfig, pageConfigValues);
|
|
166
166
|
}));
|
|
167
|
-
return {
|
|
167
|
+
return {
|
|
168
|
+
pageConfigs,
|
|
169
|
+
pageConfigGlobal,
|
|
170
|
+
global: userFriendlyConfigsGlobal,
|
|
171
|
+
pages: userFriendlyConfigsPageEager,
|
|
172
|
+
vikeConfigDependencies: esbuildCache.vikeConfigDependencies
|
|
173
|
+
};
|
|
168
174
|
}
|
|
169
175
|
async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
|
|
170
176
|
const plusFilesAllOrdered = Object.values(plusFilesAll)
|
|
@@ -22,7 +22,7 @@ import { logWithVikeTag, logWithViteTag, logDirectly, applyViteSourceMapToStackT
|
|
|
22
22
|
import pc from '@brillout/picocolors';
|
|
23
23
|
import { setAlreadyLogged } from '../../runtime/renderPage/isNewError.js';
|
|
24
24
|
import { onRuntimeError } from '../../runtime/renderPage/loggerProd.js';
|
|
25
|
-
import { isUserHookError } from '../../../shared/hooks/
|
|
25
|
+
import { isUserHookError } from '../../../shared/hooks/execHook.js';
|
|
26
26
|
assertIsNotProductionRuntime();
|
|
27
27
|
overwriteRuntimeProductionLogger(logRuntimeError, logRuntimeInfo);
|
|
28
28
|
overwriteAssertProductionLogger(assertLogger);
|