vike 0.4.196 → 0.4.197-commit-9db6c02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client/client-routing-runtime/prefetch/PrefetchSetting.js +2 -0
- package/dist/cjs/client/server-routing-runtime/onLoad.js +7 -0
- package/dist/cjs/client/server-routing-runtime/utils.js +34 -0
- package/dist/cjs/client/shared/getPageContextProxyForUser.js +79 -0
- package/dist/cjs/client/shared/preparePageContextForUserConsumptionClientSide.js +46 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +17 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +26 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformFileImports.js → transformPointerImports.js} +3 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +44 -47
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -1
- package/dist/cjs/node/prerender/runPrerender.js +5 -5
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +2 -2
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +3 -3
- package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +1 -1
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +4 -4
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -7
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -4
- package/dist/cjs/node/runtime/renderPage.js +8 -8
- package/dist/cjs/shared/addIs404ToPageProps.js +1 -1
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +2 -2
- package/dist/cjs/shared/preparePageContextForUserConsumption.js +34 -0
- package/dist/cjs/shared/route/executeGuardHook.js +1 -1
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +6 -6
- package/dist/cjs/shared/route/index.js +3 -3
- package/dist/cjs/shared/route/resolveRouteString.js +10 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/isNpmPackage.js +4 -0
- package/dist/cjs/utils/isScriptFile.js +3 -3
- package/dist/esm/client/client-routing-runtime/entry.js +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +10 -0
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.js +25 -0
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +28 -18
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +39 -32
- package/dist/esm/client/client-routing-runtime/history.js +1 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/{installClientRouter.js → initClientRouter.js} +11 -8
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/{onLinkClick.js → initOnLinkClick.js} +2 -2
- package/dist/esm/client/client-routing-runtime/isClientSideRoutable.js +1 -0
- package/dist/esm/client/client-routing-runtime/onBrowserHistoryNavigation.js +1 -1
- package/dist/esm/client/client-routing-runtime/prefetch/PrefetchSetting.d.ts +7 -0
- package/dist/esm/client/client-routing-runtime/prefetch/PrefetchSetting.js +1 -0
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +8 -7
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.js +74 -67
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +16 -5
- package/dist/esm/client/client-routing-runtime/prefetch.js +167 -64
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +115 -28
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.js +1 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +1 -1
- package/dist/esm/client/shared/getPageContextSerializedInHtml.d.ts +1 -1
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +1 -1
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +1 -1
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +20 -29
- package/dist/esm/client/shared/removeFoucBuster.js +17 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +17 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +25 -22
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformFileImports.d.ts → transformPointerImports.d.ts} +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformFileImports.js → transformPointerImports.js} +3 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +45 -48
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -1
- package/dist/esm/node/prerender/runPrerender.js +5 -5
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets.d.ts +1 -1
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +1 -1
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +3 -3
- package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/debugPageFiles.js +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +4 -4
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -8
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +6 -6
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -4
- package/dist/esm/node/runtime/renderPage.js +8 -8
- package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -1
- package/dist/esm/shared/addIs404ToPageProps.js +1 -1
- package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +21 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
- package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +5 -0
- package/dist/esm/shared/preparePageContextForUserConsumption.js +32 -0
- package/dist/esm/shared/route/executeGuardHook.d.ts +1 -1
- package/dist/esm/shared/route/executeGuardHook.js +1 -1
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +6 -6
- package/dist/esm/shared/route/index.d.ts +1 -1
- package/dist/esm/shared/route/index.js +3 -3
- package/dist/esm/shared/route/resolveRouteString.d.ts +2 -15
- package/dist/esm/shared/route/resolveRouteString.js +10 -1
- package/dist/esm/shared/types.d.ts +6 -2
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/isNpmPackage.d.ts +2 -0
- package/dist/esm/utils/isNpmPackage.js +4 -0
- package/dist/esm/utils/isScriptFile.d.ts +2 -2
- package/dist/esm/utils/isScriptFile.js +3 -3
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/shared/sortPageContext.js +0 -12
- package/dist/esm/client/client-routing-runtime/installClientRouter.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/onLinkClick.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/prefetch/alreadyPrefetched.d.ts +0 -4
- package/dist/esm/client/client-routing-runtime/prefetch/alreadyPrefetched.js +0 -16
- package/dist/esm/shared/sortPageContext.d.ts +0 -2
- package/dist/esm/shared/sortPageContext.js +0 -10
- /package/{readme.md → README.md} +0 -0
|
@@ -10,7 +10,7 @@ type PageContextDebugRouteMatches = {
|
|
|
10
10
|
declare function debugPageFiles({ pageContext, isHtmlOnly, isClientRouting, pageFilesLoaded, pageFilesServerSide, pageFilesClientSide, clientEntries, clientDependencies }: {
|
|
11
11
|
pageContext: {
|
|
12
12
|
urlOriginal: string;
|
|
13
|
-
|
|
13
|
+
pageId: string;
|
|
14
14
|
_pageFilesAll: PageFile[];
|
|
15
15
|
_pageConfigs: PageConfigRuntime[];
|
|
16
16
|
} & PageContextDebugRouteMatches;
|
|
@@ -7,7 +7,7 @@ function debugPageFiles({ pageContext, isHtmlOnly, isClientRouting, pageFilesLoa
|
|
|
7
7
|
debug('All page files:', printPageFiles(pageContext._pageFilesAll, true)); // TODO
|
|
8
8
|
debug(`URL:`, pageContext.urlOriginal);
|
|
9
9
|
debug.options({ serialization: { emptyArray: 'No match' } })(`Routing:`, printRouteMatches(pageContext._debugRouteMatches));
|
|
10
|
-
debug(`pageId:`, pageContext.
|
|
10
|
+
debug(`pageId:`, pageContext.pageId);
|
|
11
11
|
debug('Page type:', isHtmlOnly ? 'HTML-only' : 'SSR/SPA');
|
|
12
12
|
debug(`Routing type:`, !isHtmlOnly && isClientRouting ? 'Client Routing' : 'Server Routing');
|
|
13
13
|
debug('Server-side page files:', printPageFiles(pageFilesLoaded));
|
|
@@ -2,6 +2,6 @@ export { executeOnBeforeRenderAndDataHooks };
|
|
|
2
2
|
import { type PageContextExports } from '../../../shared/getPageFiles.js';
|
|
3
3
|
import { type PageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
|
|
4
4
|
declare function executeOnBeforeRenderAndDataHooks(pageContext: {
|
|
5
|
-
|
|
5
|
+
pageId: string;
|
|
6
6
|
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
7
7
|
} & PageContextExports & PageContextForUserConsumptionServerSide): Promise<void>;
|
|
@@ -12,7 +12,7 @@ type RenderHook = Hook & {
|
|
|
12
12
|
};
|
|
13
13
|
type HookName = 'onRenderHtml' | 'render';
|
|
14
14
|
declare function executeOnRenderHtmlHook(pageContext: PageContextForUserConsumptionServerSide & PageContextSerialization & {
|
|
15
|
-
|
|
15
|
+
pageId: string;
|
|
16
16
|
_pageConfigs: PageConfigRuntime[];
|
|
17
17
|
__getPageAssets: GetPageAssets;
|
|
18
18
|
_isHtmlOnly: boolean;
|
|
@@ -6,7 +6,7 @@ declare function handleErrorWithoutErrorPage<PageContext extends {
|
|
|
6
6
|
isClientSideNavigation: boolean;
|
|
7
7
|
errorWhileRendering: null | Error;
|
|
8
8
|
is404: null | boolean;
|
|
9
|
-
|
|
9
|
+
pageId: null;
|
|
10
10
|
_pageFilesAll: PageFile[];
|
|
11
11
|
_pageConfigs: PageConfigRuntime[];
|
|
12
12
|
urlOriginal: string;
|
|
@@ -6,7 +6,7 @@ import { createHttpResponsePage, createHttpResponseError } from './createHttpRes
|
|
|
6
6
|
import pc from '@brillout/picocolors';
|
|
7
7
|
// When the user hasn't defined _error.page.js
|
|
8
8
|
async function handleErrorWithoutErrorPage(pageContext) {
|
|
9
|
-
assert(pageContext.
|
|
9
|
+
assert(pageContext.pageId === null);
|
|
10
10
|
assert(pageContext.errorWhileRendering || pageContext.is404);
|
|
11
11
|
{
|
|
12
12
|
const isV1 = pageContext._pageConfigs.length > 0;
|
|
@@ -13,7 +13,7 @@ type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContex
|
|
|
13
13
|
};
|
|
14
14
|
type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
|
|
15
15
|
declare function loadUserFilesServerSide(pageContext: {
|
|
16
|
-
|
|
16
|
+
pageId: string;
|
|
17
17
|
} & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageContextExports & {
|
|
18
18
|
Page: unknown;
|
|
19
19
|
_isHtmlOnly: boolean;
|
|
@@ -9,12 +9,12 @@ import { analyzePage } from './analyzePage.js';
|
|
|
9
9
|
import { getGlobalContext } from '../globalContext.js';
|
|
10
10
|
import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
|
|
11
11
|
async function loadUserFilesServerSide(pageContext) {
|
|
12
|
-
const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext.
|
|
12
|
+
const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
13
13
|
const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
|
|
14
|
-
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.
|
|
15
|
-
analyzePageClientSideInit(pageContext._pageFilesAll, pageContext.
|
|
14
|
+
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !getGlobalContext().isProduction),
|
|
15
|
+
analyzePageClientSideInit(pageContext._pageFilesAll, pageContext.pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
16
16
|
]);
|
|
17
|
-
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.
|
|
17
|
+
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.pageId);
|
|
18
18
|
const isV1Design = !!pageConfig;
|
|
19
19
|
const passToClient = [];
|
|
20
20
|
const errMsg = ' should be an array of strings.';
|
package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
|
|
|
12
12
|
urlParsed: PageContextUrlInternal['urlParsed'];
|
|
13
13
|
routeParams: Record<string, string>;
|
|
14
14
|
Page: unknown;
|
|
15
|
-
|
|
15
|
+
pageId: string;
|
|
16
16
|
_pageConfigs: PageConfigRuntime[];
|
|
17
17
|
is404: null | boolean;
|
|
18
18
|
isClientSideNavigation: boolean;
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export { preparePageContextForUserConsumptionServerSide };
|
|
2
|
-
import { assert, isPlainObject
|
|
3
|
-
import { sortPageContext } from '../../../shared/sortPageContext.js';
|
|
2
|
+
import { assert, isPlainObject } from '../utils.js';
|
|
4
3
|
import { assertPageContextUrl } from '../../../shared/getPageContextUrlComputed.js';
|
|
5
|
-
import {
|
|
4
|
+
import { preparePageContextForUserConsumption } from '../../../shared/preparePageContextForUserConsumption.js';
|
|
6
5
|
function preparePageContextForUserConsumptionServerSide(pageContext) {
|
|
7
6
|
assertPageContextUrl(pageContext);
|
|
8
7
|
assert(isPlainObject(pageContext.routeParams));
|
|
9
8
|
assert('Page' in pageContext);
|
|
10
|
-
assert(isObject(pageContext.pageExports));
|
|
11
|
-
assert(isObject(pageContext.exports));
|
|
12
|
-
assert(isObject(pageContext.exportsAll));
|
|
13
9
|
assert(typeof pageContext.isClientSideNavigation === 'boolean');
|
|
14
|
-
|
|
15
|
-
addIs404ToPageProps(pageContext);
|
|
10
|
+
preparePageContextForUserConsumption(pageContext);
|
|
16
11
|
}
|
|
@@ -18,7 +18,7 @@ type PageContextAfterRender = {
|
|
|
18
18
|
errorWhileRendering: null | Error;
|
|
19
19
|
};
|
|
20
20
|
declare function renderPageAlreadyRouted<PageContext extends {
|
|
21
|
-
|
|
21
|
+
pageId: string;
|
|
22
22
|
_pageContextAlreadyProvidedByOnPrerenderHook?: true;
|
|
23
23
|
is404: null | boolean;
|
|
24
24
|
routeParams: Record<string, string>;
|
|
@@ -27,7 +27,7 @@ declare function renderPageAlreadyRouted<PageContext extends {
|
|
|
27
27
|
} & PageContextInitEnhanced & PageContextUrlInternal & PageContext_loadUserFilesServerSide>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
|
|
28
28
|
declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles & {
|
|
29
29
|
routeParams: Record<string, string>;
|
|
30
|
-
|
|
30
|
+
pageId: string;
|
|
31
31
|
_urlRewrite: null;
|
|
32
32
|
_httpRequestId: number | null;
|
|
33
33
|
_usesClientRouter: boolean;
|
|
@@ -74,7 +74,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
74
74
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
75
75
|
} & {
|
|
76
76
|
routeParams: Record<string, string>;
|
|
77
|
-
|
|
77
|
+
pageId: string;
|
|
78
78
|
_urlRewrite: null;
|
|
79
79
|
_httpRequestId: number | null;
|
|
80
80
|
_usesClientRouter: boolean;
|
|
@@ -125,7 +125,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
125
125
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
126
126
|
} & {
|
|
127
127
|
routeParams: Record<string, string>;
|
|
128
|
-
|
|
128
|
+
pageId: string;
|
|
129
129
|
_urlRewrite: null;
|
|
130
130
|
_httpRequestId: number | null;
|
|
131
131
|
_usesClientRouter: boolean;
|
|
@@ -177,7 +177,7 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
177
177
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
178
178
|
} & {
|
|
179
179
|
routeParams: Record<string, string>;
|
|
180
|
-
|
|
180
|
+
pageId: string;
|
|
181
181
|
_urlRewrite: null;
|
|
182
182
|
_httpRequestId: number | null;
|
|
183
183
|
_usesClientRouter: boolean;
|
|
@@ -228,7 +228,7 @@ declare function prerender404Page(renderContext: RenderContext, pageContextInit_
|
|
|
228
228
|
__getPageAssets: () => Promise<import("./getPageAssets.js").PageAsset[]>;
|
|
229
229
|
} & {
|
|
230
230
|
routeParams: Record<string, string>;
|
|
231
|
-
|
|
231
|
+
pageId: string;
|
|
232
232
|
_urlRewrite: null;
|
|
233
233
|
_httpRequestId: number | null;
|
|
234
234
|
_usesClientRouter: boolean;
|
|
@@ -23,12 +23,12 @@ import pc from '@brillout/picocolors';
|
|
|
23
23
|
import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
|
|
24
24
|
import { assertV1Design } from '../../shared/assertV1Design.js';
|
|
25
25
|
async function renderPageAlreadyRouted(pageContext) {
|
|
26
|
-
// pageContext.
|
|
26
|
+
// pageContext.pageId can either be the:
|
|
27
27
|
// - ID of the page matching the routing, or the
|
|
28
28
|
// - ID of the error page `_error.page.js`.
|
|
29
|
-
assert(hasProp(pageContext, '
|
|
29
|
+
assert(hasProp(pageContext, 'pageId', 'string'));
|
|
30
30
|
const isError = pageContext.is404 || !!pageContext.errorWhileRendering;
|
|
31
|
-
assert(isError === (pageContext.
|
|
31
|
+
assert(isError === (pageContext.pageId === getErrorPageId(pageContext._pageFilesAll, pageContext._pageConfigs)));
|
|
32
32
|
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
33
33
|
if (!isError) {
|
|
34
34
|
await executeGuardHook(pageContext, (pageContext) => preparePageContextForUserConsumptionServerSide(pageContext));
|
|
@@ -90,7 +90,7 @@ async function prerender404Page(renderContext, pageContextInit_) {
|
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
const pageContext = {
|
|
93
|
-
|
|
93
|
+
pageId: errorPageId,
|
|
94
94
|
_httpRequestId: null,
|
|
95
95
|
_urlRewrite: null,
|
|
96
96
|
is404: true,
|
|
@@ -157,11 +157,11 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
|
|
|
157
157
|
{
|
|
158
158
|
const errorPageId = getErrorPageId(renderContext.pageFilesAll, renderContext.pageConfigs);
|
|
159
159
|
if (!errorPageId) {
|
|
160
|
-
objectAssign(pageContextErrorPageInit, {
|
|
160
|
+
objectAssign(pageContextErrorPageInit, { pageId: null });
|
|
161
161
|
return handleErrorWithoutErrorPage(pageContextErrorPageInit);
|
|
162
162
|
}
|
|
163
163
|
else {
|
|
164
|
-
objectAssign(pageContextErrorPageInit, {
|
|
164
|
+
objectAssign(pageContextErrorPageInit, { pageId: errorPageId });
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
let pageContextErrorPage;
|
|
@@ -270,17 +270,17 @@ async function renderPageNominal(pageContext) {
|
|
|
270
270
|
{
|
|
271
271
|
const pageContextFromRoute = await route(pageContext);
|
|
272
272
|
objectAssign(pageContext, pageContextFromRoute);
|
|
273
|
-
objectAssign(pageContext, { is404: pageContext.
|
|
274
|
-
if (pageContext.
|
|
273
|
+
objectAssign(pageContext, { is404: pageContext.pageId ? null : true });
|
|
274
|
+
if (pageContext.pageId === null) {
|
|
275
275
|
const errorPageId = getErrorPageId(pageContext._pageFilesAll, pageContext._pageConfigs);
|
|
276
276
|
if (!errorPageId) {
|
|
277
|
-
assert(hasProp(pageContext, '
|
|
277
|
+
assert(hasProp(pageContext, 'pageId', 'null'));
|
|
278
278
|
return handleErrorWithoutErrorPage(pageContext);
|
|
279
279
|
}
|
|
280
|
-
objectAssign(pageContext, {
|
|
280
|
+
objectAssign(pageContext, { pageId: errorPageId });
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
|
-
assert(hasProp(pageContext, '
|
|
283
|
+
assert(hasProp(pageContext, 'pageId', 'string'));
|
|
284
284
|
assert(pageContext.errorWhileRendering === null);
|
|
285
285
|
// Render
|
|
286
286
|
const pageContextAfterRender = await renderPageAlreadyRouted(pageContext);
|
|
@@ -400,7 +400,7 @@ pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageIn
|
|
|
400
400
|
assert(abortCall);
|
|
401
401
|
assertUsage(errorPageId, `You called ${pc.cyan(abortCall)} but you didn't define an error page, make sure to define one https://vike.dev/error-page`);
|
|
402
402
|
const pageContext = createPageContext({});
|
|
403
|
-
objectAssign(pageContext, {
|
|
403
|
+
objectAssign(pageContext, { pageId: errorPageId });
|
|
404
404
|
objectAssign(pageContext, pageContextAbort);
|
|
405
405
|
objectAssign(pageContext, pageContextErrorPageInit);
|
|
406
406
|
objectAssign(pageContext, renderContext);
|
|
@@ -2,6 +2,6 @@ export { addIs404ToPageProps };
|
|
|
2
2
|
import type { PageConfigRuntime } from './page-configs/PageConfig.js';
|
|
3
3
|
declare function addIs404ToPageProps(pageContext: Record<string, unknown> & PageContextAssertIs404): void;
|
|
4
4
|
type PageContextAssertIs404 = {
|
|
5
|
-
|
|
5
|
+
pageId: string;
|
|
6
6
|
_pageConfigs: PageConfigRuntime[];
|
|
7
7
|
};
|
|
@@ -6,7 +6,7 @@ function addIs404ToPageProps(pageContext) {
|
|
|
6
6
|
addIs404(pageContext);
|
|
7
7
|
}
|
|
8
8
|
function assertIs404(pageContext) {
|
|
9
|
-
if (isErrorPage(pageContext.
|
|
9
|
+
if (isErrorPage(pageContext.pageId, pageContext._pageConfigs)) {
|
|
10
10
|
assert(hasProp(pageContext, 'is404', 'boolean'));
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -10,6 +10,6 @@ function assertPageContextProvidedByUser(pageContextProvidedByUser, { hookName,
|
|
|
10
10
|
assertUsage(!('_objectCreatedByVike' in pageContextProvidedByUser), `${errPrefix} shouldn't be the whole ${pc.cyan('pageContext')} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`);
|
|
11
11
|
// In principle, it's possible to use onBeforeRoute()` to override and define the whole routing.
|
|
12
12
|
// Is that a good idea to allow users to do this? Beyond deep integration with Vue Router or React Router, is there a use case for this?
|
|
13
|
-
assertWarning(!('
|
|
13
|
+
assertWarning(!('pageId' in pageContextProvidedByUser), `${errPrefix} sets ${pc.cyan('pageContext.pageId')} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`, { onlyOnce: true });
|
|
14
14
|
assertUsage(!('is404' in pageContextProvidedByUser), `${errPrefix} sets ${pc.cyan('pageContext.is404')} which is forbidden, use ${pc.cyan('throw render()')} instead, see https://vike.dev/render`);
|
|
15
15
|
}
|
|
@@ -30,13 +30,14 @@ export type { OnRenderHtmlAsync };
|
|
|
30
30
|
export type { OnRenderHtmlSync };
|
|
31
31
|
export type { RouteAsync };
|
|
32
32
|
export type { RouteSync };
|
|
33
|
+
export type { KeepScrollPosition };
|
|
34
|
+
import type { PrefetchSetting, PrefetchStaticAssets } from '../../client/client-routing-runtime/prefetch/PrefetchSetting.js';
|
|
33
35
|
import type { ConfigDefinition } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js';
|
|
34
36
|
import type { DocumentHtml } from '../../node/runtime/html/renderHtml.js';
|
|
35
37
|
import type { ConfigVikeUserProvided } from '../ConfigVike.js';
|
|
36
38
|
import type { Vike, VikePackages } from '../VikeNamespace.js';
|
|
37
39
|
import type { HooksTimeoutProvidedByUser } from '../hooks/getHook.js';
|
|
38
40
|
import type { PageContextClient, PageContextServer } from '../types.js';
|
|
39
|
-
import type { PrefetchStaticAssets } from '../types/PrefetchStaticAssets.js';
|
|
40
41
|
type HookName = HookNamePage | HookNameGlobal | HookNameOldDesign;
|
|
41
42
|
type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data';
|
|
42
43
|
type HookNameGlobal = 'onBeforePrerender' | 'onBeforeRoute' | 'onPrerenderStart';
|
|
@@ -218,6 +219,11 @@ type RouteSync = (pageContext: PageContextServer | PageContextClient) => {
|
|
|
218
219
|
routeParams?: Record<string, string>;
|
|
219
220
|
precedence?: number;
|
|
220
221
|
} | boolean;
|
|
222
|
+
/** Whether the page scrolls to the top upon navigation.
|
|
223
|
+
*
|
|
224
|
+
* https://vike.dev/keepScrollPosition
|
|
225
|
+
*/
|
|
226
|
+
type KeepScrollPosition = boolean | string | string[] | ((pageContext: PageContextClient) => boolean | string | string[]);
|
|
221
227
|
/** Page configuration.
|
|
222
228
|
*
|
|
223
229
|
* https://vike.dev/config
|
|
@@ -338,6 +344,15 @@ type ConfigBuiltIn = {
|
|
|
338
344
|
* https://vike.dev/meta
|
|
339
345
|
*/
|
|
340
346
|
meta?: ConfigMeta | ImportString;
|
|
347
|
+
/**
|
|
348
|
+
* @experimental: DON'T USE: the API *will* have breaking changes upon any minor version release.
|
|
349
|
+
*
|
|
350
|
+
* Prefetch pages/links.
|
|
351
|
+
*
|
|
352
|
+
* https://vike.dev/prefetch
|
|
353
|
+
*/
|
|
354
|
+
prefetch?: PrefetchSetting | ImportString;
|
|
355
|
+
/** @deprecated Use `prefetch` setting (https://vike.dev/prefetch) instead. */
|
|
341
356
|
/** Prefetch links.
|
|
342
357
|
*
|
|
343
358
|
* https://vike.dev/prefetchStaticAssets
|
|
@@ -369,6 +384,11 @@ type ConfigBuiltIn = {
|
|
|
369
384
|
* https://vike.dev/require
|
|
370
385
|
*/
|
|
371
386
|
require?: Record<string, string>;
|
|
387
|
+
/** Whether the page scrolls to the top upon navigation.
|
|
388
|
+
*
|
|
389
|
+
* https://vike.dev/keepScrollPosition
|
|
390
|
+
*/
|
|
391
|
+
keepScrollPosition?: KeepScrollPosition;
|
|
372
392
|
};
|
|
373
393
|
type ConfigMeta = Record<string, ConfigDefinition>;
|
|
374
394
|
type ImportString = `import:${string}`;
|
|
@@ -2,7 +2,7 @@ export { serializeConfigValues };
|
|
|
2
2
|
import { assertIsNotProductionRuntime } from '../../../utils/assertIsNotProductionRuntime.js';
|
|
3
3
|
import { assert, assertUsage, getPropAccessNotation } from '../../../node/plugin/utils.js';
|
|
4
4
|
import { addImportStatement } from '../../../node/plugin/plugins/importUserCode/addImportStatement.js';
|
|
5
|
-
import { parsePointerImportData } from '../../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/
|
|
5
|
+
import { parsePointerImportData } from '../../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformPointerImports.js';
|
|
6
6
|
import { getConfigValueFilePathToShowToUser } from '../helpers.js';
|
|
7
7
|
import { stringify } from '@brillout/json-serializer/stringify';
|
|
8
8
|
import pc from '@brillout/picocolors';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { preparePageContextForUserConsumption };
|
|
2
|
+
import type { PageContextForUserConsumptionClientSide } from '../client/shared/preparePageContextForUserConsumptionClientSide.js';
|
|
3
|
+
import type { PageContextForUserConsumptionServerSide } from '../node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js';
|
|
4
|
+
type PageContextForUserConsumption = PageContextForUserConsumptionServerSide | PageContextForUserConsumptionClientSide;
|
|
5
|
+
declare function preparePageContextForUserConsumption(pageContext: PageContextForUserConsumption): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { preparePageContextForUserConsumption };
|
|
2
|
+
import { assert, assertWarning, compareString } from './utils.js';
|
|
3
|
+
import { addIs404ToPageProps } from './addIs404ToPageProps.js';
|
|
4
|
+
function preparePageContextForUserConsumption(pageContext) {
|
|
5
|
+
assert(pageContext.pageId);
|
|
6
|
+
assert('config' in pageContext);
|
|
7
|
+
assert('configEntries' in pageContext);
|
|
8
|
+
addIs404ToPageProps(pageContext);
|
|
9
|
+
// TODO/next-major-release: remove
|
|
10
|
+
if (!('_pageId' in pageContext)) {
|
|
11
|
+
Object.defineProperty(pageContext, '_pageId', {
|
|
12
|
+
get() {
|
|
13
|
+
assertWarning(false, 'pageContext._pageId has been renamed to pageContext.pageId', {
|
|
14
|
+
showStackTrace: true,
|
|
15
|
+
onlyOnce: true
|
|
16
|
+
});
|
|
17
|
+
return pageContext.pageId;
|
|
18
|
+
},
|
|
19
|
+
enumerable: false
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
// For a more readable `console.log(pageContext)` output
|
|
23
|
+
sortPageContext(pageContext);
|
|
24
|
+
}
|
|
25
|
+
// Sort `pageContext` keys alphabetically, in order to make reading the `console.log(pageContext)` output easier
|
|
26
|
+
function sortPageContext(pageContext) {
|
|
27
|
+
let descriptors = Object.getOwnPropertyDescriptors(pageContext);
|
|
28
|
+
for (const key of Object.keys(pageContext))
|
|
29
|
+
delete pageContext[key];
|
|
30
|
+
descriptors = Object.fromEntries(Object.entries(descriptors).sort(([key1], [key2]) => compareString(key1, key2)));
|
|
31
|
+
Object.defineProperties(pageContext, descriptors);
|
|
32
|
+
}
|
|
@@ -2,7 +2,7 @@ export { executeGuardHook };
|
|
|
2
2
|
import type { PageContextExports, PageFile } from '../getPageFiles.js';
|
|
3
3
|
import type { PageConfigRuntime } from '../page-configs/PageConfig.js';
|
|
4
4
|
declare function executeGuardHook<T extends PageContextExports & {
|
|
5
|
-
|
|
5
|
+
pageId: string;
|
|
6
6
|
_pageFilesAll: PageFile[];
|
|
7
7
|
_pageConfigs: PageConfigRuntime[];
|
|
8
8
|
}>(pageContext: T, prepareForUserConsumption: (pageConfig: T) => T | void): Promise<void>;
|
|
@@ -8,7 +8,7 @@ async function executeGuardHook(pageContext, prepareForUserConsumption) {
|
|
|
8
8
|
if (pageContext._pageFilesAll.length > 0) {
|
|
9
9
|
// V0.4 design
|
|
10
10
|
assert(pageContext._pageConfigs.length === 0);
|
|
11
|
-
hook = findPageGuard(pageContext.
|
|
11
|
+
hook = findPageGuard(pageContext.pageId, pageContext._pageFilesAll);
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
14
|
// V1 design
|
|
@@ -11,8 +11,8 @@ async function executeOnBeforeRouteHook(pageContext) {
|
|
|
11
11
|
const pageContextFromHook = await getPageContextFromHook(pageContext._onBeforeRouteHook, pageContext);
|
|
12
12
|
if (pageContextFromHook) {
|
|
13
13
|
objectAssign(pageContextFromOnBeforeRouteHook, pageContextFromHook);
|
|
14
|
-
if (hasProp(pageContextFromOnBeforeRouteHook, '
|
|
15
|
-
hasProp(pageContextFromOnBeforeRouteHook, '
|
|
14
|
+
if (hasProp(pageContextFromOnBeforeRouteHook, 'pageId', 'string') ||
|
|
15
|
+
hasProp(pageContextFromOnBeforeRouteHook, 'pageId', 'null')) {
|
|
16
16
|
// We bypass Vike's routing
|
|
17
17
|
if (!hasProp(pageContextFromOnBeforeRouteHook, 'routeParams')) {
|
|
18
18
|
objectAssign(pageContextFromOnBeforeRouteHook, { routeParams: {} });
|
|
@@ -45,10 +45,10 @@ async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
|
|
|
45
45
|
return null;
|
|
46
46
|
}
|
|
47
47
|
assertUsage(hasProp(hookReturn, 'pageContext', 'object'), `${errPrefix} returned ${pc.cyan('{ pageContext }')} but pageContext should be a plain JavaScript object.`);
|
|
48
|
-
if (hasProp(hookReturn.pageContext, '
|
|
49
|
-
const errPrefix2 = `${errPrefix} returned ${pc.cyan('{ pageContext: {
|
|
50
|
-
assertUsage(hasProp(hookReturn.pageContext, '
|
|
51
|
-
assertUsage(pageContext._allPageIds.includes(hookReturn.pageContext.
|
|
48
|
+
if (hasProp(hookReturn.pageContext, 'pageId') && !hasProp(hookReturn.pageContext, 'pageId', 'null')) {
|
|
49
|
+
const errPrefix2 = `${errPrefix} returned ${pc.cyan('{ pageContext: { pageId } }')} but ${pc.cyan('pageId')} should be`;
|
|
50
|
+
assertUsage(hasProp(hookReturn.pageContext, 'pageId', 'string'), `${errPrefix2} a string or null`);
|
|
51
|
+
assertUsage(pageContext._allPageIds.includes(hookReturn.pageContext.pageId), `${errPrefix2} ${joinEnglish(pageContext._allPageIds.map((s) => pc.cyan(s)), 'or')}`);
|
|
52
52
|
}
|
|
53
53
|
if (hasProp(hookReturn.pageContext, 'routeParams')) {
|
|
54
54
|
assertRouteParams(hookReturn.pageContext, `${errPrefix} returned ${pc.cyan('{ pageContext: { routeParams } }')} but routeParams should`);
|
|
@@ -17,7 +17,7 @@ type PageContextForRoute = PageContextUrlInternal & {
|
|
|
17
17
|
_onBeforeRouteHook: Hook | null;
|
|
18
18
|
} & PageContextUrlSource;
|
|
19
19
|
type PageContextFromRoute = {
|
|
20
|
-
|
|
20
|
+
pageId: string | null;
|
|
21
21
|
routeParams: Record<string, string>;
|
|
22
22
|
_routingProvidedByOnBeforeRouteHook?: boolean;
|
|
23
23
|
_debugRouteMatches: RouteMatches;
|
|
@@ -21,7 +21,7 @@ async function route(pageContext) {
|
|
|
21
21
|
const pageContextFromOnBeforeRouteHook = await executeOnBeforeRouteHook(pageContext);
|
|
22
22
|
if (pageContextFromOnBeforeRouteHook) {
|
|
23
23
|
if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
|
|
24
|
-
assert(pageContextFromOnBeforeRouteHook.
|
|
24
|
+
assert(pageContextFromOnBeforeRouteHook.pageId);
|
|
25
25
|
return pageContextFromOnBeforeRouteHook;
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
@@ -85,7 +85,7 @@ async function route(pageContext) {
|
|
|
85
85
|
objectAssign(pageContextFromRoute, { _routeMatch: winner });
|
|
86
86
|
if (!winner) {
|
|
87
87
|
objectAssign(pageContextFromRoute, {
|
|
88
|
-
|
|
88
|
+
pageId: null,
|
|
89
89
|
routeParams: {}
|
|
90
90
|
});
|
|
91
91
|
return pageContextFromRoute;
|
|
@@ -94,7 +94,7 @@ async function route(pageContext) {
|
|
|
94
94
|
const { routeParams } = winner;
|
|
95
95
|
assert(isPlainObject(routeParams));
|
|
96
96
|
objectAssign(pageContextFromRoute, {
|
|
97
|
-
|
|
97
|
+
pageId: winner.pageId,
|
|
98
98
|
routeParams: winner.routeParams
|
|
99
99
|
});
|
|
100
100
|
}
|
|
@@ -3,25 +3,12 @@ export { getUrlFromRouteString };
|
|
|
3
3
|
export { isStaticRouteString };
|
|
4
4
|
export { analyzeRouteString };
|
|
5
5
|
export { assertRouteString };
|
|
6
|
-
export {
|
|
6
|
+
export { getRouteStringParameterList };
|
|
7
7
|
declare function assertRouteString(routeString: string, errPrefix?: `${string}Invalid` | `${string}invalid`): void;
|
|
8
8
|
declare function resolveRouteString(routeString: string, urlPathname: string): null | {
|
|
9
9
|
routeParams: Record<string, string>;
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
glob: true;
|
|
13
|
-
static?: undefined;
|
|
14
|
-
param?: undefined;
|
|
15
|
-
} | {
|
|
16
|
-
glob?: undefined;
|
|
17
|
-
static: string;
|
|
18
|
-
param?: undefined;
|
|
19
|
-
} | {
|
|
20
|
-
glob?: undefined;
|
|
21
|
-
static?: undefined;
|
|
22
|
-
param: string;
|
|
23
|
-
};
|
|
24
|
-
declare function parseRouteString(routeString: string): Segment[];
|
|
11
|
+
declare function getRouteStringParameterList(routeString: string): string[];
|
|
25
12
|
declare function getUrlFromRouteString(routeString: string): null | string;
|
|
26
13
|
declare function analyzeRouteString(routeString: string): {
|
|
27
14
|
numberOfStaticPartsBeginning: number;
|
|
@@ -3,7 +3,7 @@ export { getUrlFromRouteString };
|
|
|
3
3
|
export { isStaticRouteString };
|
|
4
4
|
export { analyzeRouteString };
|
|
5
5
|
export { assertRouteString };
|
|
6
|
-
export {
|
|
6
|
+
export { getRouteStringParameterList };
|
|
7
7
|
import { assertWarning, isBrowser, escapeRegex } from '../utils.js';
|
|
8
8
|
import { assert, assertUsage } from './utils.js';
|
|
9
9
|
import pc from '@brillout/picocolors';
|
|
@@ -96,6 +96,15 @@ function parseRouteString(routeString) {
|
|
|
96
96
|
});
|
|
97
97
|
return segments;
|
|
98
98
|
}
|
|
99
|
+
function getRouteStringParameterList(routeString) {
|
|
100
|
+
const routeParameterList = [];
|
|
101
|
+
const segments = parseRouteString(routeString);
|
|
102
|
+
segments.forEach((segment) => {
|
|
103
|
+
if (segment.param)
|
|
104
|
+
routeParameterList.push(segment.param);
|
|
105
|
+
});
|
|
106
|
+
return routeParameterList;
|
|
107
|
+
}
|
|
99
108
|
function getUrlFromRouteString(routeString) {
|
|
100
109
|
if (isStaticRouteString(routeString)) {
|
|
101
110
|
const url = routeString;
|
|
@@ -108,6 +108,10 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
108
108
|
* https://vike.dev/errors
|
|
109
109
|
*/
|
|
110
110
|
errorWhileRendering?: unknown;
|
|
111
|
+
/**
|
|
112
|
+
* The page's unique identifier.
|
|
113
|
+
*/
|
|
114
|
+
pageId: string | null;
|
|
111
115
|
/** @experimental https://github.com/vikejs/vike/issues/1268 */
|
|
112
116
|
from: From;
|
|
113
117
|
/** @experimental https://github.com/vikejs/vike/issues/1268 */
|
|
@@ -120,7 +124,7 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
120
124
|
pageExports: Record<string, unknown>;
|
|
121
125
|
};
|
|
122
126
|
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextUrlServer;
|
|
123
|
-
type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'routeParams' | 'pageExports' | 'config' | 'configEntries' | 'exports' | 'exportsAll' | 'abortReason' | 'data' | 'source' | 'sources' | 'from'> & {
|
|
127
|
+
type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'routeParams' | 'pageExports' | 'config' | 'configEntries' | 'exports' | 'exportsAll' | 'abortReason' | 'data' | 'pageId' | 'source' | 'sources' | 'from'> & {
|
|
124
128
|
/** Whether the current page is already rendered to HTML */
|
|
125
129
|
isHydration: boolean;
|
|
126
130
|
/**
|
|
@@ -130,7 +134,7 @@ type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltI
|
|
|
130
134
|
*/
|
|
131
135
|
isBackwardNavigation: boolean | null;
|
|
132
136
|
} & PageContextUrlClient;
|
|
133
|
-
type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'pageExports' | 'exports' | 'abortReason' | 'data'> & {
|
|
137
|
+
type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'pageExports' | 'exports' | 'abortReason' | 'pageId' | 'data'> & {
|
|
134
138
|
/**
|
|
135
139
|
* Whether the current page is already rendered to HTML.
|
|
136
140
|
*
|
|
@@ -7,7 +7,7 @@ export type { ConfigVitePluginServerEntry } from '@brillout/vite-plugin-server-e
|
|
|
7
7
|
export type { PageContextBuiltInServer } from '../shared/types.js';
|
|
8
8
|
export type { PageContextBuiltInClientWithClientRouting } from '../shared/types.js';
|
|
9
9
|
export type { PageContextBuiltInClientWithServerRouting } from '../shared/types.js';
|
|
10
|
-
export type { Config, ConfigMeta as Meta, ImportString, DataAsync, DataSync, GuardAsync, GuardSync, OnBeforePrerenderStartAsync, OnBeforePrerenderStartSync, OnBeforeRenderAsync, OnBeforeRenderSync, OnBeforeRouteAsync, OnBeforeRouteSync, OnHydrationEndAsync, OnHydrationEndSync, OnPageTransitionEndAsync, OnPageTransitionEndSync, OnPageTransitionStartAsync, OnPageTransitionStartSync, OnPrerenderStartAsync, OnPrerenderStartSync, OnRenderClientAsync, OnRenderClientSync, OnRenderHtmlAsync, OnRenderHtmlSync, RouteAsync, RouteSync } from '../shared/page-configs/Config.js';
|
|
10
|
+
export type { Config, ConfigMeta as Meta, ImportString, DataAsync, DataSync, GuardAsync, GuardSync, OnBeforePrerenderStartAsync, OnBeforePrerenderStartSync, OnBeforeRenderAsync, OnBeforeRenderSync, OnBeforeRouteAsync, OnBeforeRouteSync, OnHydrationEndAsync, OnHydrationEndSync, OnPageTransitionEndAsync, OnPageTransitionEndSync, OnPageTransitionStartAsync, OnPageTransitionStartSync, OnPrerenderStartAsync, OnPrerenderStartSync, OnRenderClientAsync, OnRenderClientSync, OnRenderHtmlAsync, OnRenderHtmlSync, RouteAsync, RouteSync, KeepScrollPosition } from '../shared/page-configs/Config.js';
|
|
11
11
|
export type { ConfigEnv } from '../shared/page-configs/PageConfig.js';
|
|
12
12
|
export type { ConfigDefinition, ConfigEffect } from '../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js';
|
|
13
13
|
export type { ConfigEntries } from '../shared/getPageFiles/getExports.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.197-commit-9db6c02";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.
|
|
2
|
+
export const PROJECT_VERSION = '0.4.197-commit-9db6c02';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { isNpmPackageImport };
|
|
2
|
+
export { isNpmPackageImport_unreliable };
|
|
2
3
|
export { assertIsNpmPackageImport };
|
|
3
4
|
export { isValidPathAlias };
|
|
4
5
|
export { parse };
|
|
@@ -6,6 +7,7 @@ export { isDistinguishable };
|
|
|
6
7
|
declare function isNpmPackageImport(str: string, { cannotBePathAlias }: {
|
|
7
8
|
cannotBePathAlias: true;
|
|
8
9
|
}): boolean;
|
|
10
|
+
declare function isNpmPackageImport_unreliable(str: string): boolean;
|
|
9
11
|
declare function assertIsNpmPackageImport(str: string): void;
|
|
10
12
|
declare function isValidPathAlias(alias: string): boolean;
|
|
11
13
|
declare function isDistinguishable(alias: string): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { isNpmPackageImport };
|
|
2
|
+
export { isNpmPackageImport_unreliable };
|
|
2
3
|
export { assertIsNpmPackageImport };
|
|
3
4
|
export { isValidPathAlias };
|
|
4
5
|
/* Currently not used
|
|
@@ -15,6 +16,9 @@ assertIsNotBrowser();
|
|
|
15
16
|
function isNpmPackageImport(str, { cannotBePathAlias }) {
|
|
16
17
|
// We cannot distinguish path alises that look like npm package imports
|
|
17
18
|
assert(cannotBePathAlias);
|
|
19
|
+
return isNpmPackageImport_unreliable(str);
|
|
20
|
+
}
|
|
21
|
+
function isNpmPackageImport_unreliable(str) {
|
|
18
22
|
const res = parse(str);
|
|
19
23
|
return res !== null;
|
|
20
24
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { isScriptFile };
|
|
2
|
-
export {
|
|
2
|
+
export { isPlainJavaScriptFile };
|
|
3
3
|
export { isTemplateFile };
|
|
4
4
|
export { scriptFileExtensions };
|
|
5
5
|
export { scriptFileExtensionList };
|
|
6
6
|
declare const scriptFileExtensionList: readonly [...string[], "jsx", "tsx", "cjsx", "ctsx", "mjsx", "mtsx", "vue", "svelte", "marko", "md", "mdx"];
|
|
7
7
|
declare const scriptFileExtensions: string;
|
|
8
8
|
declare function isScriptFile(filePath: string): boolean;
|
|
9
|
-
declare function
|
|
9
|
+
declare function isPlainJavaScriptFile(filePath: string): boolean;
|
|
10
10
|
declare function isTemplateFile(filePath: string): boolean;
|