Skip to content

Commit 5113edf

Browse files
committed
Add helper functions for ReleaseTag
1 parent e6804ae commit 5113edf

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

apps/api-extractor-model/src/aedoc/ReleaseTag.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,39 @@ export enum ReleaseTag {
4343
*/
4444
Public = 4
4545
}
46+
47+
/**
48+
* Helper functions for working with the `ReleaseTag` enum.
49+
* @public
50+
*/
51+
export namespace ReleaseTag {
52+
/**
53+
* Returns the TSDoc tag name for a `ReleaseTag` value.
54+
*
55+
* @remarks
56+
* For example, `getTagName(ReleaseTag.Internal)` would return the string `@internal`.
57+
*/
58+
export function getTagName(releaseTag: ReleaseTag): string {
59+
switch (releaseTag) {
60+
case ReleaseTag.None: return '(none)';
61+
case ReleaseTag.Internal: return '@internal';
62+
case ReleaseTag.Alpha: return '@alpha';
63+
case ReleaseTag.Beta: return '@beta';
64+
case ReleaseTag.Public: return '@public';
65+
}
66+
throw new Error('Unsupported release tag');
67+
}
68+
69+
/**
70+
* Compares two `ReleaseTag` values. Their values must not be `ReleaseTag.None`.
71+
* @returns 0 if `a` and `b` are equal, a positive number if `a` is more public than `b`,
72+
* and a negative number if `a` is less public than `b`.
73+
* @remarks
74+
* For example, `compareReleaseTag(ReleaseTag.Beta, ReleaseTag.Alpha)` will return a positive
75+
* number because beta is more public than alpha.
76+
*/
77+
export function compare(a: ReleaseTag, b: ReleaseTag): number {
78+
return a - b;
79+
}
80+
81+
}

common/reviews/api/api-extractor-model.api.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,5 +781,11 @@ declare enum ReleaseTag {
781781
Public = 4
782782
}
783783

784+
// @public
785+
declare namespace ReleaseTag {
786+
function compare(a: ReleaseTag, b: ReleaseTag): number;
787+
function getTagName(releaseTag: ReleaseTag): string;
788+
}
789+
784790

785791
```

0 commit comments

Comments
 (0)