From 97b7c79bc6a69ca6739b6e593e6f3b5b2f0c3c82 Mon Sep 17 00:00:00 2001 From: Steven H Date: Wed, 23 Apr 2025 15:04:00 +0100 Subject: [PATCH] Increase logging around caching behaviour causing page crashes. (#3182) --- .changeset/sweet-schools-flow.md | 6 ++++++ packages/gitbook-v2/src/lib/context.ts | 20 +++++++++++++++++++- packages/gitbook/src/middleware.ts | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 .changeset/sweet-schools-flow.md diff --git a/.changeset/sweet-schools-flow.md b/.changeset/sweet-schools-flow.md new file mode 100644 index 000000000..6ff44bfa9 --- /dev/null +++ b/.changeset/sweet-schools-flow.md @@ -0,0 +1,6 @@ +--- +"gitbook-v2": patch +"gitbook": patch +--- + +Increase logging around caching behaviour causing page crashes. diff --git a/packages/gitbook-v2/src/lib/context.ts b/packages/gitbook-v2/src/lib/context.ts index 7ef0f463b..c85434c91 100644 --- a/packages/gitbook-v2/src/lib/context.ts +++ b/packages/gitbook-v2/src/lib/context.ts @@ -220,6 +220,8 @@ export async function fetchSiteContextByIds( ): Promise { const { dataFetcher } = baseContext; + const DEBUG = ids.site === 'site_cu2ih'; + const [{ site: orgSite, structure: siteStructure, customizations, scripts }, spaceContext] = await Promise.all([ throwIfDataError( @@ -232,6 +234,22 @@ export async function fetchSiteContextByIds( fetchSpaceContextByIds(baseContext, ids), ]); + DEBUG && console.log('ids', JSON.stringify(ids)); + DEBUG && + console.log( + 'siteStructure', + siteStructure + ? JSON.stringify({ + type: siteStructure.type, + structure: siteStructure.structure.map((s) => { + // @ts-ignore + const { siteSpaces, urls, ...rest } = s; + return rest; + }), + }) + : 'null' + ); + // override the title with the customization title // TODO: remove this hack once we have a proper way to handle site customizations const site = { @@ -407,7 +425,7 @@ export function checkIsRootSiteContext(context: GitBookSiteContext): boolean { function parseSiteSectionsAndGroups(structure: SiteStructure, siteSectionId: string) { const sectionsAndGroups = getSiteStructureSections(structure, { ignoreGroups: false }); const section = parseCurrentSection(structure, siteSectionId); - assert(section, 'A section must be defined when there are multiple sections'); + assert(section, `couldn't find section "${siteSectionId}" in site structure`); return { list: sectionsAndGroups, current: section } satisfies SiteSections; } diff --git a/packages/gitbook/src/middleware.ts b/packages/gitbook/src/middleware.ts index 30f7b44e6..0e599c448 100644 --- a/packages/gitbook/src/middleware.ts +++ b/packages/gitbook/src/middleware.ts @@ -674,6 +674,9 @@ async function lookupSiteByAPI( } ); + alternative.url.includes('minas-tirith') && + console.log(`resolved ${alternative.url} -> ${JSON.stringify(data)}`); + if ('error' in data) { if (alternative.primary) { // We only return an error for the primary alternative (full URL),