📝 Disallow unnecessary calls to sourceCode.getFirstToken() and sourceCode.getLastToken().
💼 This rule is enabled in the ✅ recommended config.
🔧 This rule is automatically fixable by the --fix CLI option.
AST nodes always start and end with tokens. As a result, the start index of the first token in a node is the same as the start index of the node itself, and the end index of the last token in a node is the same as the end index of the node itself. Using code like sourceCode.getFirstToken(node).range[0] unnecessarily hurts the performance of your rule, and makes your code less readable.
This rule aims to avoid unnecessary calls to sourceCode.getFirstToken() and sourceCode.getLastToken().
Examples of incorrect code for this rule:
/* eslint eslint-plugin/no-useless-token-range: error */
module.exports = {
create(context) {
const sourceCode = context.getSourceCode();
const rangeStart = sourceCode.getFirstToken(node).range[0];
const rangeEnd = sourceCode.getLastToken(node).range[1];
},
};Examples of correct code for this rule:
/* eslint eslint-plugin/no-useless-token-range: error */
module.exports = {
create(context) {
const sourceCode = context.getSourceCode();
const rangeStart = node.range[0];
const rangeEnd = node.range[1];
},
};- To ensure that your
SourceCodeinstances can be detected, your rule must assigncontext.getSourceCode()to a variable somewhere.