📄 tsUtils.ts
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 4 |
📊 Variables & Constants | 2 |
📐 Interfaces | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/website/src/components/ast/tsUtils.ts
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
result |
Record<number, string> |
const | {} |
✗ |
tsEnumCache |
TsParsedEnums | undefined |
let/var | *not shown* |
✗ |
Functions¶
extractEnum(obj: Record<number, number | string>): Record<number, string>
¶
Code
export function extractEnum(
obj: Record<number, number | string>,
): Record<number, string> {
const result: Record<number, string> = {};
const keys = Object.entries(obj);
for (const [name, value] of keys) {
if (typeof value === 'number' && !(value in result)) {
result[value] = name;
}
}
return result;
}
-
JSDoc:
-
Parameters:
obj: Record<number, number | string>
- Return Type:
Record<number, string>
- Calls:
Object.entries
getTsEnum(type: keyof TsParsedEnums): Record<number, string>
¶
Code
function getTsEnum(type: keyof TsParsedEnums): Record<number, string> {
tsEnumCache ??= {
LanguageVariant: extractEnum(window.ts.LanguageVariant),
ModifierFlags: extractEnum(window.ts.ModifierFlags),
NodeFlags: extractEnum(window.ts.NodeFlags),
ObjectFlags: extractEnum(window.ts.ObjectFlags),
ScriptKind: extractEnum(window.ts.ScriptKind),
ScriptTarget: extractEnum(window.ts.ScriptTarget),
SymbolFlags: extractEnum(window.ts.SymbolFlags),
SyntaxKind: extractEnum(window.ts.SyntaxKind),
TokenFlags: extractEnum(window.ts.TokenFlags),
TypeFlags: extractEnum(window.ts.TypeFlags),
// @ts-expect-error: non public API
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
TransformFlags: extractEnum(window.ts.TransformFlags),
};
return tsEnumCache[type];
}
-
JSDoc:
-
Parameters:
type: keyof TsParsedEnums
- Return Type:
Record<number, string>
- Calls:
extractEnum
- Internal Comments:
tsEnumToString(type: keyof TsParsedEnums, value: number): string | undefined
¶
Code
-
JSDoc:
-
Parameters:
type: keyof TsParsedEnums
value: number
- Return Type:
string | undefined
- Calls:
getTsEnum
tsEnumFlagToString(type: keyof TsParsedEnums, value: number): string | undefined
¶
Code
-
JSDoc:
-
Parameters:
type: keyof TsParsedEnums
value: number
- Return Type:
string | undefined
- Calls:
Object.entries(getTsEnum(type)) .filter(([f]) => (Number(f) & value) !== 0) .map(([, name]) =>
${type}.${name}) .join
Interfaces¶
TsParsedEnums
¶
Interface Code
interface TsParsedEnums {
LanguageVariant: Record<number, string>;
ModifierFlags: Record<number, string>;
NodeFlags: Record<number, string>;
ObjectFlags: Record<number, string>;
ScriptKind: Record<number, string>;
ScriptTarget: Record<number, string>;
SymbolFlags: Record<number, string>;
SyntaxKind: Record<number, string>;
TokenFlags: Record<number, string>;
TransformFlags: Record<number, string>;
TypeFlags: Record<number, string>;
}
Properties¶
Name | Type | Optional | Description |
---|---|---|---|
LanguageVariant |
Record<number, string> |
✗ | |
ModifierFlags |
Record<number, string> |
✗ | |
NodeFlags |
Record<number, string> |
✗ | |
ObjectFlags |
Record<number, string> |
✗ | |
ScriptKind |
Record<number, string> |
✗ | |
ScriptTarget |
Record<number, string> |
✗ | |
SymbolFlags |
Record<number, string> |
✗ | |
SyntaxKind |
Record<number, string> |
✗ | |
TokenFlags |
Record<number, string> |
✗ | |
TransformFlags |
Record<number, string> |
✗ | |
TypeFlags |
Record<number, string> |
✗ |