in build-scripts/doc-gen/util.ts [256:298]
export function sortMethods(
docs: Docs, pins: {[heading: string]: {[subheading: string]: string[]}}) {
const docHeadings = docs.headings;
// Sort the methods by name.
for (let i = 0; i < docHeadings.length; i++) {
const heading = docHeadings[i];
for (let j = 0; j < heading.subheadings.length; j++) {
const subheading = heading.subheadings[j];
if (subheading.symbols == null) {
subheading.symbols = [];
}
// Pin the symbols in order of the pins.
const pinnedSymbols = [];
if (pins[heading.name] != null &&
pins[heading.name][subheading.name] != null) {
const pin = pins[heading.name][subheading.name];
pin.forEach(pinnedSymbolName => {
// Loop backwards so we remove symbols.
for (let k = subheading.symbols.length - 1; k >= 0; k--) {
const symbol = subheading.symbols[k];
if (symbol.symbolName === pinnedSymbolName) {
pinnedSymbols.push(symbol);
subheading.symbols.splice(k, 1);
}
}
});
}
// Sort non-pinned symbols by name.
subheading.symbols.sort((a, b) => {
if (a.symbolName < b.symbolName) {
return -1;
} else if (a.symbolName > b.symbolName) {
return 1;
}
return 0;
});
subheading.symbols = pinnedSymbols.concat(subheading.symbols);
}
}
}