@mintlify/common
Version:
Commonly shared code within Mintlify
33 lines (32 loc) • 1.06 kB
JavaScript
import { divisions } from '@mintlify/validation';
import { readObjectArrayProperty } from '../divisions/iterateObjectArrayProperty.js';
export function getAllPathsInDocsNav(nav, paths = []) {
if ('pages' in nav) {
if ('root' in nav && typeof nav.root === 'string') {
getPaths(nav.root, paths);
}
nav.pages.forEach((page) => getPaths(page, paths));
return paths;
}
for (const division of ['groups', ...divisions]) {
const items = readObjectArrayProperty(nav, division);
if (!items)
continue;
items.forEach((item) => getAllPathsInDocsNav(item, paths));
}
return paths;
}
function getPaths(entry, paths) {
if (typeof entry === 'string') {
paths.push(entry);
return;
}
if ('pages' in entry && Array.isArray(entry.pages)) {
if ('root' in entry && typeof entry.root === 'object') {
getPaths(entry.root, paths);
}
entry.pages.forEach((page) => {
getPaths(page, paths);
});
}
}