diff --git a/src/convert.ts b/src/convert.ts index 7ebf1c4..747849b 100644 --- a/src/convert.ts +++ b/src/convert.ts @@ -952,7 +952,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { key: convertChild(node.name), value: convertChild(node.initializer), computed: nodeUtils.isComputedProperty(node.name), - static: nodeUtils.hasStaticModifierFlag(node), + static: nodeUtils.hasModifier(SyntaxKind.StaticKeyword, node), readonly: nodeUtils.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined }); @@ -1062,7 +1062,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { key: convertChild(node.name), value: method, computed: nodeUtils.isComputedProperty(node.name), - static: nodeUtils.hasStaticModifierFlag(node), + static: nodeUtils.hasModifier(SyntaxKind.StaticKeyword, node), kind: 'method' }); @@ -1107,7 +1107,10 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { // TypeScript uses this even for static methods named "constructor" case SyntaxKind.Constructor: { - const constructorIsStatic = nodeUtils.hasStaticModifierFlag(node), + const constructorIsStatic = nodeUtils.hasModifier( + SyntaxKind.StaticKeyword, + node + ), constructorIsAbstract = nodeUtils.hasModifier( SyntaxKind.AbstractKeyword, node diff --git a/src/node-utils.ts b/src/node-utils.ts index 1249a92..fe6ef76 100644 --- a/src/node-utils.ts +++ b/src/node-utils.ts @@ -145,7 +145,6 @@ export default { isJSXToken, getDeclarationKind, getTSNodeAccessibility, - hasStaticModifierFlag, findNextToken, findFirstMatchingToken, findChildOfKind, @@ -206,11 +205,14 @@ function isESTreeClassMember(node: ts.Node): boolean { /** * Checks if a ts.Node has a modifier - * @param {number} modifierKind TypeScript SyntaxKind modifier + * @param {ts.KeywordSyntaxKind} modifierKind TypeScript SyntaxKind modifier * @param {ts.Node} node TypeScript AST node * @returns {boolean} has the modifier specified */ -function hasModifier(modifierKind: number, node: ts.Node): boolean { +function hasModifier( + modifierKind: ts.KeywordSyntaxKind, + node: ts.Node +): boolean { return ( !!node.modifiers && !!node.modifiers.length && @@ -394,19 +396,6 @@ function getTSNodeAccessibility(node: ts.Node): string | null { return null; } -/** - * Returns true if the given ts.Node has the modifier flag set which corresponds - * to the static keyword. - * @param {ts.Node} node The ts.Node - * @returns {boolean} whether or not the static modifier flag is set - */ -function hasStaticModifierFlag(node: ts.Node): boolean { - /** - * TODO: Remove dependency on private TypeScript method - */ - return Boolean((ts as any).getModifierFlags(node) & ts.ModifierFlags.Static); -} - /** * Finds the next token based on the previous one and its parent * Had to copy this from TS instead of using TS's version because theirs doesn't pass the ast to getChildren