1
0
mirror of synced 2025-12-19 18:10:59 -05:00

🍞 Add breadcrumbs to /article/meta endpoint (#54779)

This commit is contained in:
Hector Alfaro
2025-03-12 13:59:29 -04:00
committed by GitHub
parent edaf1d798b
commit 8a3948d817
2 changed files with 11 additions and 3 deletions

View File

@@ -5,6 +5,8 @@ import type { ExtendedRequest, Page, Context, Permalink } from '@/types'
import shortVersions from '@/versions/middleware/short-versions.js'
import contextualize from '@/frame/middleware/context/context'
import features from '@/versions/middleware/features.js'
import breadcrumbs from '@/frame/middleware/context/breadcrumbs.js'
import currentProductTree from '@/frame/middleware/context/current-product-tree.js'
import { readCompressedJsonFile } from '@/frame/lib/read-json-file.js'
// If you have pre-computed page info into a JSON file on disk, this is
@@ -29,6 +31,7 @@ export async function getPageInfo(page: Page, pathname: string) {
await contextualize(renderingReq as ExtendedRequest, res as Response, next)
await shortVersions(renderingReq as ExtendedRequest, res as Response, next)
renderingReq.context.page = page
await currentProductTree(renderingReq as ExtendedRequest, res as Response, next)
features(renderingReq as ExtendedRequest, res as Response, next)
const context = renderingReq.context
@@ -50,7 +53,12 @@ export async function getPageInfo(page: Page, pathname: string) {
}
const product = productPage ? await getProductPageInfo(productPage, context) : ''
return { title, intro, product }
// Call breadcrumbs middleware to populate renderingReq.context.breadcrumbs
breadcrumbs(renderingReq as ExtendedRequest, res as Response, next)
const { breadcrumbs: pageBreadcrumbs } = renderingReq.context
return { title, intro, product, breadcrumbs: pageBreadcrumbs }
}
const _productPageCache: {

View File

@@ -9,11 +9,11 @@
import type { ExtendedRequest } from '@/types.js'
import type { Response, NextFunction } from 'express'
export default function shortVersions(
export default async function shortVersions(
req: ExtendedRequest,
res: Response | null,
next: NextFunction,
): void {
): Promise<void> {
if (!req.context) throw new Error('No context on request')
const { currentVersion, currentVersionObj } = req.context
if (!currentVersionObj) {