vike 0.4.171 → 0.4.172-commit-c1b0884
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/index.js +3 -0
- package/dist/cjs/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/cjs/node/plugin/plugins/config/index.js +9 -5
- 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/crawlPlusFiles.js +19 -7
- 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 +43 -85
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +5 -44
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +10 -51
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
- package/dist/cjs/node/plugin/resolveClientEntriesDev.js +59 -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/serializePageContextClientSide.js +1 -1
- 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/getPageAssets.js +9 -59
- 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 +24 -17
- 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 +3 -3
- 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/index.js +3 -0
- package/dist/esm/node/plugin/plugins/buildConfig.js +3 -4
- package/dist/esm/node/plugin/plugins/config/index.js +9 -5
- 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/crawlPlusFiles.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +20 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +4 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +43 -85
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +5 -44
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +10 -51
- 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/resolveClientEntriesDev.d.ts +4 -0
- package/dist/esm/node/plugin/resolveClientEntriesDev.js +56 -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/serializePageContextClientSide.js +1 -1
- 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/getPageAssets.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +9 -59
- 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 +24 -17
- 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/ConfigVike.d.ts +7 -0
- 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 +3 -3
- 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 +23 -14
- 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
|
@@ -4,12 +4,16 @@ import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageC
|
|
|
4
4
|
import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
5
5
|
import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
|
|
6
6
|
import { getGlobalContext } from '../globalContext.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValue.js';
|
|
8
8
|
function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
9
9
|
if (pageConfig) {
|
|
10
10
|
const { isClientSideRenderable, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const clientEntries = [];
|
|
12
|
+
const clientFilePath = getConfigValueRuntime(pageConfig, 'client', 'string')?.value ?? null;
|
|
13
|
+
if (clientFilePath)
|
|
14
|
+
clientEntries.push(clientFilePath);
|
|
15
|
+
if (isClientSideRenderable)
|
|
16
|
+
clientEntries.push(getVikeClientEntry(isClientRouting));
|
|
13
17
|
const clientDependencies = [];
|
|
14
18
|
clientDependencies.push({
|
|
15
19
|
id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, true),
|
|
@@ -41,15 +45,13 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
|
41
45
|
}
|
|
42
46
|
})
|
|
43
47
|
*/
|
|
44
|
-
|
|
45
|
-
if (clientEntry) {
|
|
48
|
+
clientEntries.forEach((clientEntry) => {
|
|
46
49
|
clientDependencies.push({
|
|
47
50
|
id: clientEntry,
|
|
48
51
|
onlyAssets: false,
|
|
49
52
|
eagerlyImported: false
|
|
50
53
|
});
|
|
51
|
-
|
|
52
|
-
}
|
|
54
|
+
});
|
|
53
55
|
return {
|
|
54
56
|
isHtmlOnly: !isClientSideRenderable,
|
|
55
57
|
isClientRouting,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { getCacheControl };
|
|
2
2
|
import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
|
|
3
|
-
import {
|
|
3
|
+
import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfigValue.js';
|
|
4
4
|
const defaultValue = 'no-store, max-age=0';
|
|
5
5
|
function getCacheControl(pageId, pageConfigs) {
|
|
6
6
|
// TODO/v1-release: remove
|
|
7
7
|
if (pageConfigs.length === 0)
|
|
8
8
|
return defaultValue;
|
|
9
9
|
const pageConfig = getPageConfig(pageId, pageConfigs);
|
|
10
|
-
const configValue =
|
|
10
|
+
const configValue = getConfigValueRuntime(pageConfig, 'cacheControl', 'string');
|
|
11
11
|
const value = configValue?.value;
|
|
12
12
|
if (value)
|
|
13
13
|
return value;
|
|
@@ -14,7 +14,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
|
14
14
|
}
|
|
15
15
|
preparePageContextForUserConsumptionServerSide(pageContext);
|
|
16
16
|
if (dataHook) {
|
|
17
|
-
const hookResult = await executeHook(() => dataHook.hookFn(pageContext), dataHook);
|
|
17
|
+
const hookResult = await executeHook(() => dataHook.hookFn(pageContext), dataHook, pageContext);
|
|
18
18
|
// Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
|
|
19
19
|
const pageContextFromHook = {
|
|
20
20
|
data: hookResult
|
|
@@ -22,7 +22,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
|
22
22
|
Object.assign(pageContext, pageContextFromHook);
|
|
23
23
|
}
|
|
24
24
|
if (onBeforeRenderHook) {
|
|
25
|
-
const hookResult = await executeHook(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook);
|
|
25
|
+
const hookResult = await executeHook(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook, pageContext);
|
|
26
26
|
assertOnBeforeRenderHookReturn(hookResult, onBeforeRenderHook.hookFilePath);
|
|
27
27
|
const pageContextFromHook = hookResult?.pageContext;
|
|
28
28
|
Object.assign(pageContext, pageContextFromHook);
|
|
@@ -13,7 +13,7 @@ async function executeOnRenderHtmlHook(pageContext) {
|
|
|
13
13
|
const { renderHook, hookFn } = getRenderHook(pageContext);
|
|
14
14
|
objectAssign(pageContext, { _renderHook: renderHook });
|
|
15
15
|
preparePageContextForUserConsumptionServerSide(pageContext);
|
|
16
|
-
const hookReturnValue = await executeHook(() => hookFn(pageContext), renderHook);
|
|
16
|
+
const hookReturnValue = await executeHook(() => hookFn(pageContext), renderHook, pageContext);
|
|
17
17
|
const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
|
|
18
18
|
Object.assign(pageContext, pageContextProvidedByRenderHook);
|
|
19
19
|
objectAssign(pageContext, { _pageContextPromise: pageContextPromise });
|
|
@@ -63,13 +63,13 @@ function getRenderHook(pageContext) {
|
|
|
63
63
|
assertUsage(false, [
|
|
64
64
|
`No ${hookName}() hook found, see https://vike.dev/${hookName}`
|
|
65
65
|
/*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
'See https://vike.dev/render-modes for more information.',
|
|
67
|
+
[
|
|
68
|
+
// 'Loaded config files (none of them define the onRenderHtml() hook):',
|
|
69
|
+
'Loaded server-side page files (none of them `export { render }`):',
|
|
70
|
+
...pageContext._pageFilePathsLoaded.map((f, i) => ` (${i + 1}): ${f}`)
|
|
71
|
+
].join('\n')
|
|
72
|
+
*/
|
|
73
73
|
].join(' '));
|
|
74
74
|
}
|
|
75
75
|
return hookFound;
|
|
@@ -95,8 +95,8 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
|
-
function getFixMsg(
|
|
99
|
-
const streamName = getStreamName(
|
|
98
|
+
function getFixMsg(kind, type) {
|
|
99
|
+
const streamName = getStreamName(kind, type);
|
|
100
100
|
assert(['a ', 'an ', 'the '].some((s) => streamName.startsWith(s)));
|
|
101
101
|
assert(renderHook);
|
|
102
102
|
const { hookFilePath, hookName } = renderHook;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { getPageAssets };
|
|
2
|
+
export { setResolveClientEntriesDev };
|
|
2
3
|
export type { PageAsset };
|
|
3
4
|
export type { GetPageAssets };
|
|
4
5
|
export type { PageContextGetPageAssets };
|
|
5
6
|
import { type MediaType } from './inferMediaType.js';
|
|
6
7
|
import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
8
|
+
import type { ResolveClientEntriesDev } from '../../plugin/resolveClientEntriesDev.js';
|
|
7
9
|
type PageAsset = {
|
|
8
10
|
src: string;
|
|
9
11
|
assetType: null | NonNullable<MediaType>['assetType'];
|
|
@@ -17,3 +19,4 @@ type PageContextGetPageAssets = {
|
|
|
17
19
|
_includeAssetsImportedByServer: boolean;
|
|
18
20
|
};
|
|
19
21
|
declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
|
|
22
|
+
declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
export { getPageAssets };
|
|
2
|
-
|
|
2
|
+
export { setResolveClientEntriesDev };
|
|
3
|
+
import { assert, prependBase, toPosixPath, unique, getGlobalObject } from '../utils.js';
|
|
3
4
|
import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
|
|
4
5
|
import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
|
|
5
6
|
import { inferMediaType } from './inferMediaType.js';
|
|
6
7
|
import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
|
|
7
8
|
import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
|
|
8
9
|
import { getGlobalContext } from '../globalContext.js';
|
|
9
|
-
|
|
10
|
+
const globalObject = getGlobalObject('getPageAssets.ts', {
|
|
11
|
+
resolveClientEntriesDev: null
|
|
12
|
+
});
|
|
10
13
|
async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
11
14
|
const globalContext = getGlobalContext();
|
|
12
15
|
const isDev = !globalContext.isProduction;
|
|
@@ -14,7 +17,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
14
17
|
let clientEntriesSrc;
|
|
15
18
|
if (isDev) {
|
|
16
19
|
const { viteDevServer } = globalContext;
|
|
17
|
-
clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => resolveClientEntriesDev(clientEntry, viteDevServer)));
|
|
20
|
+
clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer)));
|
|
18
21
|
assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
|
|
19
22
|
}
|
|
20
23
|
else {
|
|
@@ -54,62 +57,6 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
54
57
|
sortPageAssetsForEarlyHintsHeader(pageAssets);
|
|
55
58
|
return pageAssets;
|
|
56
59
|
}
|
|
57
|
-
async function resolveClientEntriesDev(clientEntry, viteDevServer) {
|
|
58
|
-
let root = viteDevServer.config.root;
|
|
59
|
-
assert(root);
|
|
60
|
-
root = toPosixPath(root);
|
|
61
|
-
// The `?import` suffix is needed for MDX to be transpiled:
|
|
62
|
-
// - Not transpiled: `/pages/markdown.page.mdx`
|
|
63
|
-
// - Transpiled: `/pages/markdown.page.mdx?import`
|
|
64
|
-
// But `?import` doesn't work with `/@fs/`:
|
|
65
|
-
// - Not transpiled: /@fs/home/runner/work/vike/vike/examples/react-full/pages/markdown.page.mdx
|
|
66
|
-
// - Not transpiled: /@fs/home/runner/work/vike/vike/examples/react-full/pages/markdown.page.mdx?import
|
|
67
|
-
if (clientEntry.endsWith('?import')) {
|
|
68
|
-
assert(clientEntry.startsWith('/'));
|
|
69
|
-
return clientEntry;
|
|
70
|
-
}
|
|
71
|
-
assertPosixPath(clientEntry);
|
|
72
|
-
let filePath;
|
|
73
|
-
if (clientEntry.startsWith('/')) {
|
|
74
|
-
filePath = pathJoin(root, clientEntry);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
const { createRequire } = (await import_('module')).default;
|
|
78
|
-
const { dirname } = (await import_('path')).default;
|
|
79
|
-
const { fileURLToPath } = (await import_('url')).default;
|
|
80
|
-
// @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
|
|
81
|
-
const importMetaUrl = import.meta.url;
|
|
82
|
-
const require_ = createRequire(importMetaUrl);
|
|
83
|
-
const __dirname_ = dirname(fileURLToPath(importMetaUrl));
|
|
84
|
-
// @ts-expect-error
|
|
85
|
-
// Bun workaround https://github.com/vikejs/vike/pull/1048
|
|
86
|
-
const res = typeof Bun !== 'undefined' ? (toPath) => Bun.resolveSync(toPath, __dirname_) : require_.resolve;
|
|
87
|
-
if (clientEntry.startsWith('@@vike/')) {
|
|
88
|
-
assert(clientEntry.endsWith('.js'));
|
|
89
|
-
try {
|
|
90
|
-
// For Vitest (which doesn't resolve vike to its dist but to its source files)
|
|
91
|
-
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/runtime/renderPage/getPageAssets.js
|
|
92
|
-
filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts')));
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// For users
|
|
96
|
-
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/runtime/renderPage/getPageAssets.js
|
|
97
|
-
filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
assertIsNpmPackageImport(clientEntry);
|
|
102
|
-
filePath = res(clientEntry);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (!filePath.startsWith('/')) {
|
|
106
|
-
assert(process.platform === 'win32');
|
|
107
|
-
filePath = '/' + filePath;
|
|
108
|
-
}
|
|
109
|
-
filePath = '/@fs' + filePath;
|
|
110
|
-
assertPosixPath(filePath);
|
|
111
|
-
return filePath;
|
|
112
|
-
}
|
|
113
60
|
function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
114
61
|
const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
|
|
115
62
|
assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
@@ -117,3 +64,6 @@ function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
|
117
64
|
assert(!file.startsWith('/'));
|
|
118
65
|
return '/' + file;
|
|
119
66
|
}
|
|
67
|
+
function setResolveClientEntriesDev(resolveClientEntriesDev) {
|
|
68
|
+
globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
|
|
69
|
+
}
|
|
@@ -14,16 +14,11 @@ type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContex
|
|
|
14
14
|
type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
|
|
15
15
|
declare function loadUserFilesServerSide(pageContext: {
|
|
16
16
|
_pageId: string;
|
|
17
|
-
} & PageContext_loadUserFilesServerSide): Promise<{
|
|
17
|
+
} & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
18
18
|
Page: unknown;
|
|
19
19
|
_isHtmlOnly: boolean;
|
|
20
20
|
_passToClient: string[];
|
|
21
21
|
_pageFilePathsLoaded: string[];
|
|
22
|
-
config: Record<string, unknown>;
|
|
23
|
-
configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
|
|
24
|
-
exports: Record<string, unknown>;
|
|
25
|
-
exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
|
|
26
|
-
pageExports: Record<string, unknown>;
|
|
27
22
|
} & {
|
|
28
23
|
__getPageAssets: () => Promise<PageAsset[]>;
|
|
29
24
|
}>;
|
|
@@ -10,7 +10,7 @@ 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 [{ pageFilesLoaded,
|
|
13
|
+
const [{ pageFilesLoaded, 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
|
]);
|
|
@@ -35,8 +35,8 @@ async function loadUserFilesServerSide(pageContext) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
const pageContextAddendum = {};
|
|
38
|
+
objectAssign(pageContextAddendum, pageContextExports);
|
|
38
39
|
objectAssign(pageContextAddendum, {
|
|
39
|
-
...pageContextExports,
|
|
40
40
|
Page: pageContextExports.exports.Page,
|
|
41
41
|
_isHtmlOnly: isHtmlOnly,
|
|
42
42
|
_passToClient: passToClient,
|
|
@@ -101,8 +101,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
101
101
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
102
102
|
const pageContextExports = getPageContextExports(pageFilesServerSide, pageConfigLoaded);
|
|
103
103
|
return {
|
|
104
|
-
|
|
105
|
-
pageFilesLoaded: pageFilesServerSide
|
|
106
|
-
pageConfigLoaded
|
|
104
|
+
pageContextExports,
|
|
105
|
+
pageFilesLoaded: pageFilesServerSide
|
|
107
106
|
};
|
|
108
107
|
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
export { logErrorHint };
|
|
2
|
-
export {
|
|
3
|
-
export { isKnownError };
|
|
4
|
-
export { getHint };
|
|
2
|
+
export { getErrorHint };
|
|
5
3
|
declare function logErrorHint(error: unknown): void;
|
|
6
|
-
declare function
|
|
7
|
-
declare function isKnownError(error: unknown): false | string;
|
|
8
|
-
declare function isCjsEsmError(error: unknown): boolean | string[];
|
|
4
|
+
declare function getErrorHint(error: unknown): null | string;
|