vike 0.4.195-commit-486b49a → 0.4.195-commit-3f77496

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.
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.195-commit-486b49a';
5
+ exports.PROJECT_VERSION = '0.4.195-commit-3f77496';
@@ -16,15 +16,13 @@ async function installClientRouter() {
16
16
  // Preserve stack track
17
17
  await renderPromise;
18
18
  }
19
- function render() {
19
+ async function render() {
20
20
  assert(getRenderCount() === 0);
21
- const renderPromise = renderPageClientSide({
21
+ await renderPageClientSide({
22
22
  scrollTarget: { preserveScroll: true },
23
23
  isBackwardNavigation: null,
24
24
  isClientSideNavigation: false
25
25
  });
26
- assert(getRenderCount() === 1);
27
- return renderPromise;
28
26
  }
29
27
  function initHistoryAndScroll() {
30
28
  setupNativeScrollRestoration();
@@ -1,6 +1,6 @@
1
1
  export { navigate };
2
2
  export { reload };
3
- import { renderPageClientSide } from './renderPageClientSide.js';
3
+ import { firstRenderStartPromise, renderPageClientSide } from './renderPageClientSide.js';
4
4
  import { assertClientRouting, assertUsageUrlPathname, getCurrentUrl } from './utils.js';
5
5
  assertClientRouting();
6
6
  /** Programmatically navigate to a new page.
@@ -13,6 +13,8 @@ assertClientRouting();
13
13
  */
14
14
  async function navigate(url, { keepScrollPosition = false, overwriteLastHistoryEntry = false } = {}) {
15
15
  assertUsageUrlPathname(url, '[navigate(url)] url');
16
+ // If `hydrationCanBeAborted === false` (e.g. Vue) then we can apply navigate() only after hydration is done
17
+ await firstRenderStartPromise;
16
18
  const scrollTarget = { preserveScroll: keepScrollPosition };
17
19
  await renderPageClientSide({
18
20
  scrollTarget,
@@ -1,8 +1,10 @@
1
1
  export { renderPageClientSide };
2
2
  export { getRenderCount };
3
3
  export { disableClientRouting };
4
+ export { firstRenderStartPromise };
4
5
  import { type PageContextFromRewrite } from '../../shared/route/abort.js';
5
6
  import { type ScrollTarget } from './setScrollPosition.js';
7
+ declare const firstRenderStartPromise: Promise<void>;
6
8
  type RenderArgs = {
7
9
  scrollTarget: ScrollTarget;
8
10
  isBackwardNavigation: boolean | null;
@@ -1,7 +1,8 @@
1
1
  export { renderPageClientSide };
2
2
  export { getRenderCount };
3
3
  export { disableClientRouting };
4
- import { assert, getCurrentUrl, isSameErrorMessage, objectAssign, redirectHard, getGlobalObject, executeHook, hasProp, augmentType } from './utils.js';
4
+ export { firstRenderStartPromise };
5
+ import { assert, getCurrentUrl, isSameErrorMessage, objectAssign, redirectHard, getGlobalObject, executeHook, hasProp, augmentType, genPromise } from './utils.js';
5
6
  import { getPageContextFromHooks_isHydration, getPageContextFromHooks_isNotHydration, getPageContextFromHooks_serialized } from './getPageContextFromHooks.js';
6
7
  import { createPageContext } from './createPageContext.js';
7
8
  import { addLinkPrefetchHandlers } from './prefetch.js';
@@ -17,7 +18,15 @@ import { setScrollPosition } from './setScrollPosition.js';
17
18
  import { updateState } from './onBrowserHistoryNavigation.js';
18
19
  import { browserNativeScrollRestoration_disable, setInitialRenderIsDone } from './scrollRestoration.js';
19
20
  import { getErrorPageId } from '../../shared/error-page.js';
20
- const globalObject = getGlobalObject('renderPageClientSide.ts', { renderCounter: 0 });
21
+ const globalObject = getGlobalObject('renderPageClientSide.ts', (() => {
22
+ const { promise: firstRenderStartPromise, resolve: firstRenderStartPromiseResolve } = genPromise();
23
+ return {
24
+ renderCounter: 0,
25
+ firstRenderStartPromise,
26
+ firstRenderStartPromiseResolve
27
+ };
28
+ })());
29
+ const { firstRenderStartPromise } = globalObject;
21
30
  async function renderPageClientSide(renderArgs) {
22
31
  const { scrollTarget, urlOriginal = getCurrentUrl(), overwriteLastHistoryEntry = false, isBackwardNavigation, pageContextsFromRewrite = [], redirectCount = 0, isUserLandPushStateNavigation, isClientSideNavigation = true } = renderArgs;
23
32
  const { previousPageContext } = globalObject;
@@ -31,6 +40,9 @@ async function renderPageClientSide(renderArgs) {
31
40
  redirectHard(urlOriginal);
32
41
  return;
33
42
  }
43
+ globalObject.firstRenderStartPromiseResolve();
44
+ if (isRenderOutdated())
45
+ return;
34
46
  await renderPageNominal();
35
47
  return;
36
48
  async function renderPageNominal() {
@@ -34,7 +34,7 @@ function isHashUrl(url) {
34
34
  return true;
35
35
  }
36
36
  const removeHash = (url) => url.split('#')[0];
37
- if (url.includes('#') && removeHash(url) === removeHash(window.location.href)) {
37
+ if (url.includes('#') && removeHash(url) === removeHash(window.location.pathname)) {
38
38
  return true;
39
39
  }
40
40
  return false;
@@ -22,3 +22,4 @@ export * from '../../utils/assertRoutingType.js';
22
22
  export * from '../../utils/onPageVisibilityChange.js';
23
23
  export * from '../../utils/augmentType.js';
24
24
  export * from '../../utils/PROJECT_VERSION.js';
25
+ export * from '../../utils/genPromise.js';
@@ -28,3 +28,4 @@ export * from '../../utils/assertRoutingType.js';
28
28
  export * from '../../utils/onPageVisibilityChange.js';
29
29
  export * from '../../utils/augmentType.js';
30
30
  export * from '../../utils/PROJECT_VERSION.js';
31
+ export * from '../../utils/genPromise.js';
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.195-commit-486b49a";
1
+ export declare const PROJECT_VERSION: "0.4.195-commit-3f77496";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.195-commit-486b49a';
2
+ export const PROJECT_VERSION = '0.4.195-commit-3f77496';
@@ -1,4 +1,4 @@
1
- export declare function genPromise<T>(): {
1
+ export declare function genPromise<T = void>(): {
2
2
  promise: Promise<T>;
3
3
  resolve: (val: T) => void;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.195-commit-486b49a";
3
+ projectVersion: "0.4.195-commit-3f77496";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.195-commit-486b49a",
3
+ "version": "0.4.195-commit-3f77496",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {