UNPKG

type2docfx

Version:

A tool to convert json format output from TypeDoc to schema driven reference model for DocFx to consume.

81 lines 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateTOC = void 0; var constants_1 = require("./common/constants"); function generateItems(element) { var result; var itemsDetails = []; result = { uid: element.uid, name: element.name.split('(')[0], items: itemsDetails }; if (!element.children || element.children.length === 0) { if (constants_1.setOfTopLevelItems.has(element.type)) { return result; } return null; } var children = element.children; if (children.length > 1) { children = children.sort(sortTOC); } children.forEach(function (child) { var items = generateItems(child); if (items) { itemsDetails.push(items); } }); return result; } function generateTOC(elements, packageUid) { var itemsDetails = []; if (elements) { if (elements.length > 1) { elements = elements.sort(sortTOC); } elements.forEach(function (element) { var items = generateItems(element); if (items) { itemsDetails.push(items); } }); } if (itemsDetails.length === 0) { itemsDetails = null; } else { changeTocToOverview(itemsDetails, packageUid); } return [{ name: packageUid, items: itemsDetails }]; } exports.generateTOC = generateTOC; function changeTocToOverview(items, uid) { items.splice(0, 0, { name: "Overview", uid: uid }); for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { var item = items_1[_i]; if (item.items && item.items.length > 0) { var uid_1 = item.uid; delete item.uid; changeTocToOverview(item.items, uid_1); } } } function sortTOC(a, b) { var nameA = a.name.toUpperCase(); var nameB = b.name.toUpperCase(); if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } return 0; } //# sourceMappingURL=tocGenerator.js.map