Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function describeStability(thing: Documentable, options: TypeSystemTreeOptions) {
if (!options.stabilities) { return ''; }
switch (thing.docs.stability) {
case Stability.Stable: return ` (${colors.green('stable')})`;
case Stability.Experimental: return ` (${colors.yellow('experimental')})`;
case Stability.Deprecated: return ` (${colors.red('deprecated')})`;
}
return '';
}
public customTag(tag: string): string | undefined {
return this.docs.custom?.[tag];
}
public get summary(): string {
return this.docs.summary ?? '';
}
public get remarks(): string {
return this.docs.remarks ?? '';
}
}
const stabilityPrecedence = {
[Stability.Deprecated]: 0,
[Stability.Experimental]: 1,
[Stability.External]: 2,
[Stability.Stable]: 3,
};
function lowestStability(a?: Stability, b?: Stability): Stability | undefined {
if (a === undefined) { return b; }
if (b === undefined) { return a; }
return stabilityPrecedence[a] < stabilityPrecedence[b] ? a : b;
}