Skip to content

Commit 8a3948d

Browse files
authored
🍞 Add breadcrumbs to /article/meta endpoint (#54779)
1 parent edaf1d7 commit 8a3948d

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/article-api/middleware/article-pageinfo.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import type { ExtendedRequest, Page, Context, Permalink } from '@/types'
55
import shortVersions from '@/versions/middleware/short-versions.js'
66
import contextualize from '@/frame/middleware/context/context'
77
import features from '@/versions/middleware/features.js'
8+
import breadcrumbs from '@/frame/middleware/context/breadcrumbs.js'
9+
import currentProductTree from '@/frame/middleware/context/current-product-tree.js'
810
import { readCompressedJsonFile } from '@/frame/lib/read-json-file.js'
911

1012
// 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) {
2931
await contextualize(renderingReq as ExtendedRequest, res as Response, next)
3032
await shortVersions(renderingReq as ExtendedRequest, res as Response, next)
3133
renderingReq.context.page = page
34+
await currentProductTree(renderingReq as ExtendedRequest, res as Response, next)
3235
features(renderingReq as ExtendedRequest, res as Response, next)
3336
const context = renderingReq.context
3437

@@ -50,7 +53,12 @@ export async function getPageInfo(page: Page, pathname: string) {
5053
}
5154
const product = productPage ? await getProductPageInfo(productPage, context) : ''
5255

53-
return { title, intro, product }
56+
// Call breadcrumbs middleware to populate renderingReq.context.breadcrumbs
57+
breadcrumbs(renderingReq as ExtendedRequest, res as Response, next)
58+
59+
const { breadcrumbs: pageBreadcrumbs } = renderingReq.context
60+
61+
return { title, intro, product, breadcrumbs: pageBreadcrumbs }
5462
}
5563

5664
const _productPageCache: {

src/versions/middleware/short-versions.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
import type { ExtendedRequest } from '@/types.js'
1010
import type { Response, NextFunction } from 'express'
1111

12-
export default function shortVersions(
12+
export default async function shortVersions(
1313
req: ExtendedRequest,
1414
res: Response | null,
1515
next: NextFunction,
16-
): void {
16+
): Promise<void> {
1717
if (!req.context) throw new Error('No context on request')
1818
const { currentVersion, currentVersionObj } = req.context
1919
if (!currentVersionObj) {

0 commit comments

Comments
 (0)