Skip to content

Commit dbe2bb2

Browse files
authored
Forbid .range (#2599)
1 parent 563d45c commit dbe2bb2

14 files changed

+27
-39
lines changed

eslint.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import globals from 'globals';
22
import xo from 'eslint-config-xo';
33
import eslintPlugin from 'eslint-plugin-eslint-plugin';
44
import jsdoc from 'eslint-plugin-jsdoc';
5-
import internal from './scripts/internal-rules/index.js';
5+
import internalRules from './scripts/internal-rules/index.js';
66
import unicorn from './index.js';
77

88
const config = [
99
...xo,
1010
unicorn.configs.recommended,
11-
internal.configs.all,
11+
internalRules,
1212
{
1313
languageOptions: {
1414
globals: {

rules/fix/fix-space-around-keywords.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default function * fixSpaceAroundKeyword(fixer, node, sourceCode) {
1414

1515
if (
1616
tokenBefore
17-
&& range[0] === tokenBefore.range[1]
17+
&& range[0] === sourceCode.getRange(tokenBefore)[1]
1818
&& isProblematicToken(tokenBefore)
1919
) {
2020
yield fixer.insertTextAfter(tokenBefore, ' ');
@@ -24,7 +24,7 @@ export default function * fixSpaceAroundKeyword(fixer, node, sourceCode) {
2424

2525
if (
2626
tokenAfter
27-
&& range[1] === tokenAfter.range[0]
27+
&& range[1] === sourceCode.getRange(tokenAfter)[0]
2828
&& isProblematicToken(tokenAfter)
2929
) {
3030
yield fixer.insertTextBefore(tokenAfter, ' ');

rules/fix/remove-spaces-after.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default function removeSpacesAfter(indexOrNodeOrToken, sourceCode, fixer) {
22
let index = indexOrNodeOrToken;
3-
if (typeof indexOrNodeOrToken === 'object' && Array.isArray(indexOrNodeOrToken.range)) {
4-
index = indexOrNodeOrToken.range[1];
3+
if (typeof indexOrNodeOrToken === 'object') {
4+
index = sourceCode.getRange(indexOrNodeOrToken)[1];
55
}
66

77
const textAfter = sourceCode.text.slice(index);

rules/fix/replace-reference-identifier.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function replaceReferenceIdentifier(identifier, replacement, fixe
2222
// `typeAnnotation`
2323
if (identifier.typeAnnotation) {
2424
return fixer.replaceTextRange(
25+
// eslint-disable-next-line internal/no-restricted-property-access
2526
[identifier.range[0], identifier.typeAnnotation.range[0]],
2627
`${replacement}${identifier.optional ? '?' : ''}`,
2728
);

rules/fix/replace-string-raw.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ const replaceStringRaw = (fixer, node, raw) =>
33
fixer.replaceTextRange(
44
// Ignore quotes and backticks
55
[
6+
// eslint-disable-next-line internal/no-restricted-property-access
67
node.range[0] + 1,
8+
// eslint-disable-next-line internal/no-restricted-property-access
79
node.range[1] - 1,
810
],
911
raw,

rules/fix/replace-template-element.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const replaceTemplateElement = (fixer, node, replacement) => {
2+
// eslint-disable-next-line internal/no-restricted-property-access
23
const {range: [start, end], tail} = node;
34
return fixer.replaceTextRange(
45
[start + 1, end - (tail ? 1 : 2)],

rules/no-static-only-class.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ function switchClassToObject(node, sourceCode) {
153153
type === 'ClassExpression'
154154
&& parent.type === 'ReturnStatement'
155155
&& sourceCode.getLoc(body).start.line !== sourceCode.getLoc(parent).start.line
156-
&& sourceCode.text.slice(classToken.range[1], body.range[0]).trim()
156+
&& sourceCode.text.slice(sourceCode.getRange(classToken)[1], sourceCode.getRange(body)[0]).trim()
157157
) {
158158
yield fixer.replaceText(classToken, '{');
159159

rules/prefer-at.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,9 @@ function create(context) {
197197
if (
198198
tokenBefore.type === 'Punctuator'
199199
&& tokenBefore.value === '-'
200-
&& /^\s+$/.test(sourceCode.text.slice(tokenBefore.range[1], numberNode.range[0]))
200+
&& /^\s+$/.test(sourceCode.text.slice(sourceCode.getRange(tokenBefore)[1], sourceCode.getRange(numberNode)[0]))
201201
) {
202-
yield fixer.removeRange([tokenBefore.range[1], numberNode.range[0]]);
202+
yield fixer.removeRange([sourceCode.getRange(tokenBefore)[1], sourceCode.getRange(numberNode)[0]]);
203203
}
204204
}
205205

@@ -275,7 +275,7 @@ function create(context) {
275275
// Remove extra arguments
276276
if (sliceCall.arguments.length !== 1) {
277277
const [, start] = getParenthesizedRange(sliceCall.arguments[0], sourceCode);
278-
const [end] = sourceCode.getLastToken(sliceCall).range;
278+
const [end] = sourceCode.getRange(sourceCode.getLastToken(sliceCall));
279279
yield fixer.removeRange([start, end]);
280280
}
281281

rules/prefer-switch.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ const getBreakTarget = node => {
9898
};
9999

100100
const isNodeInsideNode = (inner, outer) =>
101+
// eslint-disable-next-line internal/no-restricted-property-access
101102
inner.range[0] >= outer.range[0] && inner.range[1] <= outer.range[1];
102103
function hasBreakInside(breakStatements, node) {
103104
for (const breakStatement of breakStatements) {

rules/utils/has-same-range.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
const hasSameRange = (node1, node2) =>
22
node1
33
&& node2
4+
// eslint-disable-next-line internal/no-restricted-property-access
45
&& node1.range[0] === node2.range[0]
6+
// eslint-disable-next-line internal/no-restricted-property-access
57
&& node1.range[1] === node2.range[1];
68

79
export default hasSameRange;

0 commit comments

Comments
 (0)