vike 0.4.171 → 0.4.172
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -1
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +8 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +31 -75
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -43
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -50
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +17 -2
- package/dist/cjs/node/prerender/runPrerender.js +35 -15
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScripts.js +2 -1
- package/dist/cjs/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
- package/dist/cjs/node/runtime/html/renderHtml.js +19 -20
- package/dist/cjs/node/runtime/html/stream.js +9 -9
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +91 -282
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +30 -10
- package/dist/cjs/node/runtime/renderPage.js +17 -13
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/node/shared/assertV1Design.js +3 -4
- package/dist/cjs/shared/getPageContext.js +5 -0
- package/dist/cjs/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +2 -2
- package/dist/cjs/shared/getPageFiles/getExports.js +49 -1
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +15 -8
- package/dist/cjs/shared/hooks/executeHook.js +22 -3
- package/dist/cjs/shared/hooks/getHook.js +2 -2
- package/dist/cjs/shared/page-configs/getConfigValue.js +14 -17
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +70 -0
- package/dist/cjs/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -18
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +110 -16
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +198 -0
- package/dist/cjs/shared/route/executeGuardHook.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/cjs/shared/route/index.js +2 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
- package/dist/cjs/shared/sortPageContext.js +4 -8
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/assert.js +1 -1
- package/dist/cjs/utils/assertNodeVersion.js +1 -1
- package/dist/cjs/utils/changeEnumerable.js +9 -0
- package/dist/cjs/utils/escapeHtml.js +14 -0
- package/dist/cjs/utils/getPropAccessNotation.js +1 -4
- package/dist/cjs/utils/hasProp.js +5 -7
- package/dist/cjs/utils/normalizeHeaders.js +13 -0
- package/dist/cjs/utils/objectAssign.js +1 -1
- package/dist/cjs/utils/objectDefineProperty.js +8 -0
- package/dist/cjs/utils/objectKeys.js +8 -4
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +6 -4
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +16 -12
- package/dist/esm/client/client-routing-runtime/installClientRouter.js +18 -10
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +3 -3
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +4 -4
- 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/executeOnRenderClientHook.js +1 -1
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +3 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +35 -48
- package/dist/esm/client/shared/loadUserFilesClientSide.js +4 -4
- package/dist/esm/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
- package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -1
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +14 -0
- package/dist/esm/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +7 -9
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
- 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 +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +31 -75
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +4 -43
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +9 -50
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +14 -2
- package/dist/esm/node/prerender/runPrerender.js +37 -17
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScripts.js +3 -2
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
- package/dist/esm/node/runtime/html/renderHtml.js +19 -20
- package/dist/esm/node/runtime/html/stream.d.ts +1 -1
- package/dist/esm/node/runtime/html/stream.js +9 -9
- package/dist/esm/node/runtime/renderPage/analyzePage.js +9 -7
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -6
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
- package/dist/esm/node/runtime/renderPage/logErrorHint.d.ts +2 -6
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +92 -283
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +65 -39
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +31 -11
- package/dist/esm/node/runtime/renderPage.js +17 -13
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/node/shared/assertV1Design.d.ts +2 -2
- package/dist/esm/node/shared/assertV1Design.js +3 -4
- package/dist/esm/shared/VikeNamespace.d.ts +9 -0
- package/dist/esm/shared/getPageContext.d.ts +1 -0
- package/dist/esm/shared/getPageContext.js +1 -0
- package/dist/esm/shared/{addUrlComputedProps.d.ts → getPageContextUrlComputed.d.ts} +23 -21
- package/dist/esm/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/esm/shared/getPageFiles/getExports.d.ts +36 -0
- package/dist/esm/shared/getPageFiles/getExports.js +50 -2
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +14 -7
- package/dist/esm/shared/hooks/executeHook.d.ts +10 -1
- package/dist/esm/shared/hooks/executeHook.js +21 -2
- package/dist/esm/shared/hooks/getHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.js +3 -3
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +2 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +14 -8
- package/dist/esm/shared/page-configs/getConfigValue.d.ts +12 -12
- package/dist/esm/shared/page-configs/getConfigValue.js +13 -16
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.d.ts +9 -0
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +67 -0
- package/dist/esm/shared/page-configs/loadConfigValues.js +3 -12
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +17 -21
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.d.ts +1 -5
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -16
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +4 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +109 -15
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +5 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +192 -0
- package/dist/esm/shared/route/executeGuardHook.js +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +1 -1
- package/dist/esm/shared/route/index.d.ts +3 -3
- package/dist/esm/shared/route/index.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +3 -3
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
- package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
- package/dist/esm/shared/sortPageContext.js +4 -8
- package/dist/esm/shared/types.d.ts +32 -6
- 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/assert.js +1 -1
- package/dist/esm/utils/assertNodeVersion.js +1 -1
- package/dist/esm/utils/changeEnumerable.d.ts +2 -0
- package/dist/esm/utils/changeEnumerable.js +5 -0
- package/dist/esm/utils/escapeHtml.d.ts +1 -0
- package/dist/esm/utils/escapeHtml.js +10 -0
- package/dist/esm/utils/getPropAccessNotation.d.ts +1 -2
- package/dist/esm/utils/getPropAccessNotation.js +2 -6
- package/dist/esm/utils/hasProp.d.ts +4 -13
- package/dist/esm/utils/hasProp.js +5 -7
- package/dist/esm/utils/normalizeHeaders.d.ts +1 -0
- package/dist/esm/utils/normalizeHeaders.js +9 -0
- package/dist/esm/utils/objectAssign.js +1 -1
- package/dist/esm/utils/objectDefineProperty.d.ts +4 -0
- package/dist/esm/utils/objectDefineProperty.js +4 -0
- package/dist/esm/utils/objectKeys.d.ts +1 -3
- package/dist/esm/utils/objectKeys.js +8 -4
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +21 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -76
- package/dist/cjs/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -14
- package/dist/cjs/node/shared/getClientEntry.js +0 -12
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +0 -85
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -24
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +0 -50
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +0 -16
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -70
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.d.ts +0 -5
- package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -11
- package/dist/esm/node/shared/getClientEntry.d.ts +0 -3
- package/dist/esm/node/shared/getClientEntry.js +0 -9
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +0 -82
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.d.ts +0 -4
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -21
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.d.ts +0 -8
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +0 -47
|
@@ -1,7 +1,12 @@
|
|
|
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.addSsrMiddleware = void 0;
|
|
4
7
|
const renderPage_js_1 = require("../../runtime/renderPage.js");
|
|
8
|
+
const utils_js_1 = require("../utils.js");
|
|
9
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
5
10
|
function addSsrMiddleware(middlewares) {
|
|
6
11
|
middlewares.use(async (req, res, next) => {
|
|
7
12
|
if (res.headersSent)
|
|
@@ -10,11 +15,21 @@ function addSsrMiddleware(middlewares) {
|
|
|
10
15
|
if (!url)
|
|
11
16
|
return next();
|
|
12
17
|
const { headers } = req;
|
|
13
|
-
const userAgent = headers['user-agent'];
|
|
14
18
|
const pageContextInit = {
|
|
15
19
|
urlOriginal: url,
|
|
16
|
-
|
|
20
|
+
headersOriginal: headers
|
|
17
21
|
};
|
|
22
|
+
Object.defineProperty(pageContextInit, 'userAgent', {
|
|
23
|
+
get() {
|
|
24
|
+
// TODO/next-major-release: assertUsage() instead of assertWarning()
|
|
25
|
+
(0, utils_js_1.assertWarning)(false, `${picocolors_1.default.cyan('pageContext.userAgent')} is deprecated: use ${picocolors_1.default.cyan("pageContext.headers['user-agent']")} instead.`, {
|
|
26
|
+
showStackTrace: true,
|
|
27
|
+
onlyOnce: true
|
|
28
|
+
});
|
|
29
|
+
return headers['user-agent'];
|
|
30
|
+
},
|
|
31
|
+
enumerable: false
|
|
32
|
+
});
|
|
18
33
|
let pageContext;
|
|
19
34
|
try {
|
|
20
35
|
pageContext = await (0, renderPage_js_1.renderPage)(pageContextInit);
|
|
@@ -44,7 +44,7 @@ const helpers_js_1 = require("../../shared/page-configs/helpers.js");
|
|
|
44
44
|
const getConfigValue_js_1 = require("../../shared/page-configs/getConfigValue.js");
|
|
45
45
|
const loadConfigValues_js_1 = require("../../shared/page-configs/loadConfigValues.js");
|
|
46
46
|
const error_page_js_1 = require("../../shared/error-page.js");
|
|
47
|
-
const
|
|
47
|
+
const getPageContextUrlComputed_js_1 = require("../../shared/getPageContextUrlComputed.js");
|
|
48
48
|
const abort_js_1 = require("../../shared/route/abort.js");
|
|
49
49
|
const loadUserFilesServerSide_js_1 = require("../runtime/renderPage/loadUserFilesServerSide.js");
|
|
50
50
|
const getHook_js_1 = require("../../shared/hooks/getHook.js");
|
|
@@ -52,6 +52,7 @@ const noRouteMatch_js_1 = require("../../shared/route/noRouteMatch.js");
|
|
|
52
52
|
const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js");
|
|
53
53
|
const logErrorHint_js_1 = require("../runtime/renderPage/logErrorHint.js");
|
|
54
54
|
const executeHook_js_1 = require("../../shared/hooks/executeHook.js");
|
|
55
|
+
const getConfigValueBuildTime_js_1 = require("../../shared/page-configs/getConfigValueBuildTime.js");
|
|
55
56
|
async function runPrerenderFromAPI(options = {}) {
|
|
56
57
|
await runPrerender(options, 'prerender()');
|
|
57
58
|
// - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
|
|
@@ -142,7 +143,7 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
|
|
|
142
143
|
// V1 design
|
|
143
144
|
pageConfigs.forEach((pageConfig) => {
|
|
144
145
|
const configName = 'prerender';
|
|
145
|
-
const configValue = (0,
|
|
146
|
+
const configValue = (0, getConfigValueBuildTime_js_1.getConfigValueBuildTime)(pageConfig, configName, 'boolean');
|
|
146
147
|
if (configValue?.value === false) {
|
|
147
148
|
const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
|
|
148
149
|
(0, utils_js_1.assert)(configValueFilePathToShowToUser);
|
|
@@ -245,7 +246,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
|
|
|
245
246
|
if (doNotPrerenderList.find((p) => p.pageId === pageId)) {
|
|
246
247
|
return;
|
|
247
248
|
}
|
|
248
|
-
const prerenderResult = await (0, executeHook_js_1.executeHook)(() => hookFn(), { hookName, hookFilePath, hookTimeout });
|
|
249
|
+
const prerenderResult = await (0, executeHook_js_1.executeHook)(() => hookFn(), { hookName, hookFilePath, hookTimeout }, null);
|
|
249
250
|
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
250
251
|
result.forEach(({ url, pageContext }) => {
|
|
251
252
|
{
|
|
@@ -268,9 +269,9 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, renderContext,
|
|
|
268
269
|
prerenderContext.pageContexts.push(pageContextNew);
|
|
269
270
|
if (pageContext) {
|
|
270
271
|
(0, utils_js_1.objectAssign)(pageContextNew, {
|
|
271
|
-
_pageContextAlreadyProvidedByOnPrerenderHook: true
|
|
272
|
-
...pageContext
|
|
272
|
+
_pageContextAlreadyProvidedByOnPrerenderHook: true
|
|
273
273
|
});
|
|
274
|
+
(0, utils_js_1.objectAssign)(pageContextNew, pageContext);
|
|
274
275
|
}
|
|
275
276
|
});
|
|
276
277
|
})));
|
|
@@ -328,14 +329,11 @@ function createPageContext(urlOriginal, renderContext, prerenderContext) {
|
|
|
328
329
|
_prerenderContext: prerenderContext
|
|
329
330
|
};
|
|
330
331
|
const pageContextInit = {
|
|
331
|
-
urlOriginal
|
|
332
|
-
...prerenderContext.pageContextInit
|
|
332
|
+
urlOriginal
|
|
333
333
|
};
|
|
334
|
+
(0, utils_js_1.objectAssign)(pageContextInit, prerenderContext.pageContextInit);
|
|
334
335
|
{
|
|
335
|
-
const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, renderContext
|
|
336
|
-
// We set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in a onPrerenderStart() hook, e.g. /examples/i18n/
|
|
337
|
-
urlComputedPropsNonEnumerable: true
|
|
338
|
-
});
|
|
336
|
+
const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, renderContext);
|
|
339
337
|
(0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
|
|
340
338
|
}
|
|
341
339
|
return pageContext;
|
|
@@ -410,6 +408,8 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
410
408
|
pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
|
|
411
409
|
});
|
|
412
410
|
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
411
|
+
// Set `enumerable` to `false` to avoid computed URL properties from being iterated & copied in onPrerenderStart() hook, e.g. /examples/i18n/
|
|
412
|
+
const { restoreEnumerable, addPageContextComputedUrl } = makePageContextComputedUrlNonEnumerable(prerenderContext.pageContexts);
|
|
413
413
|
let result = await (0, executeHook_js_1.executeHook)(() => hookFn({
|
|
414
414
|
pageContexts: prerenderContext.pageContexts,
|
|
415
415
|
// TODO/v1-release: remove warning
|
|
@@ -420,7 +420,8 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
420
420
|
});
|
|
421
421
|
return prerenderContext.pageContexts;
|
|
422
422
|
}
|
|
423
|
-
}), onPrerenderStartHook);
|
|
423
|
+
}), onPrerenderStartHook, null);
|
|
424
|
+
restoreEnumerable();
|
|
424
425
|
if (result === null || result === undefined) {
|
|
425
426
|
return;
|
|
426
427
|
}
|
|
@@ -458,9 +459,8 @@ async function callOnPrerenderStartHook(prerenderContext, renderContext) {
|
|
|
458
459
|
hookName
|
|
459
460
|
};
|
|
460
461
|
}
|
|
461
|
-
// Restore as URL computed props are lost when user makes a pageContext copy
|
|
462
|
-
(0, addUrlComputedProps_js_1.addUrlComputedProps)(pageContext);
|
|
463
462
|
});
|
|
463
|
+
addPageContextComputedUrl(prerenderContext.pageContexts);
|
|
464
464
|
}
|
|
465
465
|
async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete) {
|
|
466
466
|
const globalContext = (0, globalContext_js_1.getGlobalContext)();
|
|
@@ -502,7 +502,7 @@ async function routeAndPrerender(prerenderContext, concurrencyLimit, onComplete)
|
|
|
502
502
|
if (pageContext._pageConfigs.length > 0) {
|
|
503
503
|
const pageConfig = pageContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
504
504
|
(0, utils_js_1.assert)(pageConfig);
|
|
505
|
-
usesClientRouter = (0, getConfigValue_js_1.
|
|
505
|
+
usesClientRouter = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
506
506
|
}
|
|
507
507
|
else {
|
|
508
508
|
usesClientRouter = globalContext.pluginManifest.usesClientRouter;
|
|
@@ -743,3 +743,23 @@ function assertIsNotAbort(err, urlOr404) {
|
|
|
743
743
|
(0, utils_js_1.assert)(abortCall);
|
|
744
744
|
(0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOr404} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
745
745
|
}
|
|
746
|
+
function makePageContextComputedUrlNonEnumerable(pageContexts) {
|
|
747
|
+
change(false);
|
|
748
|
+
return { restoreEnumerable, addPageContextComputedUrl };
|
|
749
|
+
function restoreEnumerable() {
|
|
750
|
+
change(true);
|
|
751
|
+
}
|
|
752
|
+
function addPageContextComputedUrl(pageContexts) {
|
|
753
|
+
// Add URL computed props to the user-generated pageContext copies
|
|
754
|
+
pageContexts.forEach((pageContext) => {
|
|
755
|
+
const pageContextUrlComputed = (0, getPageContextUrlComputed_js_1.getPageContextUrlComputed)(pageContext);
|
|
756
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextUrlComputed);
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
function change(enumerable) {
|
|
760
|
+
pageContexts.forEach((pageContext) => {
|
|
761
|
+
(0, utils_js_1.changeEnumerable)(pageContext, 'urlPathname', enumerable);
|
|
762
|
+
(0, utils_js_1.changeEnumerable)(pageContext, 'urlParsed', enumerable);
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
}
|
|
@@ -31,3 +31,4 @@ __exportStar(require("../../utils/assertNodeEnv.js"), exports);
|
|
|
31
31
|
__exportStar(require("../../utils/pLimit.js"), exports);
|
|
32
32
|
__exportStar(require("../../utils/assertPathFilesystemAbsolute.js"), exports);
|
|
33
33
|
__exportStar(require("../../utils/isArray.js"), exports);
|
|
34
|
+
__exportStar(require("../../utils/changeEnumerable.js"), exports);
|
|
@@ -112,7 +112,7 @@ async function getHtmlTags(pageContext, injectToStream, injectFilter) {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
// The JavaScript entry <script> tag
|
|
115
|
-
const scriptEntry = await mergeScriptEntries(pageAssets
|
|
115
|
+
const scriptEntry = await mergeScriptEntries(pageAssets);
|
|
116
116
|
if (scriptEntry) {
|
|
117
117
|
htmlTags.push({
|
|
118
118
|
htmlTag: scriptEntry,
|
|
@@ -134,11 +134,11 @@ async function getHtmlTags(pageContext, injectToStream, injectFilter) {
|
|
|
134
134
|
return htmlTags;
|
|
135
135
|
}
|
|
136
136
|
exports.getHtmlTags = getHtmlTags;
|
|
137
|
-
async function mergeScriptEntries(pageAssets
|
|
137
|
+
async function mergeScriptEntries(pageAssets) {
|
|
138
138
|
const scriptEntries = pageAssets.filter((pageAsset) => pageAsset.isEntry && pageAsset.assetType === 'script');
|
|
139
139
|
const viteScripts = await (0, getViteDevScripts_js_1.getViteDevScripts)();
|
|
140
140
|
const scriptTagsHtml = `${viteScripts}${scriptEntries.map((asset) => (0, inferHtmlTags_js_1.inferAssetTag)(asset)).join('')}`;
|
|
141
|
-
const scriptTag = (0, mergeScriptTags_js_1.mergeScriptTags)(scriptTagsHtml
|
|
141
|
+
const scriptTag = (0, mergeScriptTags_js_1.mergeScriptTags)(scriptTagsHtml);
|
|
142
142
|
return scriptTag;
|
|
143
143
|
}
|
|
144
144
|
function getPageContextJsonScriptTag(pageContext) {
|
|
@@ -21,7 +21,8 @@ async function getViteDevScripts() {
|
|
|
21
21
|
(0, utils_js_1.assertUsage)(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), 'Vite plugins that minify the HTML are not supported by vike, see https://github.com/vikejs/vike/issues/224');
|
|
22
22
|
(0, utils_js_1.assertUsage)(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd), 'You are using a Vite Plugin that transforms the HTML in a way that conflicts with vike. Create a new GitHub ticket to discuss a solution.');
|
|
23
23
|
const viteInjection = fakeHtml.slice(fakeHtmlBegin.length, -1 * fakeHtmlEnd.length);
|
|
24
|
-
(0, utils_js_1.assert)(viteInjection.includes('script')
|
|
24
|
+
(0, utils_js_1.assert)(viteInjection.includes('script'));
|
|
25
|
+
(0, utils_js_1.assertWarning)(!viteInjection.includes('import('), 'Unexpected Vite HMR code. Reach out to a Vike maintainer on GitHub.', { onlyOnce: true });
|
|
25
26
|
const scriptTags = viteInjection;
|
|
26
27
|
return scriptTags;
|
|
27
28
|
}
|
|
@@ -6,7 +6,7 @@ const inferHtmlTags_js_1 = require("./inferHtmlTags.js");
|
|
|
6
6
|
const scriptRE = /(<script\b(?:\s[^>]*>|>))(.*?)<\/script>/gims;
|
|
7
7
|
const srcRE = /\bsrc\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
|
|
8
8
|
const typeRE = /\btype\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
|
|
9
|
-
function mergeScriptTags(scriptTagsHtml
|
|
9
|
+
function mergeScriptTags(scriptTagsHtml) {
|
|
10
10
|
let scriptTag = '';
|
|
11
11
|
const scripts = parseScripts(scriptTagsHtml);
|
|
12
12
|
// We need to merge module scripts to ensure execution order
|
|
@@ -21,13 +21,7 @@ function mergeScriptTags(scriptTagsHtml, isProduction) {
|
|
|
21
21
|
const hasInnerHtml = !!innerHtml.trim();
|
|
22
22
|
if (src) {
|
|
23
23
|
(0, utils_js_1.assert)(!hasInnerHtml);
|
|
24
|
-
|
|
25
|
-
contents.push(`import ${JSON.stringify(src)};`);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// Ensure HMR preamble code is executed before client entries
|
|
29
|
-
contents.push(`import(${JSON.stringify(src)});`);
|
|
30
|
-
}
|
|
24
|
+
contents.push(`import ${JSON.stringify(src)};`);
|
|
31
25
|
}
|
|
32
26
|
else if (hasInnerHtml) {
|
|
33
27
|
innerHtml = innerHtml.split('\n').filter(Boolean).join('\n');
|
|
@@ -170,35 +170,44 @@ async function renderTemplate(templateContent, pageContext) {
|
|
|
170
170
|
setStream(templateVar);
|
|
171
171
|
continue;
|
|
172
172
|
}
|
|
173
|
-
const getErrMsg = (
|
|
173
|
+
const getErrMsg = (msg) => {
|
|
174
174
|
const { hookName, hookFilePath } = pageContext._renderHook;
|
|
175
175
|
const nth = (i === 0 && '1st') || (i === 1 && '2nd') || (i === 2 && '3rd') || `${i}-th`;
|
|
176
|
-
return [
|
|
176
|
+
return [
|
|
177
|
+
`The ${nth} HTML variable is ${msg}`,
|
|
178
|
+
`The HTML was provided by the ${hookName}() hook at ${hookFilePath}.`
|
|
179
|
+
]
|
|
177
180
|
.filter(Boolean)
|
|
178
181
|
.join(' ');
|
|
179
182
|
};
|
|
180
|
-
(0, utils_js_1.assertUsage)(!(0, utils_js_1.isPromise)(templateVar), getErrMsg(
|
|
183
|
+
(0, utils_js_1.assertUsage)(!(0, utils_js_1.isPromise)(templateVar), getErrMsg(`a promise, did you forget to ${picocolors_1.default.cyan('await')} the promise?`));
|
|
181
184
|
if (templateVar === undefined || templateVar === null) {
|
|
182
|
-
|
|
185
|
+
const msgVal = picocolors_1.default.cyan(String(templateVar));
|
|
186
|
+
const msgEmptyString = picocolors_1.default.cyan("''");
|
|
187
|
+
const msg = `${msgVal} which will be converted to an empty string. Pass the empty string ${msgEmptyString} instead of ${msgVal} to remove this warning.`;
|
|
188
|
+
(0, utils_js_1.assertWarning)(false, getErrMsg(msg), { onlyOnce: false });
|
|
183
189
|
templateVar = '';
|
|
184
190
|
}
|
|
185
191
|
{
|
|
186
192
|
const varType = typeof templateVar;
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
193
|
+
if (varType !== 'string') {
|
|
194
|
+
const msgType = picocolors_1.default.cyan(`typeof htmlVariable === "${varType}"`);
|
|
195
|
+
const msg = `${msgType} but a string or stream (https://vike.dev/streaming) is expected instead.`;
|
|
196
|
+
(0, utils_js_1.assertUsage)(false, getErrMsg(msg));
|
|
197
|
+
}
|
|
191
198
|
}
|
|
192
199
|
{
|
|
193
200
|
const { isProduction } = (0, globalContext_js_1.getGlobalContext)();
|
|
194
201
|
if ((0, utils_js_1.isHtml)(templateVar) &&
|
|
195
202
|
// We don't show this warning in production because it's expected that some users may (un)willingly do some XSS injection: we avoid flooding the production logs.
|
|
196
203
|
!isProduction) {
|
|
197
|
-
|
|
204
|
+
const msgVal = picocolors_1.default.cyan(String(templateVar));
|
|
205
|
+
const msg = `${msgVal} which seems to be HTML code. Did you forget to wrap the value with dangerouslySkipEscape()?`;
|
|
206
|
+
(0, utils_js_1.assertWarning)(false, getErrMsg(msg), { onlyOnce: false });
|
|
198
207
|
}
|
|
199
208
|
}
|
|
200
209
|
// Escape untrusted template variable
|
|
201
|
-
addHtmlPart(escapeHtml(templateVar));
|
|
210
|
+
addHtmlPart((0, utils_js_1.escapeHtml)(templateVar));
|
|
202
211
|
}
|
|
203
212
|
(0, utils_js_1.assert)(templateStrings.length === templateVariables.length + 1);
|
|
204
213
|
addHtmlPart(templateStrings[templateStrings.length - 1]);
|
|
@@ -214,16 +223,6 @@ async function renderTemplate(templateContent, pageContext) {
|
|
|
214
223
|
htmlPartsEnd
|
|
215
224
|
};
|
|
216
225
|
}
|
|
217
|
-
function escapeHtml(unsafeString) {
|
|
218
|
-
// Source: https://stackoverflow.com/questions/6234773/can-i-escape-html-special-chars-in-javascript/6234804#6234804
|
|
219
|
-
const safe = unsafeString
|
|
220
|
-
.replace(/&/g, '&')
|
|
221
|
-
.replace(/</g, '<')
|
|
222
|
-
.replace(/>/g, '>')
|
|
223
|
-
.replace(/"/g, '"')
|
|
224
|
-
.replace(/'/g, ''');
|
|
225
|
-
return safe;
|
|
226
|
-
}
|
|
227
226
|
async function getHtmlString(htmlRender) {
|
|
228
227
|
if (typeof htmlRender === 'string') {
|
|
229
228
|
return htmlRender;
|
|
@@ -762,17 +762,17 @@ async function loadStreamNodeModule() {
|
|
|
762
762
|
const { Readable, Writable } = streamModule;
|
|
763
763
|
return { Readable, Writable };
|
|
764
764
|
}
|
|
765
|
-
function getStreamName(
|
|
766
|
-
let
|
|
767
|
-
if (
|
|
768
|
-
|
|
765
|
+
function getStreamName(kind, type) {
|
|
766
|
+
let typeName = (0, utils_js_1.capitalizeFirstLetter)(type);
|
|
767
|
+
if (typeName === 'Node') {
|
|
768
|
+
typeName = 'Node.js';
|
|
769
769
|
}
|
|
770
|
-
const
|
|
771
|
-
if (
|
|
772
|
-
return `a ${
|
|
770
|
+
const kindName = (0, utils_js_1.capitalizeFirstLetter)(kind);
|
|
771
|
+
if (kind !== 'pipe') {
|
|
772
|
+
return `a ${kindName} ${typeName} Stream`;
|
|
773
773
|
}
|
|
774
|
-
if (
|
|
775
|
-
return `a ${
|
|
774
|
+
if (kind === 'pipe') {
|
|
775
|
+
return `a ${typeName} Stream Pipe`;
|
|
776
776
|
}
|
|
777
777
|
(0, utils_js_1.assert)(false);
|
|
778
778
|
}
|
|
@@ -6,12 +6,16 @@ const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyze
|
|
|
6
6
|
const virtualFilePageConfigValuesAll_js_1 = require("../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
|
|
7
7
|
const analyzeClientSide_js_1 = require("../../../shared/getPageFiles/analyzeClientSide.js");
|
|
8
8
|
const globalContext_js_1 = require("../globalContext.js");
|
|
9
|
-
const
|
|
9
|
+
const getConfigValue_js_1 = require("../../../shared/page-configs/getConfigValue.js");
|
|
10
10
|
function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
11
11
|
if (pageConfig) {
|
|
12
12
|
const { isClientSideRenderable, isClientRouting } = (0, analyzeClientSide_js_1.analyzeClientSide)(pageConfig, pageFilesAll, pageId);
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const clientEntries = [];
|
|
14
|
+
const clientFilePath = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'client', 'string')?.value ?? null;
|
|
15
|
+
if (clientFilePath)
|
|
16
|
+
clientEntries.push(clientFilePath);
|
|
17
|
+
if (isClientSideRenderable)
|
|
18
|
+
clientEntries.push((0, determineClientEntry_js_1.getVikeClientEntry)(isClientRouting));
|
|
15
19
|
const clientDependencies = [];
|
|
16
20
|
clientDependencies.push({
|
|
17
21
|
id: (0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageConfig.pageId, true),
|
|
@@ -43,15 +47,13 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
|
43
47
|
}
|
|
44
48
|
})
|
|
45
49
|
*/
|
|
46
|
-
|
|
47
|
-
if (clientEntry) {
|
|
50
|
+
clientEntries.forEach((clientEntry) => {
|
|
48
51
|
clientDependencies.push({
|
|
49
52
|
id: clientEntry,
|
|
50
53
|
onlyAssets: false,
|
|
51
54
|
eagerlyImported: false
|
|
52
55
|
});
|
|
53
|
-
|
|
54
|
-
}
|
|
56
|
+
});
|
|
55
57
|
return {
|
|
56
58
|
isHtmlOnly: !isClientSideRenderable,
|
|
57
59
|
isClientRouting,
|
|
@@ -9,7 +9,7 @@ function getCacheControl(pageId, pageConfigs) {
|
|
|
9
9
|
if (pageConfigs.length === 0)
|
|
10
10
|
return defaultValue;
|
|
11
11
|
const pageConfig = (0, helpers_js_1.getPageConfig)(pageId, pageConfigs);
|
|
12
|
-
const configValue = (0, getConfigValue_js_1.
|
|
12
|
+
const configValue = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'cacheControl', 'string');
|
|
13
13
|
const value = configValue?.value;
|
|
14
14
|
if (value)
|
|
15
15
|
return value;
|
|
@@ -16,7 +16,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
|
16
16
|
}
|
|
17
17
|
(0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext);
|
|
18
18
|
if (dataHook) {
|
|
19
|
-
const hookResult = await (0, executeHook_js_1.executeHook)(() => dataHook.hookFn(pageContext), dataHook);
|
|
19
|
+
const hookResult = await (0, executeHook_js_1.executeHook)(() => dataHook.hookFn(pageContext), dataHook, pageContext);
|
|
20
20
|
// Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
|
|
21
21
|
const pageContextFromHook = {
|
|
22
22
|
data: hookResult
|
|
@@ -24,7 +24,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
|
24
24
|
Object.assign(pageContext, pageContextFromHook);
|
|
25
25
|
}
|
|
26
26
|
if (onBeforeRenderHook) {
|
|
27
|
-
const hookResult = await (0, executeHook_js_1.executeHook)(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook);
|
|
27
|
+
const hookResult = await (0, executeHook_js_1.executeHook)(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook, pageContext);
|
|
28
28
|
(0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookResult, onBeforeRenderHook.hookFilePath);
|
|
29
29
|
const pageContextFromHook = hookResult?.pageContext;
|
|
30
30
|
Object.assign(pageContext, pageContextFromHook);
|
|
@@ -18,7 +18,7 @@ async function executeOnRenderHtmlHook(pageContext) {
|
|
|
18
18
|
const { renderHook, hookFn } = getRenderHook(pageContext);
|
|
19
19
|
(0, utils_js_1.objectAssign)(pageContext, { _renderHook: renderHook });
|
|
20
20
|
(0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext);
|
|
21
|
-
const hookReturnValue = await (0, executeHook_js_1.executeHook)(() => hookFn(pageContext), renderHook);
|
|
21
|
+
const hookReturnValue = await (0, executeHook_js_1.executeHook)(() => hookFn(pageContext), renderHook, pageContext);
|
|
22
22
|
const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
|
|
23
23
|
Object.assign(pageContext, pageContextProvidedByRenderHook);
|
|
24
24
|
(0, utils_js_1.objectAssign)(pageContext, { _pageContextPromise: pageContextPromise });
|
|
@@ -69,13 +69,13 @@ function getRenderHook(pageContext) {
|
|
|
69
69
|
(0, utils_js_1.assertUsage)(false, [
|
|
70
70
|
`No ${hookName}() hook found, see https://vike.dev/${hookName}`
|
|
71
71
|
/*
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
'See https://vike.dev/render-modes for more information.',
|
|
73
|
+
[
|
|
74
|
+
// 'Loaded config files (none of them define the onRenderHtml() hook):',
|
|
75
|
+
'Loaded server-side page files (none of them `export { render }`):',
|
|
76
|
+
...pageContext._pageFilePathsLoaded.map((f, i) => ` (${i + 1}): ${f}`)
|
|
77
|
+
].join('\n')
|
|
78
|
+
*/
|
|
79
79
|
].join(' '));
|
|
80
80
|
}
|
|
81
81
|
return hookFound;
|
|
@@ -100,8 +100,8 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
|
-
function getFixMsg(
|
|
104
|
-
const streamName = (0, stream_js_1.getStreamName)(
|
|
103
|
+
function getFixMsg(kind, type) {
|
|
104
|
+
const streamName = (0, stream_js_1.getStreamName)(kind, type);
|
|
105
105
|
(0, utils_js_1.assert)(['a ', 'an ', 'the '].some((s) => streamName.startsWith(s)));
|
|
106
106
|
(0, utils_js_1.assert)(renderHook);
|
|
107
107
|
const { hookFilePath, hookName } = renderHook;
|
|
@@ -12,7 +12,7 @@ const globalContext_js_1 = require("../globalContext.js");
|
|
|
12
12
|
const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
|
|
13
13
|
async function loadUserFilesServerSide(pageContext) {
|
|
14
14
|
const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._pageConfigs, pageContext._pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
15
|
-
const [{ pageFilesLoaded,
|
|
15
|
+
const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
|
|
16
16
|
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext._pageId, !(0, globalContext_js_1.getGlobalContext)().isProduction),
|
|
17
17
|
(0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._pageFilesAll, pageContext._pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
18
18
|
]);
|
|
@@ -37,8 +37,8 @@ async function loadUserFilesServerSide(pageContext) {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
const pageContextAddendum = {};
|
|
40
|
+
(0, utils_js_1.objectAssign)(pageContextAddendum, pageContextExports);
|
|
40
41
|
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
41
|
-
...pageContextExports,
|
|
42
42
|
Page: pageContextExports.exports.Page,
|
|
43
43
|
_isHtmlOnly: isHtmlOnly,
|
|
44
44
|
_passToClient: passToClient,
|
|
@@ -104,8 +104,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
104
104
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
105
105
|
const pageContextExports = (0, getPageFiles_js_1.getPageContextExports)(pageFilesServerSide, pageConfigLoaded);
|
|
106
106
|
return {
|
|
107
|
-
|
|
108
|
-
pageFilesLoaded: pageFilesServerSide
|
|
109
|
-
pageConfigLoaded
|
|
107
|
+
pageContextExports,
|
|
108
|
+
pageFilesLoaded: pageFilesServerSide
|
|
110
109
|
};
|
|
111
110
|
}
|