import { memoize } from 'lodash' export type PageMeta = { title: string description?: string image?: string } export interface PathList { paths: { [path: string]: { title: string; basePath?: boolean; description?: string } } defaultTitleSuffix: string } export const getCustomMeta = memoize( (pathList: PathList, path: string): PageMeta => { const pathMetadata = pathList.paths[path] ?? pathList.paths[ Object.entries(pathList.paths) .sort(([url1], [url2]) => url2.length - url1.length) .find(([url, data]) => data.basePath && path.startsWith(url))?.[0] ] if (pathMetadata) { return { title: `${pathMetadata.title}`, ...(pathMetadata.description && { description: pathMetadata.description }), } } return null }, (path) => `${path}`, )