Skip to content

Commit 05c746b

Browse files
author
Andy
authored
generateGetAccessorAndSetAccessor: Share modifier-creating code (#23311)
1 parent 5d23cb4 commit 05c746b

File tree

1 file changed

+6
-19
lines changed

1 file changed

+6
-19
lines changed

src/services/refactors/generateGetAccessorAndSetAccessor.ts

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ namespace ts.refactor.generateGetAccessorAndSetAccessor {
4747
const { isStatic, fieldName, accessorName, type, container, declaration } = fieldInfo;
4848

4949
const isInClassLike = isClassLike(container);
50-
const accessorModifiers = getAccessorModifiers(isJS, declaration, isStatic, isInClassLike);
51-
const fieldModifiers = getFieldModifiers(isJS, isStatic, isInClassLike);
50+
const accessorModifiers = isInClassLike
51+
? !declaration.modifiers || getModifierFlags(declaration) & ModifierFlags.Private ? getModifiers(isJS, isStatic, SyntaxKind.PublicKeyword) : declaration.modifiers
52+
: undefined;
53+
const fieldModifiers = isInClassLike ? getModifiers(isJS, isStatic, SyntaxKind.PrivateKeyword) : undefined;
5254

5355
updateFieldDeclaration(changeTracker, file, declaration, fieldName, fieldModifiers, container);
5456

@@ -82,24 +84,9 @@ namespace ts.refactor.generateGetAccessorAndSetAccessor {
8284
return isIdentifier(fieldName) ? createPropertyAccess(leftHead, fieldName) : createElementAccess(leftHead, createLiteral(fieldName));
8385
}
8486

85-
function getAccessorModifiers(isJS: boolean, declaration: AcceptedDeclaration, isStatic: boolean, isClassLike: boolean): NodeArray<Modifier> | undefined {
86-
if (!isClassLike) return undefined;
87-
88-
if (!declaration.modifiers || getModifierFlags(declaration) & ModifierFlags.Private) {
89-
const modifiers = append<Modifier>(
90-
!isJS ? [createToken(SyntaxKind.PublicKeyword)] : undefined,
91-
isStatic ? createToken(SyntaxKind.StaticKeyword) : undefined
92-
);
93-
return modifiers && createNodeArray(modifiers);
94-
}
95-
return declaration.modifiers;
96-
}
97-
98-
function getFieldModifiers(isJS: boolean, isStatic: boolean, isClassLike: boolean): NodeArray<Modifier> | undefined {
99-
if (!isClassLike) return undefined;
100-
87+
function getModifiers(isJS: boolean, isStatic: boolean, accessModifier: SyntaxKind.PublicKeyword | SyntaxKind.PrivateKeyword): NodeArray<Modifier> {
10188
const modifiers = append<Modifier>(
102-
!isJS ? [createToken(SyntaxKind.PrivateKeyword)] : undefined,
89+
!isJS ? [createToken(accessModifier) as Token<SyntaxKind.PublicKeyword> | Token<SyntaxKind.PrivateKeyword>] : undefined,
10390
isStatic ? createToken(SyntaxKind.StaticKeyword) : undefined
10491
);
10592
return modifiers && createNodeArray(modifiers);

0 commit comments

Comments
 (0)