function getHeadingAnchorForApiItem()

in repo-scripts/api-documenter/src/documenters/MarkdownDocumenterHelpers.ts [121:169]


function getHeadingAnchorForApiItem(apiItem: ApiItem): string {
  const scopedName: string = lowercaseAndRemoveSymbols(
    apiItem.getScopedNameWithinPackage()
  );

  switch (apiItem.kind) {
    case ApiItemKind.Function:
      return `${scopedName}`;
    case ApiItemKind.Variable:
      return `${scopedName}`;
    case ApiItemKind.TypeAlias:
      return `${scopedName}`;
    case ApiItemKind.Enum:
      return `${scopedName}`;
    case ApiItemKind.Method:
    case ApiItemKind.MethodSignature:
      return `${scopedName}`;
    case ApiItemKind.Property:
    case ApiItemKind.PropertySignature:
      return `${scopedName}`;
    case ApiItemKind.Constructor:
    case ApiItemKind.ConstructSignature:
      return `${scopedName}`;
    case ApiItemKind.Class:
      return `${scopedName}_class`;
    case ApiItemKind.Interface:
      return `${scopedName}_interface`;
    case ApiItemKind.Model:
      return `api-reference`;
    case ApiItemKind.Namespace:
      return `${scopedName}_namespace`;
    case ApiItemKind.Package:
      const unscopedPackageName: string = lowercaseAndRemoveSymbols(
        PackageName.getUnscopedName(apiItem.displayName)
      );
      return `${unscopedPackageName}_package`;
    case ApiItemKind.EntryPoint:
      const packageName: string = apiItem.parent!.displayName;
      return lowercaseAndRemoveSymbols(
        `${packageName}${apiItem.displayName && '/' + apiItem.displayName}`
      );
    case ApiItemKind.EnumMember:
      return `${scopedName}_enummember`;
    default:
      throw new Error(
        'Unsupported API item kind:3 ' + apiItem.kind + apiItem.displayName
      );
  }
}