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
|
@@ -9,17 +9,16 @@ const getHook_js_1 = require("../../../shared/hooks/getHook.js");
|
|
|
9
9
|
const utils_js_1 = require("../utils.js");
|
|
10
10
|
const stream_js_1 = require("../html/stream.js");
|
|
11
11
|
const assertPageContextProvidedByUser_js_1 = require("../../../shared/assertPageContextProvidedByUser.js");
|
|
12
|
-
const
|
|
12
|
+
const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
|
|
13
13
|
const assertHookReturnedObject_js_1 = require("../../../shared/assertHookReturnedObject.js");
|
|
14
14
|
const loggerRuntime_js_1 = require("./loggerRuntime.js");
|
|
15
15
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
16
|
-
const
|
|
16
|
+
const execHook_js_1 = require("../../../shared/hooks/execHook.js");
|
|
17
17
|
async function executeOnRenderHtmlHook(pageContext) {
|
|
18
|
-
const
|
|
19
|
-
(0, utils_js_1.objectAssign)(pageContext, { _renderHook:
|
|
20
|
-
(0,
|
|
21
|
-
const
|
|
22
|
-
const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
|
|
18
|
+
const hook = getRenderHook(pageContext);
|
|
19
|
+
(0, utils_js_1.objectAssign)(pageContext, { _renderHook: hook });
|
|
20
|
+
const { hookReturn } = await (0, execHook_js_1.execHookSingleWithReturn)(hook, pageContext, preparePageContextForPublicUsageServer_js_1.preparePageContextForPublicUsageServer);
|
|
21
|
+
const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturn, hook);
|
|
23
22
|
Object.assign(pageContext, pageContextProvidedByRenderHook);
|
|
24
23
|
(0, utils_js_1.objectAssign)(pageContext, { _pageContextPromise: pageContextPromise });
|
|
25
24
|
const onErrorWhileStreaming = (err) => {
|
|
@@ -34,7 +33,7 @@ async function executeOnRenderHtmlHook(pageContext) {
|
|
|
34
33
|
};
|
|
35
34
|
const htmlRender = await (0, renderHtml_js_1.renderDocumentHtml)(documentHtml, pageContext, onErrorWhileStreaming, injectFilter);
|
|
36
35
|
(0, utils_js_1.assert)(typeof htmlRender === 'string' || (0, stream_js_1.isStream)(htmlRender));
|
|
37
|
-
return { htmlRender, renderHook };
|
|
36
|
+
return { htmlRender, renderHook: hook };
|
|
38
37
|
}
|
|
39
38
|
function getRenderHook(pageContext) {
|
|
40
39
|
let hookFound;
|
|
@@ -54,10 +53,7 @@ function getRenderHook(pageContext) {
|
|
|
54
53
|
if (hook) {
|
|
55
54
|
(0, utils_js_1.assert)(hookName);
|
|
56
55
|
const { hookFilePath, hookFn, hookTimeout } = hook;
|
|
57
|
-
hookFound = {
|
|
58
|
-
hookFn,
|
|
59
|
-
renderHook: { hookFn, hookFilePath, hookName, hookTimeout }
|
|
60
|
-
};
|
|
56
|
+
hookFound = { hookFn, hookFilePath, hookName, hookTimeout };
|
|
61
57
|
}
|
|
62
58
|
}
|
|
63
59
|
if (!hookFound) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.loadPageConfigsLazyServerSide = loadPageConfigsLazyServerSide;
|
|
4
4
|
const getPageFiles_js_1 = require("../../../shared/getPageFiles.js");
|
|
5
|
-
const
|
|
5
|
+
const getUserFriendlyConfigs_js_1 = require("../../../shared/page-configs/getUserFriendlyConfigs.js");
|
|
6
6
|
const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide.js");
|
|
7
7
|
const utils_js_1 = require("../utils.js");
|
|
8
8
|
const getPageAssets_js_1 = require("./getPageAssets.js");
|
|
@@ -10,7 +10,7 @@ const debugPageFiles_js_1 = require("./debugPageFiles.js");
|
|
|
10
10
|
const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig.js");
|
|
11
11
|
const analyzePage_js_1 = require("./analyzePage.js");
|
|
12
12
|
const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
|
|
13
|
-
async function
|
|
13
|
+
async function loadPageConfigsLazyServerSide(pageContext) {
|
|
14
14
|
const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
15
15
|
const globalContext = pageContext._globalContext;
|
|
16
16
|
const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
|
|
@@ -102,7 +102,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageConfigGlobal, pag
|
|
|
102
102
|
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
|
|
103
103
|
const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
|
|
104
104
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
105
|
-
const pageContextExports = (0,
|
|
105
|
+
const pageContextExports = (0, getUserFriendlyConfigs_js_1.getUserFriendlyConfigsPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
|
|
106
106
|
return {
|
|
107
107
|
pageContextExports,
|
|
108
108
|
pageFilesLoaded: pageFilesServerSide
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preparePageContextForPublicUsageServer = preparePageContextForPublicUsageServer;
|
|
4
|
+
const preparePageContextForPublicUsage_js_1 = require("../../../shared/preparePageContextForPublicUsage.js");
|
|
5
|
+
function preparePageContextForPublicUsageServer(pageContext) {
|
|
6
|
+
// TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
|
|
7
|
+
(0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
|
|
8
|
+
pageContext = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
|
|
9
|
+
return pageContext;
|
|
10
|
+
}
|
|
@@ -10,12 +10,12 @@ const renderHtml_js_1 = require("../html/renderHtml.js");
|
|
|
10
10
|
const utils_js_1 = require("../utils.js");
|
|
11
11
|
const serializeContext_js_1 = require("../html/serializeContext.js");
|
|
12
12
|
const createHttpResponse_js_1 = require("./createHttpResponse.js");
|
|
13
|
-
const
|
|
13
|
+
const loadPageConfigsLazyServerSide_js_1 = require("./loadPageConfigsLazyServerSide.js");
|
|
14
14
|
const executeOnRenderHtmlHook_js_1 = require("./executeOnRenderHtmlHook.js");
|
|
15
15
|
const executeOnBeforeRenderAndDataHooks_js_1 = require("./executeOnBeforeRenderAndDataHooks.js");
|
|
16
16
|
const loggerRuntime_js_1 = require("./loggerRuntime.js");
|
|
17
17
|
const isNewError_js_1 = require("./isNewError.js");
|
|
18
|
-
const
|
|
18
|
+
const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
|
|
19
19
|
const executeGuardHook_js_1 = require("../../../shared/route/executeGuardHook.js");
|
|
20
20
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
21
21
|
const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
|
|
@@ -26,9 +26,9 @@ async function renderPageAlreadyRouted(pageContext) {
|
|
|
26
26
|
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContext, 'pageId', 'string'));
|
|
27
27
|
const isError = pageContext.is404 || !!pageContext.errorWhileRendering;
|
|
28
28
|
(0, utils_js_1.assert)(isError === (pageContext.pageId === (0, error_page_js_1.getErrorPageId)(pageContext._pageFilesAll, pageContext._pageConfigs)));
|
|
29
|
-
(0, utils_js_1.objectAssign)(pageContext, await (0,
|
|
29
|
+
(0, utils_js_1.objectAssign)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
|
|
30
30
|
if (!isError) {
|
|
31
|
-
await (0, executeGuardHook_js_1.executeGuardHook)(pageContext, (pageContext) => (0,
|
|
31
|
+
await (0, executeGuardHook_js_1.executeGuardHook)(pageContext, (pageContext) => (0, preparePageContextForPublicUsageServer_js_1.preparePageContextForPublicUsageServer)(pageContext));
|
|
32
32
|
}
|
|
33
33
|
if (!isError) {
|
|
34
34
|
await (0, executeOnBeforeRenderAndDataHooks_js_1.executeOnBeforeRenderAndDataHooks)(pageContext);
|
|
@@ -65,7 +65,7 @@ async function prerenderPage(pageContext) {
|
|
|
65
65
|
});
|
|
66
66
|
/* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
|
|
67
67
|
* - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
|
|
68
|
-
await executeGuardHook(pageContext, (pageContext) =>
|
|
68
|
+
await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext))
|
|
69
69
|
*/
|
|
70
70
|
await (0, executeOnBeforeRenderAndDataHooks_js_1.executeOnBeforeRenderAndDataHooks)(pageContext);
|
|
71
71
|
const { htmlRender, renderHook } = await (0, executeOnRenderHtmlHook_js_1.executeOnRenderHtmlHook)(pageContext);
|
|
@@ -22,8 +22,9 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
22
22
|
const serializeContext_js_1 = require("./html/serializeContext.js");
|
|
23
23
|
const error_page_js_1 = require("../../shared/error-page.js");
|
|
24
24
|
const handleErrorWithoutErrorPage_js_1 = require("./renderPage/handleErrorWithoutErrorPage.js");
|
|
25
|
-
const
|
|
25
|
+
const loadPageConfigsLazyServerSide_js_1 = require("./renderPage/loadPageConfigsLazyServerSide.js");
|
|
26
26
|
const resolveRedirects_js_1 = require("./renderPage/resolveRedirects.js");
|
|
27
|
+
const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
|
|
27
28
|
const globalObject = (0, utils_js_1.getGlobalObject)('runtime/renderPage.ts', {
|
|
28
29
|
httpRequestsCount: 0
|
|
29
30
|
});
|
|
@@ -81,8 +82,8 @@ async function renderPagePrepare(pageContextInit, httpRequestId) {
|
|
|
81
82
|
else {
|
|
82
83
|
// `globalContext` now contains the entire Vike config and getVikeConfig() isn't called anymore for this request.
|
|
83
84
|
}
|
|
84
|
-
const { globalContext
|
|
85
|
-
const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext,
|
|
85
|
+
const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
|
|
86
|
+
const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, httpRequestId);
|
|
86
87
|
// Check Base URL
|
|
87
88
|
{
|
|
88
89
|
const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
|
|
@@ -304,9 +305,9 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
|
|
|
304
305
|
(0, utils_js_1.assert)(pageContext.errorWhileRendering);
|
|
305
306
|
return pageContext;
|
|
306
307
|
}
|
|
307
|
-
async function getPageContextBegin(pageContextInit, globalContext,
|
|
308
|
+
async function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
|
|
308
309
|
const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
309
|
-
const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext,
|
|
310
|
+
const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
310
311
|
isPrerendering: false,
|
|
311
312
|
ssr: {
|
|
312
313
|
urlHandler: _urlHandler,
|
|
@@ -415,7 +416,7 @@ pageContextNominalPageBegin, httpRequestId, pageContextErrorPageInit, globalCont
|
|
|
415
416
|
(0, utils_js_1.objectAssign)(pageContext, { pageId: errorPageId });
|
|
416
417
|
(0, utils_js_1.objectAssign)(pageContext, pageContextAbort);
|
|
417
418
|
(0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit, true);
|
|
418
|
-
(0, utils_js_1.objectAssign)(pageContext, await (0,
|
|
419
|
+
(0, utils_js_1.objectAssign)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
|
|
419
420
|
// We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
|
|
420
421
|
pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
|
|
421
422
|
}
|
|
@@ -488,5 +489,6 @@ function getPageContextInvalidVikeConfig(err, pageContextInit, httpRequestId) {
|
|
|
488
489
|
function forkPageContext(pageContextBegin) {
|
|
489
490
|
const pageContext = {};
|
|
490
491
|
(0, utils_js_1.objectAssign)(pageContext, pageContextBegin, true);
|
|
491
|
-
|
|
492
|
+
const pageContextWithProxy = (0, getProxyForPublicUsage_js_1.getProxyForMutationTracking)(pageContext);
|
|
493
|
+
return pageContextWithProxy;
|
|
492
494
|
}
|
|
@@ -74,5 +74,5 @@ __exportStar(require("../../utils/isVikeReactApp.js"), exports);
|
|
|
74
74
|
__exportStar(require("../../utils/getPropAccessNotation.js"), exports);
|
|
75
75
|
__exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
|
|
76
76
|
__exportStar(require("../../utils/genPromise.js"), exports);
|
|
77
|
-
__exportStar(require("../../utils/getPublicProxy.js"), exports);
|
|
78
77
|
__exportStar(require("../../utils/augmentType.js"), exports);
|
|
78
|
+
__exportStar(require("../../utils/changeEnumerable.js"), exports);
|
|
@@ -2,16 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addIs404ToPageProps = addIs404ToPageProps;
|
|
4
4
|
const utils_js_1 = require("./utils.js");
|
|
5
|
-
const error_page_js_1 = require("./error-page.js");
|
|
6
5
|
function addIs404ToPageProps(pageContext) {
|
|
7
|
-
assertIs404(pageContext);
|
|
8
6
|
addIs404(pageContext);
|
|
9
7
|
}
|
|
10
|
-
function assertIs404(pageContext) {
|
|
11
|
-
if ((0, error_page_js_1.isErrorPage)(pageContext.pageId, pageContext._pageConfigs)) {
|
|
12
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContext, 'is404', 'boolean'));
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
8
|
function addIs404(pageContext) {
|
|
16
9
|
if (pageContext.is404 === undefined || pageContext.is404 === null)
|
|
17
10
|
return;
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getGlobalContextSyncErrMsg = void 0;
|
|
4
4
|
exports.createGlobalContextShared = createGlobalContextShared;
|
|
5
|
+
const utils_js_1 = require("./utils.js");
|
|
6
|
+
const parseGlobResults_js_1 = require("./getPageFiles/parseGlobResults.js");
|
|
7
|
+
const getUserFriendlyConfigs_js_1 = require("./page-configs/getUserFriendlyConfigs.js");
|
|
8
|
+
const execHook_js_1 = require("./hooks/execHook.js");
|
|
9
|
+
const prepareGlobalContextForPublicUsage_js_1 = require("./prepareGlobalContextForPublicUsage.js");
|
|
5
10
|
const getGlobalContextSyncErrMsg = "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.";
|
|
6
11
|
exports.getGlobalContextSyncErrMsg = getGlobalContextSyncErrMsg;
|
|
7
|
-
const getPageConfigsRuntime_js_1 = require("./getPageConfigsRuntime.js");
|
|
8
|
-
const executeHookGeneric_js_1 = require("./hooks/executeHookGeneric.js");
|
|
9
|
-
const utils_js_1 = require("./utils.js");
|
|
10
12
|
async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext) {
|
|
11
13
|
const globalContext = createGlobalContextBase(virtualFileExports);
|
|
12
14
|
const globalContextAddendum = await addGlobalContext?.(globalContext);
|
|
@@ -24,17 +26,17 @@ async function createGlobalContextShared(virtualFileExports, globalObject, addGl
|
|
|
24
26
|
// - globalContext._viteDevServer.hot.send()
|
|
25
27
|
// - Send 'full-server-reload' signal whenever a onCreateGlobalContext() function is modified => we need a globalObject to track all hooks and see if one of them is new/modified.
|
|
26
28
|
// - Seems less idiomatic
|
|
27
|
-
await (0,
|
|
29
|
+
await (0, execHook_js_1.execHookGlobal)('onCreateGlobalContext', globalContext._pageConfigGlobal, null, globalContext, prepareGlobalContextForPublicUsage_js_1.prepareGlobalContextForPublicUsage);
|
|
28
30
|
}
|
|
29
31
|
else {
|
|
30
32
|
// Singleton: ensure all `globalContext` user-land references are preserved & updated.
|
|
31
33
|
// We don't use objectReplace() in order to keep user-land properties.
|
|
32
|
-
(0, utils_js_1.objectAssign)(globalObject.globalContext, globalContext);
|
|
34
|
+
(0, utils_js_1.objectAssign)(globalObject.globalContext, globalContext, true);
|
|
33
35
|
}
|
|
34
36
|
return globalObject.globalContext;
|
|
35
37
|
}
|
|
36
38
|
function createGlobalContextBase(virtualFileExports) {
|
|
37
|
-
const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal,
|
|
39
|
+
const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, userFriendlyConfigsGlobal, userFriendlyConfigsPageEager } = getConfigsAll(virtualFileExports);
|
|
38
40
|
const globalContext = {
|
|
39
41
|
/**
|
|
40
42
|
* Useful for distinguishing `globalContext` from other objects and narrowing down TypeScript unions.
|
|
@@ -42,13 +44,40 @@ function createGlobalContextBase(virtualFileExports) {
|
|
|
42
44
|
* https://vike.dev/globalContext#typescript
|
|
43
45
|
*/
|
|
44
46
|
isGlobalContext: true,
|
|
47
|
+
_isOriginalObject: true,
|
|
45
48
|
_virtualFileExports: virtualFileExports,
|
|
46
49
|
_pageFilesAll: pageFilesAll,
|
|
47
50
|
_pageConfigs: pageConfigs,
|
|
48
51
|
_pageConfigGlobal: pageConfigGlobal,
|
|
49
52
|
_allPageIds: allPageIds,
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
_userFriendlyConfigsGlobal: userFriendlyConfigsGlobal,
|
|
54
|
+
config: userFriendlyConfigsGlobal.config,
|
|
55
|
+
pages: userFriendlyConfigsPageEager
|
|
52
56
|
};
|
|
57
|
+
(0, utils_js_1.changeEnumerable)(globalContext, '_isOriginalObject', false);
|
|
53
58
|
return globalContext;
|
|
54
59
|
}
|
|
60
|
+
function getConfigsAll(virtualFileExports) {
|
|
61
|
+
const { pageFilesAll, pageConfigs, pageConfigGlobal } = (0, parseGlobResults_js_1.parseGlobResults)(virtualFileExports);
|
|
62
|
+
const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
|
|
63
|
+
const userFriendlyConfigsGlobal = (0, getUserFriendlyConfigs_js_1.getUserFriendlyConfigsGlobal)({
|
|
64
|
+
pageConfigGlobalValues: pageConfigGlobal.configValues
|
|
65
|
+
});
|
|
66
|
+
const userFriendlyConfigsPageEager = Object.fromEntries(pageConfigs.map((pageConfig) => {
|
|
67
|
+
return (0, getUserFriendlyConfigs_js_1.getUserFriendlyConfigsPageEager)(pageConfigGlobal.configValues, pageConfig, pageConfig.configValues);
|
|
68
|
+
}));
|
|
69
|
+
return {
|
|
70
|
+
pageFilesAll,
|
|
71
|
+
allPageIds,
|
|
72
|
+
pageConfigs,
|
|
73
|
+
pageConfigGlobal,
|
|
74
|
+
userFriendlyConfigsGlobal,
|
|
75
|
+
userFriendlyConfigsPageEager
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function getAllPageIds(pageFilesAll, pageConfigs) {
|
|
79
|
+
const fileIds = pageFilesAll.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
|
|
80
|
+
const allPageIds = (0, utils_js_1.unique)(fileIds);
|
|
81
|
+
const allPageIds2 = pageConfigs.map((p) => p.pageId);
|
|
82
|
+
return [...allPageIds, ...allPageIds2];
|
|
83
|
+
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createPageContextShared = createPageContextShared;
|
|
4
|
-
|
|
5
|
-
const
|
|
4
|
+
exports.createPageContextObject = createPageContextObject;
|
|
5
|
+
const getProxyForPublicUsage_js_1 = require("./getProxyForPublicUsage.js");
|
|
6
|
+
const execHook_js_1 = require("./hooks/execHook.js");
|
|
7
|
+
const preparePageContextForPublicUsage_js_1 = require("./preparePageContextForPublicUsage.js");
|
|
6
8
|
const utils_js_1 = require("./utils.js");
|
|
7
|
-
async function createPageContextShared(pageContextCreated, pageConfigGlobal) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
});
|
|
11
|
-
(0, utils_js_1.objectAssign)(pageContextCreated, {
|
|
12
|
-
isPageContext: true,
|
|
13
|
-
...pageConfigGlobalUserFriendly
|
|
14
|
-
}, true);
|
|
15
|
-
await (0, executeHookGeneric_js_1.executeHookGenericGlobalCumulative)('onCreatePageContext', pageConfigGlobal, pageContextCreated, pageContextCreated);
|
|
9
|
+
async function createPageContextShared(pageContextCreated, pageConfigGlobal, userFriendlyConfigsGlobal) {
|
|
10
|
+
(0, utils_js_1.objectAssign)(pageContextCreated, userFriendlyConfigsGlobal);
|
|
11
|
+
await (0, execHook_js_1.execHookGlobal)('onCreatePageContext', pageConfigGlobal, pageContextCreated, pageContextCreated, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage);
|
|
16
12
|
return pageContextCreated;
|
|
17
13
|
}
|
|
14
|
+
function createPageContextObject() {
|
|
15
|
+
const pageContext = {
|
|
16
|
+
_isOriginalObject: true,
|
|
17
|
+
isPageContext: true
|
|
18
|
+
};
|
|
19
|
+
(0, utils_js_1.changeEnumerable)(pageContext, '_isOriginalObject', false);
|
|
20
|
+
const pageContextWithProxy = (0, getProxyForPublicUsage_js_1.getProxyForMutationTracking)(pageContext);
|
|
21
|
+
return pageContextWithProxy;
|
|
22
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.providePageContext = exports.getPageContext = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "getPageContext", { enumerable: true, get: function () { return
|
|
6
|
-
Object.defineProperty(exports, "providePageContext", { enumerable: true, get: function () { return
|
|
4
|
+
var execHook_js_1 = require("./hooks/execHook.js");
|
|
5
|
+
Object.defineProperty(exports, "getPageContext", { enumerable: true, get: function () { return execHook_js_1.getPageContext; } });
|
|
6
|
+
Object.defineProperty(exports, "providePageContext", { enumerable: true, get: function () { return execHook_js_1.providePageContext; } });
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPageContextUrlComputed = getPageContextUrlComputed;
|
|
4
|
-
exports.assertPageContextUrl = assertPageContextUrl;
|
|
5
4
|
// =====================
|
|
6
5
|
// File determining the URL logic.
|
|
7
6
|
// URLs need to be computed, because the user can modify the URL e.g. with onBeforeRoute() for i18n.
|
|
8
7
|
// =====================
|
|
9
8
|
const objectDefineProperty_js_1 = require("../utils/objectDefineProperty.js");
|
|
9
|
+
const preparePageContextForPublicUsage_js_1 = require("./preparePageContextForPublicUsage.js");
|
|
10
10
|
const utils_js_1 = require("./utils.js");
|
|
11
11
|
function getPageContextUrlComputed(pageContext) {
|
|
12
12
|
(0, utils_js_1.assert)(typeof pageContext.urlOriginal === 'string');
|
|
13
|
-
|
|
13
|
+
(0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
|
|
14
14
|
const pageContextUrlComputed = {};
|
|
15
15
|
(0, objectDefineProperty_js_1.objectDefineProperty)(pageContextUrlComputed, 'urlPathname', {
|
|
16
16
|
get: urlPathnameGetter,
|
|
@@ -130,37 +130,3 @@ function urlParsedGetter() {
|
|
|
130
130
|
}
|
|
131
131
|
return urlParsedEnhanced;
|
|
132
132
|
}
|
|
133
|
-
function assertPageContextUrl(pageContext) {
|
|
134
|
-
(0, utils_js_1.assert)(typeof pageContext.urlOriginal === 'string');
|
|
135
|
-
(0, utils_js_1.assert)(typeof pageContext.urlPathname === 'string');
|
|
136
|
-
(0, utils_js_1.assert)((0, utils_js_1.isPlainObject)(pageContext.urlParsed));
|
|
137
|
-
(0, utils_js_1.assert)(pageContext.urlPathname === pageContext.urlParsed.pathname);
|
|
138
|
-
assertPageContextUrlComputed(pageContext);
|
|
139
|
-
}
|
|
140
|
-
function assertPageContextUrlComputed(pageContext) {
|
|
141
|
-
/*
|
|
142
|
-
If the isPropertyGetter() assertions fail then it's most likely because Object.assign() was used instead of `objectAssign()`:
|
|
143
|
-
```js
|
|
144
|
-
const PageContextUrlComputed = getPageContextUrlComputed(pageContext)
|
|
145
|
-
|
|
146
|
-
// ❌ Breaks the property descriptors/getters of pageContext defined by getPageContextUrlComputed() such as pageContext.urlPathname
|
|
147
|
-
Object.assign(pageContext, pageContextUrlComputed)
|
|
148
|
-
|
|
149
|
-
// ❌ Also breaks property descriptors/getters
|
|
150
|
-
const pageContext = { ...pageContextUrlComputed }
|
|
151
|
-
|
|
152
|
-
// ✅ Preserves property descriptors/getters (see objectAssign() implementation)
|
|
153
|
-
objectAssign(pageContext, pageContextUrlComputed)
|
|
154
|
-
```
|
|
155
|
-
*/
|
|
156
|
-
if ('urlPathname' in pageContext) {
|
|
157
|
-
(0, utils_js_1.assert)(typeof pageContext.urlPathname === 'string');
|
|
158
|
-
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'urlPathname'));
|
|
159
|
-
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'urlParsed'));
|
|
160
|
-
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'url'));
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
(0, utils_js_1.assert)(!('urlParsed' in pageContext));
|
|
164
|
-
(0, utils_js_1.assert)(!('url' in pageContext));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProxyForPublicUsage = getProxyForPublicUsage;
|
|
4
|
+
exports.getProxyForPublicUsageFlat = getProxyForPublicUsageFlat;
|
|
5
|
+
exports.getProxyForMutationTracking = getProxyForMutationTracking;
|
|
6
|
+
// We use a proxy instead of property getters.
|
|
7
|
+
// - The issue with property getters is that they can't be `writable: true` but we do want the user to be able to modify the value of internal properties.
|
|
8
|
+
// ```console
|
|
9
|
+
// TypeError: Invalid property descriptor. Cannot both specify accessors and a value or writable attribute, #<Object>
|
|
10
|
+
// ```
|
|
11
|
+
// - Previous implementation using property getters: https://github.com/vikejs/vike/blob/main/vike/utils/makePublicCopy.ts
|
|
12
|
+
// Show warning when user is accessing internal `_` properties.
|
|
13
|
+
const NOT_SERIALIZABLE_js_1 = require("./NOT_SERIALIZABLE.js");
|
|
14
|
+
const utils_js_1 = require("./utils.js");
|
|
15
|
+
function getProxyForPublicUsage(obj, objName, skipOnInternalProp) {
|
|
16
|
+
return new Proxy(obj, {
|
|
17
|
+
get: getTrapGet(obj, objName, skipOnInternalProp)
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function getProxyForPublicUsageFlat(obj, objName, skipOnInternalProp) {
|
|
21
|
+
(0, utils_js_1.assert)(obj._isOriginalObject);
|
|
22
|
+
(0, utils_js_1.assert)(obj._proxyTarget);
|
|
23
|
+
obj._proxyTargetPublic ?? (obj._proxyTargetPublic = {});
|
|
24
|
+
const target = obj._proxyTargetPublic;
|
|
25
|
+
obj._userMods ?? (obj._userMods = {});
|
|
26
|
+
const objUserMods = obj._userMods;
|
|
27
|
+
const update = () => {
|
|
28
|
+
(0, utils_js_1.assert)(obj._proxyTarget);
|
|
29
|
+
(0, utils_js_1.objectReplace)(target, obj._proxyTarget);
|
|
30
|
+
(0, utils_js_1.objectAssign)(target, objUserMods);
|
|
31
|
+
};
|
|
32
|
+
obj._onChange = () => {
|
|
33
|
+
update();
|
|
34
|
+
};
|
|
35
|
+
update();
|
|
36
|
+
return new Proxy(target, {
|
|
37
|
+
// get: getTrapGet(target, objName, skipOnInternalProp),
|
|
38
|
+
set(_, prop, val) {
|
|
39
|
+
const ret = Reflect.set(objUserMods, prop, val);
|
|
40
|
+
update();
|
|
41
|
+
return ret;
|
|
42
|
+
},
|
|
43
|
+
defineProperty(_, ...args) {
|
|
44
|
+
const ret = Reflect.defineProperty(objUserMods, ...args);
|
|
45
|
+
update();
|
|
46
|
+
return ret;
|
|
47
|
+
},
|
|
48
|
+
deleteProperty(_, ...args) {
|
|
49
|
+
const ret = Reflect.deleteProperty(objUserMods, ...args);
|
|
50
|
+
update();
|
|
51
|
+
return ret;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function getTrapGet(obj, objName, skipOnInternalProp) {
|
|
56
|
+
return function (_, prop) {
|
|
57
|
+
const propStr = String(prop);
|
|
58
|
+
if (!skipOnInternalProp)
|
|
59
|
+
onInternalProp(propStr, objName);
|
|
60
|
+
const val = obj[prop];
|
|
61
|
+
onNotSerializable(propStr, val, objName);
|
|
62
|
+
return val;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function getProxyForMutationTracking(obj) {
|
|
66
|
+
(0, utils_js_1.objectAssign)(obj, { _proxyTarget: obj });
|
|
67
|
+
return new Proxy(obj, {
|
|
68
|
+
set(...args) {
|
|
69
|
+
const ret = Reflect.set(...args);
|
|
70
|
+
obj._onChange?.();
|
|
71
|
+
return ret;
|
|
72
|
+
},
|
|
73
|
+
defineProperty(...args) {
|
|
74
|
+
const ret = Reflect.defineProperty(...args);
|
|
75
|
+
obj._onChange?.();
|
|
76
|
+
return ret;
|
|
77
|
+
},
|
|
78
|
+
deleteProperty(...args) {
|
|
79
|
+
const ret = Reflect.deleteProperty(...args);
|
|
80
|
+
obj._onChange?.();
|
|
81
|
+
return ret;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function onNotSerializable(propStr, val, objName) {
|
|
86
|
+
if (val !== NOT_SERIALIZABLE_js_1.NOT_SERIALIZABLE)
|
|
87
|
+
return;
|
|
88
|
+
const propName = (0, utils_js_1.getPropAccessNotation)(propStr);
|
|
89
|
+
(0, utils_js_1.assert)((0, utils_js_1.isBrowser)());
|
|
90
|
+
(0, utils_js_1.assertUsage)(false, `Can't access ${objName}${propName} on the client side. Because it can't be serialized, see server logs.`);
|
|
91
|
+
}
|
|
92
|
+
function onInternalProp(propStr, objName) {
|
|
93
|
+
// - We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
|
|
94
|
+
// - TO-DO/eventually: use import.meta.CLIENT instead of isBrowser()
|
|
95
|
+
// - Where import.meta.CLIENT is defined by Vike
|
|
96
|
+
// - Using import.meta.env.CLIENT (note `.env.`) doesn't seem possible: https://github.com/brillout/playground_node_import.meta.env
|
|
97
|
+
// - If Rolldown Vite + Rolldowns always transpiles node_modules/ then we can simply use import.meta.env.SSR
|
|
98
|
+
if ((0, utils_js_1.isBrowser)())
|
|
99
|
+
return;
|
|
100
|
+
// TODO/now remove this and only warn on built-in access instead
|
|
101
|
+
if (propStr === '_configFromHook')
|
|
102
|
+
return;
|
|
103
|
+
if (propStr.startsWith('_')) {
|
|
104
|
+
(0, utils_js_1.assertWarning)(false, `Using internal ${objName}.${propStr} which may break in any minor version update. Reach out on GitHub to request official support for your use case.`, { onlyOnce: true, showStackTrace: true });
|
|
105
|
+
}
|
|
106
|
+
}
|