@uniweb/runtime 1.2.5 → 1.2.6

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/ssr.js CHANGED
@@ -495,9 +495,19 @@ function documentTitle(pageTitle, siteName) {
495
495
  const title = String(pageTitle);
496
496
  return siteName ? `${title} | ${siteName}` : title;
497
497
  }
498
+ const startPages = /* @__PURE__ */ new WeakMap();
499
+ function recordStartPage(website) {
500
+ if (website && !startPages.has(website)) startPages.set(website, website.activePage);
501
+ }
502
+ function restoreStartPage(website) {
503
+ if (startPages.has(website)) website.activePage = startPages.get(website);
504
+ }
498
505
  function resolvePage(website, route) {
499
506
  return website.getPage(route);
500
507
  }
508
+ function resolveRequestedPage(website, route) {
509
+ return website.resolveRoute(route).kind === "rewrite" ? void 0 : resolvePage(website, route);
510
+ }
501
511
  const VALID_CONTEXTS = ["light", "medium", "dark"];
502
512
  function getWrapperProps(block) {
503
513
  const theme = block.themeName;
@@ -656,6 +666,7 @@ function initPrerender(content, foundation, extensionsOrOptions, maybeOptions) {
656
666
  } } = options;
657
667
  onProgress("Initializing runtime...");
658
668
  const uniweb = createUniweb(content, foundation, extensions);
669
+ recordStartPage(uniweb.activeWebsite);
659
670
  if (content.config?.base && uniweb.activeWebsite?.setBasePath) {
660
671
  uniweb.activeWebsite.setBasePath(content.config.base);
661
672
  }
@@ -735,7 +746,7 @@ function classifyRenderError(err) {
735
746
  };
736
747
  }
737
748
  function renderPage(page, website) {
738
- website.setActivePage(page.route);
749
+ if (page !== website.getNotFoundPage()) website.setActivePage(page.route);
739
750
  if (page.hasContent?.() && page.getBodyBlocks().length === 0) {
740
751
  return {
741
752
  error: {
@@ -1191,7 +1202,8 @@ async function loadPageData({ website, route, fetch: fetch2, dev = false, locale
1191
1202
  );
1192
1203
  }
1193
1204
  website.makeCurrent();
1194
- const resolved = typeof route === "string" ? resolvePage(website, route) : route;
1205
+ const named = typeof route === "string" ? resolveRequestedPage(website, route) : route;
1206
+ const resolved = named ?? (typeof route === "string" ? website.getNotFoundPage() : null);
1195
1207
  if (!resolved) return [];
1196
1208
  const page = typeof resolved.getRenderableSelf === "function" ? resolved.getRenderableSelf() : resolved;
1197
1209
  if (typeof page.getBodyBlocks !== "function") {
@@ -1244,10 +1256,13 @@ function createPageRenderer({ website, shell }) {
1244
1256
  website.forgetData();
1245
1257
  hydrateDataStore(website, fetchedData);
1246
1258
  }
1247
- const resolved = typeof target === "string" ? resolvePage(website, target) : target;
1259
+ const named = typeof target === "string" ? resolveRequestedPage(website, target) : target;
1260
+ const resolved = named ?? (typeof target === "string" ? website.getNotFoundPage() : null);
1248
1261
  if (!resolved) return { outcome: "notFound", html: null, page: null, error: null };
1249
1262
  const page = typeof resolved.getRenderableSelf === "function" ? resolved.getRenderableSelf() : resolved;
1250
- const missing = page?.notFound === true;
1263
+ const missing = !named || page?.notFound === true;
1264
+ restoreStartPage(website);
1265
+ if (typeof target === "string") website.setActivePage(target);
1251
1266
  let result;
1252
1267
  try {
1253
1268
  result = renderPage(page, website);