|
1 | 1 | 'use strict';
|
2 | 2 | const eslintTemplateVisitor = require('eslint-template-visitor');
|
| 3 | +const {getParenthesizedText} = require('./utils/parentheses.js'); |
3 | 4 |
|
4 | 5 | const MESSAGE_ID_SUBSTR = 'substr';
|
5 | 6 | const MESSAGE_ID_SUBSTRING = 'substring';
|
@@ -42,20 +43,6 @@ const isLikelyNumeric = node => isLiteralNumber(node) || isLengthProperty(node);
|
42 | 43 | const create = context => {
|
43 | 44 | const sourceCode = context.getSourceCode();
|
44 | 45 |
|
45 |
| - const getNodeText = node => { |
46 |
| - const text = sourceCode.getText(node); |
47 |
| - const before = sourceCode.getTokenBefore(node); |
48 |
| - const after = sourceCode.getTokenAfter(node); |
49 |
| - if ( |
50 |
| - (before && before.type === 'Punctuator' && before.value === '(') && |
51 |
| - (after && after.type === 'Punctuator' && after.value === ')') |
52 |
| - ) { |
53 |
| - return `(${text})`; |
54 |
| - } |
55 |
| - |
56 |
| - return text; |
57 |
| - }; |
58 |
| - |
59 | 46 | return templates.visitor({
|
60 | 47 | [substrCallTemplate](node) {
|
61 | 48 | const objectNode = substrCallTemplate.context.getMatch(objectVariable);
|
@@ -113,7 +100,7 @@ const create = context => {
|
113 | 100 | }
|
114 | 101 |
|
115 | 102 | if (sliceArguments) {
|
116 |
| - const objectText = getNodeText(objectNode); |
| 103 | + const objectText = getParenthesizedText(objectNode, sourceCode); |
117 | 104 | const optionalMemberSuffix = node.callee.optional ? '?' : '';
|
118 | 105 | const optionalCallSuffix = node.optional ? '?.' : '';
|
119 | 106 |
|
@@ -181,7 +168,7 @@ const create = context => {
|
181 | 168 | }
|
182 | 169 |
|
183 | 170 | if (sliceArguments) {
|
184 |
| - const objectText = getNodeText(objectNode); |
| 171 | + const objectText = getParenthesizedText(objectNode, sourceCode); |
185 | 172 | const optionalMemberSuffix = node.callee.optional ? '?' : '';
|
186 | 173 | const optionalCallSuffix = node.optional ? '?.' : '';
|
187 | 174 |
|
|
0 commit comments