export function getIdentifierGenericMap()

in build-scripts/doc-gen/util.ts [404:430]


export function getIdentifierGenericMap(node: ts.MethodDeclaration|
                                        ts.FunctionDeclaration):
    {[generic: string]: string} {
  const identifierGenericMap = {};

  node.forEachChild(child => {
    // TypeParameterDeclarations look like <T extends Tensor|NamedTensorMap>.
    if (ts.isTypeParameterDeclaration(child)) {
      let identifier;
      let generic;
      child.forEachChild(cc => {
        // Type nodes are "Tensor|NamedTensorMap"
        // Identifier nodes are "T".
        if (ts.isTypeNode(cc)) {
          generic = cc.getText();
        } else if (ts.isIdentifier(cc)) {
          identifier = cc.getText();
        }
      });
      if (identifier != null && generic != null) {
        identifierGenericMap[identifier] = generic;
      }
    }
  });

  return identifierGenericMap;
}