Skip to content

Commit cfadc82

Browse files
committed
feat: support eslint 9
Also increased major version
1 parent f9036ca commit cfadc82

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

lib/index.js

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ module.exports = {
110110

111111
// handle "unused" mode
112112
if (!noneUnusedMode) {
113-
let scope = context.getScope();
113+
let sourceCode = getSourceCode(context);
114+
let scope = getScope(context,sourceCode,node);
114115
let checkParamNames = checkParamIds.map(function getName(paramId){
115116
return paramId.name;
116117
});
@@ -301,7 +302,9 @@ module.exports = {
301302
return;
302303
}
303304

304-
var globalArrow = currentlyInGlobalScope(context.parserOptions,context.getScope());
305+
var sourceCode = getSourceCode(context);
306+
var scope = getScope(context,sourceCode,node);
307+
var globalArrow = currentlyInGlobalScope(context.parserOptions,scope);
305308
var globalArrowDeclaration = (
306309
globalArrow &&
307310
node.parent.type == "VariableDeclarator"
@@ -414,12 +417,13 @@ module.exports = {
414417
var sequenceMode = defaultsOnly || !("sequence" in extraOptions) || extraOptions.sequence === true;
415418
var ignoreTrivial = !(extraOptions && extraOptions.trivial === true);
416419

417-
var sourceCode = context.getSourceCode();
420+
var sourceCode = getSourceCode(context);
418421
var ternaryBodyStack = new Map();
419422

420423
return {
421424
"ConditionalExpression:exit": function exit(node) {
422-
var parentArrow = getParentArrowFunction(context.getAncestors(),/*onlyFromBody=*/true);
425+
var ancestors = getAncestors(context,sourceCode,node);
426+
var parentArrow = getParentArrowFunction(ancestors,/*onlyFromBody=*/true);
423427
if (parentArrow) {
424428
if (!ternaryBodyStack.has(parentArrow)) {
425429
ternaryBodyStack.set(parentArrow,[]);
@@ -562,7 +566,9 @@ module.exports = {
562566

563567
return {
564568
"ThisExpression": function enter(node) {
565-
var parentArrow = getParentArrowFunction(context.getAncestors());
569+
var sourceCode = getSourceCode(context);
570+
var ancestors = getAncestors(context, sourceCode,node);
571+
var parentArrow = getParentArrowFunction(ancestors);
566572
thisFoundIn.add(parentArrow);
567573
},
568574
"ArrowFunctionExpression:exit": function exit(node) {
@@ -571,7 +577,9 @@ module.exports = {
571577
return;
572578
}
573579

574-
var globalArrow = currentlyInGlobalScope(context.parserOptions,context.getScope());
580+
var sourceCode = getSourceCode(context);
581+
var scope = getScope(context, sourceCode, node);
582+
var globalArrow = currentlyInGlobalScope(context.parserOptions,scope);
575583
var foundThis = thisFoundIn.has(node);
576584

577585
// `this` found in arrow function?
@@ -605,7 +613,8 @@ module.exports = {
605613

606614
// need to track nested `this`?
607615
if (nestedThis || neverGlobalThis) {
608-
let parentArrow = getParentArrowFunction(context.getAncestors());
616+
let ancestors = getAncestors(context, sourceCode,node);
617+
let parentArrow = getParentArrowFunction(ancestors);
609618
if (parentArrow) {
610619
thisFoundIn.add(parentArrow);
611620
}
@@ -801,3 +810,26 @@ function currentlyInGlobalScope(parserOptions,scope) {
801810
)
802811
);
803812
}
813+
814+
var getSourceCode = (context) => {
815+
getSourceCode = (context) => context.sourceCode ?? context.getSourceCode();
816+
return getSourceCode(context);
817+
};
818+
819+
var getScope = (context, sourceCode, node) => {
820+
getScope = (
821+
sourceCode.getScope ?
822+
(context, sourceCode, node) => sourceCode.getScope(node) :
823+
(context, sourceCode, node) => context.getScope()
824+
);
825+
return getScope(context, sourceCode, node);
826+
};
827+
828+
var getAncestors = (context, sourceCode, node) => {
829+
getAncestors = (
830+
sourceCode.getAncestors ?
831+
(context, sourceCode, node) => sourceCode.getAncestors(node) :
832+
(context, sourceCode, node) => context.getAncestors()
833+
);
834+
return getAncestors(context, sourceCode, node);
835+
};

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@getify/eslint-plugin-proper-arrows",
3-
"version": "11.0.3",
3+
"version": "12.0.0",
44
"description": "ESLint rules to ensure proper arrow function definitions",
55
"main": "./lib/index.js",
66
"scripts": {
@@ -18,12 +18,12 @@
1818
},
1919
"devDependencies": {
2020
"coveralls": "~3.1.0",
21-
"eslint": "~7.25.0",
21+
"eslint": "~9.17.0",
2222
"qunit": "~2.15.0",
2323
"terser": "~5.7.0"
2424
},
2525
"peerDependencies": {
26-
"eslint": ">= 7.25.0"
26+
"eslint": ">= 9.17.0"
2727
},
2828
"repository": "getify/eslint-plugin-proper-arrows",
2929
"keywords": [

scripts/node-tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
var path = require("path");
66

77
var Linter = require("eslint").Linter;
8-
var eslinter = global.eslinter = new Linter();
8+
var eslinter = global.eslinter = new Linter({ configType: "eslintrc"});
99
var properArrows;
1010

1111
/* istanbul ignore next */

0 commit comments

Comments
 (0)