Skip to content

Commit 2bfa375

Browse files
refactor: swap-out long nested ternaries for if statements (#850)
1 parent 655bdb1 commit 2bfa375

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

src/utils/misc.ts

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -53,36 +53,41 @@ function getNodeIdentifierText(
5353
return undefined;
5454
}
5555

56-
const identifierText =
57-
isIdentifier(node) || isPrivateIdentifier(node)
58-
? node.name
59-
: hasID(node) && isDefined(node.id)
60-
? getNodeIdentifierText(node.id, context)
61-
: hasKey(node) && isDefined(node.key)
62-
? getNodeIdentifierText(node.key, context)
63-
: isAssignmentExpression(node)
64-
? getNodeIdentifierText(node.left, context)
65-
: isMemberExpression(node)
66-
? `${getNodeIdentifierText(node.object, context)}.${getNodeIdentifierText(
67-
node.property,
68-
context,
69-
)}`
70-
: isThisExpression(node)
71-
? "this"
72-
: isUnaryExpression(node)
73-
? getNodeIdentifierText(node.argument, context)
74-
: isTSTypeAnnotation(node)
75-
? context.sourceCode
76-
.getText(node.typeAnnotation as TSESTree.Node)
77-
.replaceAll(/\s+/gmu, "")
78-
: isTSAsExpression(node) ||
79-
isTSNonNullExpression(node) ||
80-
isChainExpression(node)
81-
? getNodeIdentifierText(node.expression, context)
82-
: null;
56+
let m_identifierText: string | undefined | null = null;
8357

84-
if (identifierText !== null) {
85-
return identifierText;
58+
/* eslint-disable functional/no-conditional-statements, functional/no-expression-statements */
59+
if (isIdentifier(node) || isPrivateIdentifier(node)) {
60+
m_identifierText = node.name;
61+
} else if (hasID(node) && isDefined(node.id)) {
62+
m_identifierText = getNodeIdentifierText(node.id, context);
63+
} else if (hasKey(node) && isDefined(node.key)) {
64+
m_identifierText = getNodeIdentifierText(node.key, context);
65+
} else if (isAssignmentExpression(node)) {
66+
m_identifierText = getNodeIdentifierText(node.left, context);
67+
} else if (isMemberExpression(node)) {
68+
m_identifierText = `${getNodeIdentifierText(node.object, context)}.${getNodeIdentifierText(
69+
node.property,
70+
context,
71+
)}`;
72+
} else if (isThisExpression(node)) {
73+
m_identifierText = "this";
74+
} else if (isUnaryExpression(node)) {
75+
m_identifierText = getNodeIdentifierText(node.argument, context);
76+
} else if (isTSTypeAnnotation(node)) {
77+
m_identifierText = context.sourceCode
78+
.getText(node.typeAnnotation as TSESTree.Node)
79+
.replaceAll(/\s+/gmu, "");
80+
} else if (
81+
isTSAsExpression(node) ||
82+
isTSNonNullExpression(node) ||
83+
isChainExpression(node)
84+
) {
85+
m_identifierText = getNodeIdentifierText(node.expression, context);
86+
}
87+
/* eslint-enable functional/no-conditional-statements, functional/no-expression-statements */
88+
89+
if (m_identifierText !== null) {
90+
return m_identifierText;
8691
}
8792

8893
const keyInObjectExpression = getKeyOfValueInObjectExpression(node);

0 commit comments

Comments
 (0)