UNPKG

@mintlify/common

Version:

Commonly shared code within Mintlify

48 lines (47 loc) 1.61 kB
import { divisions, } from '@mintlify/validation'; import { readObjectArrayProperty } from '../divisions/iterateObjectArrayProperty.js'; import { replaceSlashIndex } from '../slug/replaceSlashIndex.js'; function getFirstFromPageOrGroup(entry) { if (typeof entry === 'string') { return replaceSlashIndex(entry); } if ('hidden' in entry && entry.hidden) return undefined; return getFirstPageFromNavConfig(entry); } export function getFirstPageFromNavConfig(nav) { if (!nav || typeof nav !== 'object') return undefined; if ('pages' in nav && nav.pages) { if ('root' in nav && typeof nav.root === 'string') { return replaceSlashIndex(nav.root); } for (const page of nav.pages) { const result = getFirstFromPageOrGroup(page); if (result !== undefined) return result; } } if ('groups' in nav) { for (const group of nav.groups) { if (group.hidden) continue; const result = getFirstPageFromNavConfig(group); if (result !== undefined) return result; } } for (const key of divisions) { const items = readObjectArrayProperty(nav, key); if (!items) continue; for (const item of items) { if (typeof item === 'object' && 'hidden' in item && item.hidden) continue; const result = getFirstPageFromNavConfig(item); if (result !== undefined) return result; } } return undefined; }