vike 0.4.168 → 0.4.169
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 +10 -2
- package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +19 -16
- package/dist/cjs/node/plugin/plugins/distFileNames.js +7 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +1 -5
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +7 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +14 -11
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +7 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +11 -14
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +129 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +8 -8
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +52 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +81 -106
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +2 -2
- package/dist/cjs/node/plugin/shared/getFilePath.js +50 -49
- package/dist/cjs/node/plugin/utils.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +6 -5
- package/dist/cjs/node/prerender/utils.js +2 -1
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/cjs/node/runtime/index-common.js +14 -3
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -1
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +25 -14
- package/dist/cjs/node/runtime/renderPage/log404/index.js +2 -2
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +1 -1
- package/dist/cjs/node/runtime/utils.js +2 -1
- package/dist/cjs/node/shared/assertV1Design.js +1 -1
- package/dist/cjs/node/shared/getClientEntry.js +2 -2
- package/dist/cjs/node/shared/prependEntriesDir.js +1 -0
- package/dist/cjs/node/shared/utils.js +0 -1
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
- package/dist/cjs/shared/getPageFiles/getExports.js +8 -15
- package/dist/cjs/shared/getPageFiles.js +3 -6
- package/dist/cjs/shared/hooks/getHook.js +7 -6
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +48 -0
- package/dist/cjs/shared/page-configs/{helpers/getConfigValue.js → getConfigValue.js} +6 -8
- package/dist/cjs/shared/page-configs/helpers.js +6 -11
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +2 -1
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +11 -6
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +4 -3
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +3 -3
- package/dist/cjs/shared/route/index.js +2 -2
- package/dist/cjs/shared/route/loadPageRoutes.js +12 -10
- package/dist/cjs/shared/route/resolveRouteFunction.js +8 -9
- package/dist/cjs/shared/route/resolveRouteString.js +5 -16
- package/dist/cjs/shared/route/utils.js +0 -1
- package/dist/cjs/shared/utils.js +1 -0
- package/dist/cjs/utils/assertPathFilesystemAbsolute.js +39 -0
- package/dist/cjs/utils/createErrorWithCleanStackTrace.js +1 -7
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/findFile.js +2 -1
- package/dist/cjs/utils/hasProp.js +9 -5
- package/dist/cjs/utils/injectRollupInputs.js +2 -1
- package/dist/cjs/utils/isArray.js +8 -0
- package/dist/cjs/utils/isArrayOfStrings.js +8 -0
- package/dist/cjs/utils/isDev.js +12 -4
- package/dist/cjs/utils/isNpmPackage.js +1 -1
- package/dist/cjs/utils/isObjectOfStrings.js +8 -0
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +2 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.d.ts +1 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +1 -0
- package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -7
- package/dist/esm/node/plugin/plugins/buildConfig.js +9 -1
- package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +20 -17
- package/dist/esm/node/plugin/plugins/distFileNames.js +8 -2
- package/dist/esm/node/plugin/plugins/envVars.js +2 -6
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +9 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +14 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +4 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +7 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +12 -15
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +12 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +123 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.d.ts +8 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +7 -7
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +53 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +81 -106
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/node/plugin/shared/getFilePath.d.ts +11 -5
- package/dist/esm/node/plugin/shared/getFilePath.js +49 -48
- package/dist/esm/node/plugin/utils.d.ts +2 -2
- package/dist/esm/node/plugin/utils.js +2 -2
- package/dist/esm/node/prerender/runPrerender.js +6 -5
- package/dist/esm/node/prerender/utils.d.ts +2 -1
- package/dist/esm/node/prerender/utils.js +2 -1
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +1 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/esm/node/runtime/index-common.d.ts +0 -4
- package/dist/esm/node/runtime/index-common.js +14 -3
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +4 -4
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +27 -16
- package/dist/esm/node/runtime/renderPage/log404/index.js +2 -2
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -7
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +16 -16
- package/dist/esm/node/runtime/utils.d.ts +2 -1
- package/dist/esm/node/runtime/utils.js +2 -1
- package/dist/esm/node/shared/assertV1Design.js +1 -1
- package/dist/esm/node/shared/getClientEntry.js +1 -1
- package/dist/esm/node/shared/prependEntriesDir.js +1 -0
- package/dist/esm/node/shared/utils.d.ts +0 -1
- package/dist/esm/node/shared/utils.js +0 -1
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/getExports.d.ts +4 -5
- package/dist/esm/shared/getPageFiles/getExports.js +9 -16
- package/dist/esm/shared/getPageFiles.d.ts +1 -2
- package/dist/esm/shared/getPageFiles.js +1 -3
- package/dist/esm/shared/hooks/getHook.js +6 -5
- package/dist/esm/shared/page-configs/Config.d.ts +2 -2
- package/dist/esm/shared/page-configs/FilePath.d.ts +32 -22
- package/dist/esm/shared/page-configs/PageConfig.d.ts +27 -15
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +11 -0
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +42 -0
- package/dist/esm/shared/page-configs/{helpers/getConfigValue.d.ts → getConfigValue.d.ts} +2 -2
- package/dist/esm/shared/page-configs/{helpers/getConfigValue.js → getConfigValue.js} +6 -8
- package/dist/esm/shared/page-configs/helpers.d.ts +3 -9
- package/dist/esm/shared/page-configs/helpers.js +6 -8
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +7 -4
- package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +2 -2
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +2 -1
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +12 -7
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +5 -4
- package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +3 -3
- package/dist/esm/shared/route/index.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.d.ts +3 -3
- package/dist/esm/shared/route/loadPageRoutes.js +10 -8
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +1 -1
- package/dist/esm/shared/route/resolveRouteFunction.js +9 -10
- package/dist/esm/shared/route/resolveRouteString.d.ts +0 -2
- package/dist/esm/shared/route/resolveRouteString.js +5 -16
- package/dist/esm/shared/route/utils.d.ts +0 -1
- package/dist/esm/shared/route/utils.js +0 -1
- package/dist/esm/shared/utils.d.ts +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/esm/utils/assertPathFilesystemAbsolute.d.ts +6 -0
- package/dist/esm/utils/assertPathFilesystemAbsolute.js +33 -0
- package/dist/esm/utils/createErrorWithCleanStackTrace.js +1 -7
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/findFile.js +2 -1
- package/dist/esm/utils/hasProp.d.ts +1 -0
- package/dist/esm/utils/hasProp.js +9 -5
- package/dist/esm/utils/injectRollupInputs.js +2 -1
- package/dist/esm/utils/isArray.d.ts +1 -0
- package/dist/esm/utils/isArray.js +4 -0
- package/dist/esm/utils/isArrayOfStrings.d.ts +2 -0
- package/dist/esm/utils/isArrayOfStrings.js +5 -0
- package/dist/esm/utils/isDev.d.ts +3 -0
- package/dist/esm/utils/isDev.js +11 -3
- package/dist/esm/utils/isNpmPackage.js +1 -1
- package/dist/esm/utils/isObjectOfStrings.d.ts +2 -0
- package/dist/esm/utils/isObjectOfStrings.js +5 -0
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +3 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +0 -136
- package/dist/cjs/shared/page-configs/helpers/getConfigDefinedAtString.js +0 -43
- package/dist/cjs/utils/assertPathIsFilesystemAbsolute.js +0 -21
- package/dist/cjs/utils/isStringRecord.js +0 -7
- package/dist/cjs/utils/mergeCumulativeValues.js +0 -21
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.d.ts +0 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +0 -130
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.d.ts +0 -7
- package/dist/esm/shared/page-configs/helpers/getConfigDefinedAtString.js +0 -37
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.d.ts +0 -3
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.js +0 -15
- package/dist/esm/utils/isStringRecord.d.ts +0 -1
- package/dist/esm/utils/isStringRecord.js +0 -3
- package/dist/esm/utils/mergeCumulativeValues.d.ts +0 -2
- package/dist/esm/utils/mergeCumulativeValues.js +0 -18
|
@@ -5,7 +5,7 @@ export { runPrerender_forceExit };
|
|
|
5
5
|
import '../runtime/page-files/setup.js';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import { route } from '../../shared/route/index.js';
|
|
8
|
-
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit,
|
|
8
|
+
import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit, assertPathFilesystemAbsolute, isArray } from './utils.js';
|
|
9
9
|
import { prerenderPage, prerender404Page, getRenderContext, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
|
|
10
10
|
import pc from '@brillout/picocolors';
|
|
11
11
|
import { cpus } from 'os';
|
|
@@ -15,7 +15,8 @@ import { getConfigVike } from '../shared/getConfigVike.js';
|
|
|
15
15
|
import { getPageFilesServerSide } from '../../shared/getPageFiles.js';
|
|
16
16
|
import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.js';
|
|
17
17
|
import { getUrlFromRouteString } from '../../shared/route/resolveRouteString.js';
|
|
18
|
-
import {
|
|
18
|
+
import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
|
|
19
|
+
import { getConfigValue } from '../../shared/page-configs/getConfigValue.js';
|
|
19
20
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
20
21
|
import { isErrorPage } from '../../shared/error-page.js';
|
|
21
22
|
import { addUrlComputedProps } from '../../shared/addUrlComputedProps.js';
|
|
@@ -75,7 +76,7 @@ async function runPrerender(options, manuallyTriggered) {
|
|
|
75
76
|
}
|
|
76
77
|
const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
|
|
77
78
|
const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
|
|
78
|
-
|
|
79
|
+
assertPathFilesystemAbsolute(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
|
|
79
80
|
await initGlobalContext(true, outDirRoot);
|
|
80
81
|
const renderContext = await getRenderContext();
|
|
81
82
|
renderContext.pageFilesAll.forEach(assertExportNames);
|
|
@@ -115,7 +116,7 @@ async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerend
|
|
|
115
116
|
const configName = 'prerender';
|
|
116
117
|
const configValue = getConfigValue(pageConfig, configName, 'boolean');
|
|
117
118
|
if (configValue?.value === false) {
|
|
118
|
-
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue);
|
|
119
|
+
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue.definedAtData);
|
|
119
120
|
assert(configValueFilePathToShowToUser);
|
|
120
121
|
doNotPrerenderList.push({
|
|
121
122
|
pageId: pageConfig.pageId,
|
|
@@ -609,7 +610,7 @@ async function write(urlOriginal, pageContext, fileExtension, fileContent, root,
|
|
|
609
610
|
}
|
|
610
611
|
}
|
|
611
612
|
function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hookName) {
|
|
612
|
-
if (
|
|
613
|
+
if (isArray(prerenderResult)) {
|
|
613
614
|
return prerenderResult.map(normalize);
|
|
614
615
|
}
|
|
615
616
|
else {
|
|
@@ -11,4 +11,5 @@ export * from '../../utils/urlToFile.js';
|
|
|
11
11
|
export * from '../../utils/isPlainObject.js';
|
|
12
12
|
export * from '../../utils/assertNodeEnv.js';
|
|
13
13
|
export * from '../../utils/pLimit.js';
|
|
14
|
-
export * from '../../utils/
|
|
14
|
+
export * from '../../utils/assertPathFilesystemAbsolute.js';
|
|
15
|
+
export * from '../../utils/isArray.js';
|
|
@@ -13,4 +13,5 @@ export * from '../../utils/urlToFile.js';
|
|
|
13
13
|
export * from '../../utils/isPlainObject.js';
|
|
14
14
|
export * from '../../utils/assertNodeEnv.js';
|
|
15
15
|
export * from '../../utils/pLimit.js';
|
|
16
|
-
export * from '../../utils/
|
|
16
|
+
export * from '../../utils/assertPathFilesystemAbsolute.js';
|
|
17
|
+
export * from '../../utils/isArray.js';
|
|
@@ -5,6 +5,7 @@ import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.
|
|
|
5
5
|
import type { UrlRedirect } from '../../../shared/route/abort.js';
|
|
6
6
|
type PageContextSerialization = {
|
|
7
7
|
_pageId: string;
|
|
8
|
+
routeParams: Record<string, string>;
|
|
8
9
|
_passToClient: string[];
|
|
9
10
|
_pageConfigs: PageConfigRuntime[];
|
|
10
11
|
is404: null | boolean;
|
|
@@ -5,8 +5,4 @@ export { PROJECT_VERSION as version } from './utils.js';
|
|
|
5
5
|
export { getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
|
|
6
6
|
export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
|
|
7
7
|
export { createPageRenderer } from '../createPageRenderer.js';
|
|
8
|
-
declare global {
|
|
9
|
-
var _isVitePluginSsr: true;
|
|
10
|
-
var _isVike: true;
|
|
11
|
-
}
|
|
12
8
|
import './page-files/setup.js';
|
|
@@ -7,7 +7,18 @@ export { getGlobalContextSync, getGlobalContextAsync } from './globalContext.js'
|
|
|
7
7
|
export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
|
|
8
8
|
// TODO/v1-release: remove
|
|
9
9
|
export { createPageRenderer } from '../createPageRenderer.js';
|
|
10
|
-
|
|
11
|
-
globalThis._isVitePluginSsr = true;
|
|
12
|
-
globalThis._isVike = true;
|
|
10
|
+
addEcosystemStamp();
|
|
13
11
|
import './page-files/setup.js';
|
|
12
|
+
// Used by:
|
|
13
|
+
// - Telefunc (to detect the user's stack https://github.com/brillout/telefunc/blob/8288310e88e06a42b710d39c39fb502364ca6d30/telefunc/utils/isVikeApp.ts#L4)
|
|
14
|
+
function addEcosystemStamp() {
|
|
15
|
+
const g = globalThis;
|
|
16
|
+
g._isVikeApp =
|
|
17
|
+
/* Don't set to true so that consumers do `!!globalThis._isVikeApp` instead of `globalThis._isVikeApp === true`.
|
|
18
|
+
true
|
|
19
|
+
*/
|
|
20
|
+
// We use an object so that we can eventually, in the future, add helpful information as needed. (E.g. the Vike version, or global settings.)
|
|
21
|
+
{};
|
|
22
|
+
// We keep the old stamp for older Telefunc versions
|
|
23
|
+
g._isVitePluginSsr = true;
|
|
24
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { getCacheControl };
|
|
2
|
-
import {
|
|
2
|
+
import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
|
|
3
|
+
import { getConfigValue } from '../../../../shared/page-configs/getConfigValue.js';
|
|
3
4
|
const defaultValue = 'no-store, max-age=0';
|
|
4
5
|
function getCacheControl(pageId, pageConfigs) {
|
|
5
6
|
// TODO/v1-release: remove
|
|
@@ -15,15 +15,15 @@ type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
|
|
|
15
15
|
declare function loadUserFilesServerSide(pageContext: {
|
|
16
16
|
_pageId: string;
|
|
17
17
|
} & PageContext_loadUserFilesServerSide): Promise<{
|
|
18
|
+
Page: unknown;
|
|
19
|
+
_isHtmlOnly: boolean;
|
|
20
|
+
_passToClient: string[];
|
|
21
|
+
_pageFilePathsLoaded: string[];
|
|
18
22
|
config: Record<string, unknown>;
|
|
19
23
|
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
20
24
|
exports: Record<string, unknown>;
|
|
21
25
|
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
22
26
|
pageExports: Record<string, unknown>;
|
|
23
|
-
Page: unknown;
|
|
24
|
-
_isHtmlOnly: boolean;
|
|
25
|
-
_passToClient: string[];
|
|
26
|
-
_pageFilePathsLoaded: string[];
|
|
27
27
|
} & {
|
|
28
28
|
__getPageAssets: () => Promise<PageAsset[]>;
|
|
29
29
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { loadUserFilesServerSide };
|
|
2
|
-
import {
|
|
2
|
+
import { getPageFilesServerSide, getPageContextExports } from '../../../shared/getPageFiles.js';
|
|
3
3
|
import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
4
|
-
import { assertWarning, objectAssign } from '../utils.js';
|
|
4
|
+
import { assert, assertUsage, assertWarning, hasProp, isArrayOfStrings, objectAssign, isArray } from '../utils.js';
|
|
5
5
|
import { getPageAssets } from './getPageAssets.js';
|
|
6
6
|
import { debugPageFiles } from './debugPageFiles.js';
|
|
7
7
|
import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
|
|
@@ -10,21 +10,36 @@ import { getGlobalContext } from '../globalContext.js';
|
|
|
10
10
|
import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
|
|
11
11
|
async function loadUserFilesServerSide(pageContext) {
|
|
12
12
|
const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext._pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
13
|
-
const [{
|
|
13
|
+
const [{ pageFilesLoaded, pageConfigLoaded, ...pageContextExports }] = await Promise.all([
|
|
14
14
|
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext._pageId, !getGlobalContext().isProduction),
|
|
15
15
|
analyzePageClientSideInit(pageContext._pageFilesAll, pageContext._pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
16
16
|
]);
|
|
17
17
|
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = analyzePage(pageContext._pageFilesAll, pageConfig, pageContext._pageId);
|
|
18
|
+
const isV1Design = !!pageConfig;
|
|
19
|
+
const passToClient = [];
|
|
20
|
+
const errMsg = ' should be an array of strings.';
|
|
21
|
+
if (!isV1Design) {
|
|
22
|
+
pageContextExports.exportsAll.passToClient?.forEach((e) => {
|
|
23
|
+
assertUsage(hasProp(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
|
|
24
|
+
passToClient.push(...e.exportValue);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
pageContextExports.configEntries.passToClient?.forEach((e) => {
|
|
29
|
+
const { configValue } = e;
|
|
30
|
+
assert(isArray(configValue));
|
|
31
|
+
const vals = configValue.flat(1);
|
|
32
|
+
// TODO: improve error message by using (upcoming) new data structure instead of configEntries
|
|
33
|
+
assertUsage(isArrayOfStrings(vals), `${e.configDefinedAt}${errMsg}`);
|
|
34
|
+
passToClient.push(...vals);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
18
37
|
const pageContextAddendum = {};
|
|
19
38
|
objectAssign(pageContextAddendum, {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
exports,
|
|
23
|
-
exportsAll,
|
|
24
|
-
pageExports,
|
|
25
|
-
Page: exports.Page,
|
|
39
|
+
...pageContextExports,
|
|
40
|
+
Page: pageContextExports.exports.Page,
|
|
26
41
|
_isHtmlOnly: isHtmlOnly,
|
|
27
|
-
_passToClient:
|
|
42
|
+
_passToClient: passToClient,
|
|
28
43
|
_pageFilePathsLoaded: pageFilesLoaded.map((p) => p.filePath)
|
|
29
44
|
});
|
|
30
45
|
objectAssign(pageContextAddendum, {
|
|
@@ -84,13 +99,9 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
84
99
|
const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
|
|
85
100
|
const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
|
|
86
101
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
87
|
-
const
|
|
102
|
+
const pageContextExports = getPageContextExports(pageFilesServerSide, pageConfigLoaded);
|
|
88
103
|
return {
|
|
89
|
-
|
|
90
|
-
configEntries,
|
|
91
|
-
exports,
|
|
92
|
-
exportsAll,
|
|
93
|
-
pageExports,
|
|
104
|
+
...pageContextExports,
|
|
94
105
|
pageFilesLoaded: pageFilesServerSide,
|
|
95
106
|
pageConfigLoaded
|
|
96
107
|
};
|
|
@@ -38,8 +38,8 @@ function getRoutesInfo(pageRoutes) {
|
|
|
38
38
|
routeDefinedBy = pageRoute.routeFilesystemDefinedBy;
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
|
-
assert(pageRoute.
|
|
42
|
-
routeDefinedBy = pageRoute.
|
|
41
|
+
assert(pageRoute.routeDefinedAtString);
|
|
42
|
+
routeDefinedBy = pageRoute.routeDefinedAtString;
|
|
43
43
|
}
|
|
44
44
|
if (pageRoute.routeType === 'STRING') {
|
|
45
45
|
routeStr = pageRoute.routeString;
|
|
@@ -3,7 +3,7 @@ export { logErrorHint };
|
|
|
3
3
|
export { isCjsEsmError };
|
|
4
4
|
export { isKnownError };
|
|
5
5
|
export { getHint };
|
|
6
|
-
import { assert, formatHintLog, isNotNullish, isObject, unique } from '../utils.js';
|
|
6
|
+
import { assert, formatHintLog, isArray, isNotNullish, isObject, unique } from '../utils.js';
|
|
7
7
|
import pc from '@brillout/picocolors';
|
|
8
8
|
const knownErrors = [
|
|
9
9
|
{
|
|
@@ -78,7 +78,7 @@ function isCjsEsmError(error) {
|
|
|
78
78
|
return packageNames;
|
|
79
79
|
}
|
|
80
80
|
function normalizeRes(res) {
|
|
81
|
-
let packageNames =
|
|
81
|
+
let packageNames = isArray(res) ? res : [res];
|
|
82
82
|
packageNames = unique(packageNames.filter(isNotNullish).filter((packageName) => packageName !== '@brillout/import'));
|
|
83
83
|
if (packageNames.length === 0)
|
|
84
84
|
return false;
|
package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ export { preparePageContextForUserConsumptionServerSide };
|
|
|
2
2
|
export type { PageContextForUserConsumptionServerSide };
|
|
3
3
|
import { PageContextUrlComputedPropsInternal } from '../../../shared/addUrlComputedProps.js';
|
|
4
4
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { PageContextExports } from '../../../shared/getPageFiles/getExports.js';
|
|
6
6
|
import { PageContextBuiltInServerInternal } from '../../../shared/types.js';
|
|
7
|
-
type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & {
|
|
7
|
+
type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & PageContextExports & {
|
|
8
8
|
urlOriginal: string;
|
|
9
9
|
/** @deprecated */
|
|
10
10
|
url: string;
|
|
@@ -12,11 +12,6 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
|
|
|
12
12
|
urlParsed: PageContextUrlComputedPropsInternal['urlParsed'];
|
|
13
13
|
routeParams: Record<string, string>;
|
|
14
14
|
Page: unknown;
|
|
15
|
-
pageExports: Record<string, unknown>;
|
|
16
|
-
config: Record<string, unknown>;
|
|
17
|
-
configEntries: ConfigEntries;
|
|
18
|
-
exports: Record<string, unknown>;
|
|
19
|
-
exportsAll: ExportsAll;
|
|
20
15
|
_pageId: string;
|
|
21
16
|
_pageConfigs: PageConfigRuntime[];
|
|
22
17
|
is404: null | boolean;
|
|
@@ -57,15 +57,15 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
57
57
|
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
58
58
|
_urlRewrite: string | null;
|
|
59
59
|
} & {
|
|
60
|
+
Page: unknown;
|
|
61
|
+
_isHtmlOnly: boolean;
|
|
62
|
+
_passToClient: string[];
|
|
63
|
+
_pageFilePathsLoaded: string[];
|
|
60
64
|
config: Record<string, unknown>;
|
|
61
65
|
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
62
66
|
exports: Record<string, unknown>;
|
|
63
67
|
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
64
68
|
pageExports: Record<string, unknown>;
|
|
65
|
-
Page: unknown;
|
|
66
|
-
_isHtmlOnly: boolean;
|
|
67
|
-
_passToClient: string[];
|
|
68
|
-
_pageFilePathsLoaded: string[];
|
|
69
69
|
} & {
|
|
70
70
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
71
71
|
} & {
|
|
@@ -104,15 +104,15 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
104
104
|
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
105
105
|
_urlRewrite: string | null;
|
|
106
106
|
} & {
|
|
107
|
+
Page: unknown;
|
|
108
|
+
_isHtmlOnly: boolean;
|
|
109
|
+
_passToClient: string[];
|
|
110
|
+
_pageFilePathsLoaded: string[];
|
|
107
111
|
config: Record<string, unknown>;
|
|
108
112
|
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
109
113
|
exports: Record<string, unknown>;
|
|
110
114
|
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
111
115
|
pageExports: Record<string, unknown>;
|
|
112
|
-
Page: unknown;
|
|
113
|
-
_isHtmlOnly: boolean;
|
|
114
|
-
_passToClient: string[];
|
|
115
|
-
_pageFilePathsLoaded: string[];
|
|
116
116
|
} & {
|
|
117
117
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
118
118
|
} & {
|
|
@@ -152,15 +152,15 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
152
152
|
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
153
153
|
_urlRewrite: string | null;
|
|
154
154
|
} & {
|
|
155
|
+
Page: unknown;
|
|
156
|
+
_isHtmlOnly: boolean;
|
|
157
|
+
_passToClient: string[];
|
|
158
|
+
_pageFilePathsLoaded: string[];
|
|
155
159
|
config: Record<string, unknown>;
|
|
156
160
|
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
157
161
|
exports: Record<string, unknown>;
|
|
158
162
|
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
159
163
|
pageExports: Record<string, unknown>;
|
|
160
|
-
Page: unknown;
|
|
161
|
-
_isHtmlOnly: boolean;
|
|
162
|
-
_passToClient: string[];
|
|
163
|
-
_pageFilePathsLoaded: string[];
|
|
164
164
|
} & {
|
|
165
165
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
166
166
|
} & {
|
|
@@ -199,15 +199,15 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
199
199
|
} & import("../../../shared/addUrlComputedProps.js").PageContextUrlComputedPropsClient & {
|
|
200
200
|
_urlRewrite: string | null;
|
|
201
201
|
} & {
|
|
202
|
+
Page: unknown;
|
|
203
|
+
_isHtmlOnly: boolean;
|
|
204
|
+
_passToClient: string[];
|
|
205
|
+
_pageFilePathsLoaded: string[];
|
|
202
206
|
config: Record<string, unknown>;
|
|
203
207
|
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
204
208
|
exports: Record<string, unknown>;
|
|
205
209
|
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
206
210
|
pageExports: Record<string, unknown>;
|
|
207
|
-
Page: unknown;
|
|
208
|
-
_isHtmlOnly: boolean;
|
|
209
|
-
_passToClient: string[];
|
|
210
|
-
_pageFilePathsLoaded: string[];
|
|
211
211
|
} & {
|
|
212
212
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
213
213
|
} & {
|
|
@@ -12,6 +12,7 @@ export * from '../../utils/parseUrl-extras.js';
|
|
|
12
12
|
export * from '../../utils/slice.js';
|
|
13
13
|
export * from '../../utils/sorter.js';
|
|
14
14
|
export * from '../../utils/projectInfo.js';
|
|
15
|
+
export * from '../../utils/isArray.js';
|
|
15
16
|
export * from '../../utils/isObject.js';
|
|
16
17
|
export * from '../../utils/objectAssign.js';
|
|
17
18
|
export * from '../../utils/PromiseType.js';
|
|
@@ -35,7 +36,6 @@ export * from '../../utils/isNotNullish.js';
|
|
|
35
36
|
export * from '../../utils/isScriptFile.js';
|
|
36
37
|
export * from '../../utils/removeFileExtention.js';
|
|
37
38
|
export * from '../../utils/objectKeys.js';
|
|
38
|
-
export * from '../../utils/isStringRecord.js';
|
|
39
39
|
export * from '../../utils/getFileExtension.js';
|
|
40
40
|
export * from '../../utils/assertIsNotProductionRuntime.js';
|
|
41
41
|
export * from '../../utils/virtual-files.js';
|
|
@@ -48,3 +48,4 @@ export * from '../../utils/getTerminWidth.js';
|
|
|
48
48
|
export * from '../../utils/truncateString.js';
|
|
49
49
|
export * from '../../utils/formatHintLog.js';
|
|
50
50
|
export * from '../../utils/joinEnglish.js';
|
|
51
|
+
export * from '../../utils/isArrayOfStrings.js';
|
|
@@ -15,6 +15,7 @@ export * from '../../utils/parseUrl-extras.js';
|
|
|
15
15
|
export * from '../../utils/slice.js';
|
|
16
16
|
export * from '../../utils/sorter.js';
|
|
17
17
|
export * from '../../utils/projectInfo.js';
|
|
18
|
+
export * from '../../utils/isArray.js';
|
|
18
19
|
export * from '../../utils/isObject.js';
|
|
19
20
|
export * from '../../utils/objectAssign.js';
|
|
20
21
|
export * from '../../utils/PromiseType.js';
|
|
@@ -38,7 +39,6 @@ export * from '../../utils/isNotNullish.js';
|
|
|
38
39
|
export * from '../../utils/isScriptFile.js';
|
|
39
40
|
export * from '../../utils/removeFileExtention.js';
|
|
40
41
|
export * from '../../utils/objectKeys.js';
|
|
41
|
-
export * from '../../utils/isStringRecord.js';
|
|
42
42
|
export * from '../../utils/getFileExtension.js';
|
|
43
43
|
export * from '../../utils/assertIsNotProductionRuntime.js';
|
|
44
44
|
export * from '../../utils/virtual-files.js';
|
|
@@ -51,3 +51,4 @@ export * from '../../utils/getTerminWidth.js';
|
|
|
51
51
|
export * from '../../utils/truncateString.js';
|
|
52
52
|
export * from '../../utils/formatHintLog.js';
|
|
53
53
|
export * from '../../utils/joinEnglish.js';
|
|
54
|
+
export * from '../../utils/isArrayOfStrings.js';
|
|
@@ -10,7 +10,7 @@ function assertV1Design(isOldDesign, pageConfigs, pageFilesAll) {
|
|
|
10
10
|
const indent = '- ';
|
|
11
11
|
const filesV1 = unique(pageConfigs
|
|
12
12
|
.map((p) => Object.values(p.configValues)
|
|
13
|
-
.map(getConfigValueFilePathToShowToUser)
|
|
13
|
+
.map((c) => getConfigValueFilePathToShowToUser(c.definedAtData))
|
|
14
14
|
.filter(isNotNullish)
|
|
15
15
|
.map((filePathToShowToUser) => indent + filePathToShowToUser))
|
|
16
16
|
.flat(2));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { getClientEntry };
|
|
2
|
-
import { getConfigValue } from '../../shared/page-configs/
|
|
2
|
+
import { getConfigValue } from '../../shared/page-configs/getConfigValue.js';
|
|
3
3
|
function getClientEntry(pageConfig) {
|
|
4
4
|
const configName = 'client';
|
|
5
5
|
const configValue = getConfigValue(pageConfig, configName, 'string');
|
|
@@ -4,7 +4,6 @@ export * from '../../utils/isPlainObject.js';
|
|
|
4
4
|
export * from '../../utils/projectInfo.js';
|
|
5
5
|
export * from '../../utils/checkType.js';
|
|
6
6
|
export * from '../../utils/hasProp.js';
|
|
7
|
-
export * from '../../utils/isStringRecord.js';
|
|
8
7
|
export * from '../../utils/objectAssign.js';
|
|
9
8
|
export * from '../../utils/checkType.js';
|
|
10
9
|
export * from '../../utils/hasProp.js';
|
|
@@ -6,7 +6,6 @@ export * from '../../utils/isPlainObject.js';
|
|
|
6
6
|
export * from '../../utils/projectInfo.js';
|
|
7
7
|
export * from '../../utils/checkType.js';
|
|
8
8
|
export * from '../../utils/hasProp.js';
|
|
9
|
-
export * from '../../utils/isStringRecord.js';
|
|
10
9
|
export * from '../../utils/objectAssign.js';
|
|
11
10
|
export * from '../../utils/checkType.js';
|
|
12
11
|
export * from '../../utils/hasProp.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { analyzeClientSide };
|
|
2
|
-
import { getConfigValue } from '../page-configs/
|
|
2
|
+
import { getConfigValue } from '../page-configs/getConfigValue.js';
|
|
3
3
|
import { analyzePageClientSide } from './analyzePageClientSide.js';
|
|
4
4
|
function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
|
|
5
5
|
// V1 design
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { getExports };
|
|
1
|
+
export { getPageContextExports };
|
|
3
2
|
export type { ExportsAll };
|
|
4
3
|
export type { PageContextExports };
|
|
5
4
|
export type { ConfigEntries };
|
|
6
5
|
import type { FileType } from './fileTypes.js';
|
|
7
6
|
import type { PageConfigRuntimeLoaded } from './../page-configs/PageConfig.js';
|
|
8
7
|
import type { PageFile } from './getPageFileObject.js';
|
|
8
|
+
import { type ConfigDefinedAtOptional } from '../page-configs/getConfigDefinedAt.js';
|
|
9
9
|
type ExportsAll = Record<string, {
|
|
10
10
|
exportValue: unknown;
|
|
11
11
|
exportSource: string;
|
|
@@ -23,7 +23,7 @@ type ExportsAll = Record<string, {
|
|
|
23
23
|
*/
|
|
24
24
|
type ConfigEntries = Record<string, {
|
|
25
25
|
configValue: unknown;
|
|
26
|
-
configDefinedAt:
|
|
26
|
+
configDefinedAt: ConfigDefinedAtOptional;
|
|
27
27
|
configDefinedByFile: string | null;
|
|
28
28
|
}[]>;
|
|
29
29
|
type PageContextExports = {
|
|
@@ -34,5 +34,4 @@ type PageContextExports = {
|
|
|
34
34
|
/** @deprecated */
|
|
35
35
|
pageExports: Record<string, unknown>;
|
|
36
36
|
};
|
|
37
|
-
declare function
|
|
38
|
-
declare function getExportUnion(exportsAll: ExportsAll, propName: string): string[];
|
|
37
|
+
declare function getPageContextExports(pageFiles: PageFile[], pageConfig: PageConfigRuntimeLoaded | null): PageContextExports;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { getExports };
|
|
1
|
+
export { getPageContextExports };
|
|
3
2
|
import { isScriptFile, isTemplateFile } from '../../utils/isScriptFile.js';
|
|
4
|
-
import { assert,
|
|
3
|
+
import { assert, isObject, assertWarning, assertUsage, makeLast, isBrowser } from '../utils.js';
|
|
5
4
|
import { assertDefaultExports, forbiddenDefaultExports } from './assert_exports_old_design.js';
|
|
6
|
-
import {
|
|
5
|
+
import { getConfigDefinedAtOptional } from '../page-configs/getConfigDefinedAt.js';
|
|
6
|
+
import { getConfigValueFilePathToShowToUser } from '../page-configs/helpers.js';
|
|
7
7
|
import pc from '@brillout/picocolors';
|
|
8
|
-
function
|
|
8
|
+
function getPageContextExports(pageFiles, pageConfig) {
|
|
9
9
|
const configEntries = {};
|
|
10
10
|
const config = {};
|
|
11
11
|
const exportsAll = {};
|
|
@@ -30,8 +30,8 @@ function getExports(pageFiles, pageConfig) {
|
|
|
30
30
|
if (pageConfig) {
|
|
31
31
|
Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
|
|
32
32
|
const { value } = configValue;
|
|
33
|
-
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue);
|
|
34
|
-
const configDefinedAt =
|
|
33
|
+
const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue.definedAtData);
|
|
34
|
+
const configDefinedAt = getConfigDefinedAtOptional('Config', configName, configValue.definedAtData);
|
|
35
35
|
config[configName] = config[configName] ?? value;
|
|
36
36
|
configEntries[configName] = configEntries[configName] ?? [];
|
|
37
37
|
// Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
|
|
@@ -69,7 +69,7 @@ function getExports(pageFiles, pageConfig) {
|
|
|
69
69
|
});
|
|
70
70
|
assert(!('default' in exports));
|
|
71
71
|
assert(!('default' in exportsAll));
|
|
72
|
-
|
|
72
|
+
const pageContextExports = {
|
|
73
73
|
config,
|
|
74
74
|
configEntries,
|
|
75
75
|
// TODO/v1-release: remove
|
|
@@ -77,6 +77,7 @@ function getExports(pageFiles, pageConfig) {
|
|
|
77
77
|
exportsAll,
|
|
78
78
|
pageExports
|
|
79
79
|
};
|
|
80
|
+
return pageContextExports;
|
|
80
81
|
}
|
|
81
82
|
function getExportValues(pageFile) {
|
|
82
83
|
const { filePath, fileExports } = pageFile;
|
|
@@ -127,11 +128,3 @@ function createObjectWithDeprecationWarning() {
|
|
|
127
128
|
}
|
|
128
129
|
});
|
|
129
130
|
}
|
|
130
|
-
function getExportUnion(exportsAll, propName) {
|
|
131
|
-
return (exportsAll[propName]
|
|
132
|
-
?.map((e) => {
|
|
133
|
-
assertUsage(hasProp(e, 'exportValue', 'string[]'), `${e.exportSource} should be an array of strings.`);
|
|
134
|
-
return e.exportValue;
|
|
135
|
-
})
|
|
136
|
-
.flat() ?? []);
|
|
137
|
-
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export type { PageFile } from './getPageFiles/getPageFileObject.js';
|
|
2
2
|
export type { ExportsAll, PageContextExports } from './getPageFiles/getExports.js';
|
|
3
|
-
export { getExportUnion } from './getPageFiles/getExports.js';
|
|
4
3
|
export { getPageFilesAll } from './getPageFiles/setPageFiles.js';
|
|
5
4
|
export { setPageFiles } from './getPageFiles/setPageFiles.js';
|
|
6
5
|
export { setPageFilesAsync } from './getPageFiles/setPageFiles.js';
|
|
7
6
|
export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
8
7
|
export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
9
|
-
export {
|
|
8
|
+
export { getPageContextExports } from './getPageFiles/getExports.js';
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
// Utils
|
|
2
|
-
export { getExportUnion } from './getPageFiles/getExports.js';
|
|
3
1
|
export { getPageFilesAll } from './getPageFiles/setPageFiles.js';
|
|
4
2
|
export { setPageFiles } from './getPageFiles/setPageFiles.js';
|
|
5
3
|
export { setPageFilesAsync } from './getPageFiles/setPageFiles.js';
|
|
6
4
|
export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
7
5
|
export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
|
|
8
|
-
export {
|
|
6
|
+
export { getPageContextExports } from './getPageFiles/getExports.js';
|
|
@@ -7,7 +7,8 @@ export { setIsPrerenderering };
|
|
|
7
7
|
// We export for old V0.4 design which doesn't support configooksTimeout
|
|
8
8
|
export { getHookTimeoutDefault };
|
|
9
9
|
import { getGlobalObject } from '../../utils/getGlobalObject.js';
|
|
10
|
-
import {
|
|
10
|
+
import { getHookFilePathToShowToUser } from '../page-configs/helpers.js';
|
|
11
|
+
import { getConfigValue } from '../page-configs/getConfigValue.js';
|
|
11
12
|
import { assert, assertUsage, checkType, isCallable, isObject } from '../utils.js';
|
|
12
13
|
import pc from '@brillout/picocolors';
|
|
13
14
|
const globalObject = getGlobalObject('getHook.ts', {
|
|
@@ -38,8 +39,8 @@ function getHookFromPageConfig(pageConfig, hookName) {
|
|
|
38
39
|
const hookFn = configValue.value;
|
|
39
40
|
if (!hookFn)
|
|
40
41
|
return null;
|
|
41
|
-
const hookFilePath = getHookFilePathToShowToUser(configValue);
|
|
42
|
-
// hook isn't a computed nor a cumulative config =>
|
|
42
|
+
const hookFilePath = getHookFilePathToShowToUser(configValue.definedAtData);
|
|
43
|
+
// hook isn't a computed nor a cumulative config => hookFilePath should always be defined
|
|
43
44
|
assert(hookFilePath);
|
|
44
45
|
assertHookFn(hookFn, { hookName, hookFilePath });
|
|
45
46
|
const hookTimeout = getHookTimeout(hooksTimeout, hookName);
|
|
@@ -52,8 +53,8 @@ function getHookFromPageConfigGlobal(pageConfigGlobal, hookName) {
|
|
|
52
53
|
const hookFn = configValue.value;
|
|
53
54
|
if (!hookFn)
|
|
54
55
|
return null;
|
|
55
|
-
const hookFilePath = getHookFilePathToShowToUser(configValue);
|
|
56
|
-
// hook isn't a computed nor a cumulative config =>
|
|
56
|
+
const hookFilePath = getHookFilePathToShowToUser(configValue.definedAtData);
|
|
57
|
+
// hook isn't a computed nor a cumulative config => hookFilePath should always be defined
|
|
57
58
|
assert(hookFilePath);
|
|
58
59
|
assertHookFn(hookFn, { hookName, hookFilePath });
|
|
59
60
|
// We could use the global value of configooksTimeout but it requires some non-trivial refactoring
|
|
@@ -241,7 +241,7 @@ type ConfigBuiltIn = {
|
|
|
241
241
|
*/
|
|
242
242
|
prerender?: boolean | ImportString;
|
|
243
243
|
/**
|
|
244
|
-
*
|
|
244
|
+
* Install Vike extensions.
|
|
245
245
|
*
|
|
246
246
|
* https://vike.dev/extends
|
|
247
247
|
*/
|
|
@@ -316,7 +316,7 @@ type ConfigBuiltIn = {
|
|
|
316
316
|
* https://vike.dev/hydrationCanBeAborted
|
|
317
317
|
*/
|
|
318
318
|
hydrationCanBeAborted?: boolean | ImportString;
|
|
319
|
-
/**
|
|
319
|
+
/** Add client code.
|
|
320
320
|
*
|
|
321
321
|
* https://vike.dev/client
|
|
322
322
|
*/
|