export function sortMethods()

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);
    }
  }
}