Skip to content

Commit da93b4d

Browse files
committed
ASTUtils: Refactoring
1 parent d61797a commit da93b4d

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

lib/lbt/utils/ASTUtils.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,18 @@ const {Syntax} = require("../utils/parseUtils");
1313
* @returns {boolean} Whether the node is a literal and whether its value matches the given string
1414
*/
1515
function isString(node, literal) {
16-
if (isLiteral(node)) {
17-
return literal == null ? true: node.value === literal;
18-
} else if (isTemplateLiteralWithoutExpression(node)) {
19-
return literal == null ? true : getTemplateLiteralValue(node) === literal;
20-
} else {
16+
const value = getStringValue(node);
17+
if (value === undefined) {
2118
return false;
2219
}
20+
return literal == null ? true: value === literal;
2321
}
2422

2523
function getStringValue(node) {
2624
if (isLiteral(node)) {
2725
return node.value;
2826
} else if (isTemplateLiteralWithoutExpression(node)) {
29-
return getTemplateLiteralValue(node);
27+
return node?.quasis?.[0]?.value?.cooked;
3028
}
3129
}
3230

@@ -35,17 +33,9 @@ function isLiteral(node) {
3533
}
3634

3735
function isTemplateLiteralWithoutExpression(node) {
38-
if (node && node.type === Syntax.TemplateLiteral &&
39-
node.quasis && node.quasis.length === 1 &&
40-
node.quasis[0].type === Syntax.TemplateElement &&
41-
typeof node.quasis[0].value.raw === "string") {
42-
return true;
43-
}
44-
return false;
45-
}
46-
47-
function getTemplateLiteralValue(node) {
48-
return node?.quasis?.[0]?.value?.cooked;
36+
return node?.type === Syntax.TemplateLiteral &&
37+
node?.expressions?.length === 0 &&
38+
node?.quasis?.length === 1;
4939
}
5040

5141
function isBoolean(node, literal) {

0 commit comments

Comments
 (0)