microsoft/typespec

Public

mirrored fromhttps://github.com/microsoft/typespecAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
61ba17d2d29dedf4553b21a055aa6b442a304688

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

packages/html-program-viewer/src/utils.ts

23lines · modecode

1import { getNamespaceFullName, Type, Union } from "@typespec/compiler";
2
3export function getIdForType(type: Type): string | undefined {
4 if (type.kind === "Namespace") {
5 return getNamespaceFullName(type);
6 } else if ("interface" in type && type.interface) {
7 return `${getIdForType(type.interface)}.${type.name}`;
8 } else if ("model" in type && type.model) {
9 return `${getIdForType(type.model)}.${type.name}`;
10 } else if ("namespace" in type && type.namespace) {
11 return type.namespace.name === ""
12 ? type.name
13 : `${getNamespaceFullName(type.namespace)}.${type.name}`;
14 } else if ("name" in type) {
15 return type.name?.toString();
16 } else {
17 return undefined;
18 }
19}
20
21export function isNamedUnion(union: Union): union is Union & { name: string } {
22 return union.name !== undefined;
23}
24