@mintlify/common
Version:
Commonly shared code within Mintlify
46 lines (45 loc) • 1.36 kB
JavaScript
import { divisions, } from '@mintlify/validation';
import { isPage } from './index.js';
export function getFirstPageFromNavigation(node) {
if (!node || typeof node !== 'object')
return undefined;
if (isPage(node)) {
return node;
}
if ('pages' in node) {
for (const page of node.pages) {
if (typeof page === 'object') {
const pagePath = getFirstPageFromNavigation(page);
if (pagePath) {
return pagePath;
}
}
}
}
if ('groups' in node) {
for (const group of node.groups) {
if (group.hidden)
continue;
const page = getFirstPageFromNavigation(group);
if (page) {
return page;
}
}
}
for (const key of divisions) {
if (key in node) {
const items = node[key];
if (Array.isArray(items)) {
for (const item of items) {
if (typeof item === 'object' && 'hidden' in item && item.hidden)
continue;
const page = getFirstPageFromNavigation(item);
if (page) {
return page;
}
}
}
}
}
return undefined;
}