Skip to content

Commit c53b4eb

Browse files
committed
refactor: add utils.getSourceCode(), utils.getScope(), utils.getparserServices(), utils.getFilename()
1 parent 8d32bf9 commit c53b4eb

32 files changed

+78
-56
lines changed

lib/rules/fixer-return.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,11 @@ module.exports = {
7676
* @returns {boolean}
7777
*/
7878
function isFix(node) {
79-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: use context.sourceCode when dropping eslint < v9
8079
if (node.type === 'ArrayExpression' && node.elements.length === 0) {
8180
// An empty array is not a fix.
8281
return false;
8382
}
84-
const scope = sourceCode.getScope?.(node) || context.getScope(); // TODO: just use sourceCode.getScope() when we drop support for ESLint < 9.0.0
83+
const scope = utils.getScope(context);
8584
const staticValue = getStaticValue(node, scope);
8685
if (!staticValue) {
8786
// If we can't find a static value, assume it's a real fix value.
@@ -99,7 +98,7 @@ module.exports = {
9998

10099
return {
101100
Program(ast) {
102-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
101+
const sourceCode = utils.getSourceCode(context);
103102
contextIdentifiers = utils.getContextIdentifiers(
104103
sourceCode.scopeManager,
105104
ast,
@@ -149,7 +148,7 @@ module.exports = {
149148
// Ensure the current (arrow) fixer function returned a fix.
150149
'ArrowFunctionExpression:exit'(node) {
151150
if (funcInfo.shouldCheck) {
152-
const sourceCode = context.sourceCode || context.getSourceCode();
151+
const sourceCode = utils.getSourceCode(context);
153152
const loc = sourceCode.getTokenBefore(node.body).loc; // Show violation on arrow (=>).
154153
if (node.expression) {
155154
// When the return is implied (no curly braces around the body), we have to check the single body node directly.

lib/rules/meta-property-ordering.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
'use strict';
66

7-
const { getKeyName, getRuleInfo } = require('../utils');
7+
const utils = require('../utils');
8+
const { getKeyName, getRuleInfo } = utils;
89

910
const defaultOrder = [
1011
'type',
@@ -48,7 +49,7 @@ module.exports = {
4849
},
4950

5051
create(context) {
51-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
52+
const sourceCode = utils.getSourceCode(context);
5253
const ruleInfo = getRuleInfo(sourceCode);
5354
if (!ruleInfo) {
5455
return {};

lib/rules/no-deprecated-context-methods.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ module.exports = {
5454
},
5555

5656
create(context) {
57-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
57+
const sourceCode = utils.getSourceCode(context);
5858

5959
// ----------------------------------------------------------------------
6060
// Public

lib/rules/no-deprecated-report-api.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = {
3030
},
3131

3232
create(context) {
33-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
33+
const sourceCode = utils.getSourceCode(context);
3434
let contextIdentifiers;
3535

3636
// ----------------------------------------------------------------------

lib/rules/no-identical-tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module.exports = {
3232
// ----------------------------------------------------------------------
3333
// Public
3434
// ----------------------------------------------------------------------
35-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
35+
const sourceCode = utils.getSourceCode(context);
3636

3737
// ----------------------------------------------------------------------
3838
// Helpers

lib/rules/no-meta-schema-default.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = {
2525
},
2626

2727
create(context) {
28-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
28+
const sourceCode = utils.getSourceCode(context);
2929
const { scopeManager } = sourceCode;
3030
const ruleInfo = utils.getRuleInfo(sourceCode);
3131
if (!ruleInfo) {

lib/rules/no-missing-message-ids.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module.exports = {
2626
},
2727

2828
create(context) {
29-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
29+
const sourceCode = utils.getSourceCode(context);
3030
const { scopeManager } = sourceCode;
3131
const ruleInfo = utils.getRuleInfo(sourceCode);
3232
if (!ruleInfo) {
@@ -48,7 +48,7 @@ module.exports = {
4848
},
4949

5050
CallExpression(node) {
51-
const scope = sourceCode.getScope?.(node) || context.getScope(); // TODO: just use sourceCode.getScope() when we drop support for ESLint < 9.0.0
51+
const scope = utils.getScope(context);
5252
// Check for messageId properties used in known calls to context.report();
5353
if (
5454
node.callee.type === 'MemberExpression' &&

lib/rules/no-missing-placeholders.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ module.exports = {
3131
},
3232

3333
create(context) {
34-
const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
34+
const sourceCode = utils.getSourceCode(context);
3535
const { scopeManager } = sourceCode;
3636

3737
let contextIdentifiers;
@@ -48,7 +48,7 @@ module.exports = {
4848
contextIdentifiers = utils.getContextIdentifiers(scopeManager, ast);
4949
},
5050
CallExpression(node) {
51-
const scope = sourceCode.getScope?.(node) || context.getScope(); // TODO: just use sourceCode.getScope() when we drop support for ESLint < 9.0.0
51+
const scope = utils.getScope(context);
5252
if (
5353
node.callee.type === 'MemberExpression' &&
5454
contextIdentifiers.has(node.callee.object) &&

lib/rules/no-only-tests.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ module.exports = {
5151
{
5252
messageId: 'removeOnly',
5353
*fix(fixer) {
54-
const sourceCode =
55-
context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9
54+
const sourceCode = utils.getSourceCode(context);
5655

5756
const tokenBefore =
5857
sourceCode.getTokenBefore(onlyProperty);

lib/rules/no-property-in-node.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22

3+
const utils = require('../utils');
4+
35
const defaultTypedNodeSourceFileTesters = [
46
/@types[/\\]estree[/\\]index\.d\.ts/,
57
/@typescript-eslint[/\\]types[/\\]dist[/\\]generated[/\\]ast-spec\.d\.ts/,
@@ -88,7 +90,7 @@ module.exports = {
8890
'BinaryExpression[operator=in]'(node) {
8991
// TODO: Switch this to ESLintUtils.getParserServices with typescript-eslint@>=6
9092
// https://github.com/eslint-community/eslint-plugin-eslint-plugin/issues/269
91-
const services = (context.sourceCode || context).parserServices;
93+
const services = utils.getparserServices(context);
9294
if (!services.program) {
9395
throw new Error(
9496
'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.',

0 commit comments

Comments
 (0)