Skip to content

Commit 18d1697

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

File tree

3 files changed

+43
-12
lines changed

3 files changed

+43
-12
lines changed

lib/index.js

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
module.exports = {
44
configs: {
55
"getify-says": {
6-
plugins: [ "@getify/proper-arrows", ],
76
rules: {
87
"@getify/proper-arrows/params": [ "error", { "unused": "trailing", "count": 2, "length": 3, "allowed": [ "e", "v", "cb", "fn", "pr", ], }, ],
98
"@getify/proper-arrows/name": "error",
@@ -110,7 +109,8 @@ module.exports = {
110109

111110
// handle "unused" mode
112111
if (!noneUnusedMode) {
113-
let scope = context.getScope();
112+
let sourceCode = getSourceCode(context);
113+
let scope = getScope(context,sourceCode,node);
114114
let checkParamNames = checkParamIds.map(function getName(paramId){
115115
return paramId.name;
116116
});
@@ -301,7 +301,9 @@ module.exports = {
301301
return;
302302
}
303303

304-
var globalArrow = currentlyInGlobalScope(context.parserOptions,context.getScope());
304+
var sourceCode = getSourceCode(context);
305+
var scope = getScope(context,sourceCode,node);
306+
var globalArrow = currentlyInGlobalScope(context.parserOptions,scope);
305307
var globalArrowDeclaration = (
306308
globalArrow &&
307309
node.parent.type == "VariableDeclarator"
@@ -414,12 +416,13 @@ module.exports = {
414416
var sequenceMode = defaultsOnly || !("sequence" in extraOptions) || extraOptions.sequence === true;
415417
var ignoreTrivial = !(extraOptions && extraOptions.trivial === true);
416418

417-
var sourceCode = context.getSourceCode();
419+
var sourceCode = getSourceCode(context);
418420
var ternaryBodyStack = new Map();
419421

420422
return {
421423
"ConditionalExpression:exit": function exit(node) {
422-
var parentArrow = getParentArrowFunction(context.getAncestors(),/*onlyFromBody=*/true);
424+
var ancestors = getAncestors(context,sourceCode,node);
425+
var parentArrow = getParentArrowFunction(ancestors,/*onlyFromBody=*/true);
423426
if (parentArrow) {
424427
if (!ternaryBodyStack.has(parentArrow)) {
425428
ternaryBodyStack.set(parentArrow,[]);
@@ -562,7 +565,9 @@ module.exports = {
562565

563566
return {
564567
"ThisExpression": function enter(node) {
565-
var parentArrow = getParentArrowFunction(context.getAncestors());
568+
var sourceCode = getSourceCode(context);
569+
var ancestors = getAncestors(context, sourceCode,node);
570+
var parentArrow = getParentArrowFunction(ancestors);
566571
thisFoundIn.add(parentArrow);
567572
},
568573
"ArrowFunctionExpression:exit": function exit(node) {
@@ -571,7 +576,9 @@ module.exports = {
571576
return;
572577
}
573578

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

577584
// `this` found in arrow function?
@@ -605,7 +612,8 @@ module.exports = {
605612

606613
// need to track nested `this`?
607614
if (nestedThis || neverGlobalThis) {
608-
let parentArrow = getParentArrowFunction(context.getAncestors());
615+
let ancestors = getAncestors(context, sourceCode,node);
616+
let parentArrow = getParentArrowFunction(ancestors);
609617
if (parentArrow) {
610618
thisFoundIn.add(parentArrow);
611619
}
@@ -801,3 +809,26 @@ function currentlyInGlobalScope(parserOptions,scope) {
801809
)
802810
);
803811
}
812+
813+
var getSourceCode = (context) => {
814+
getSourceCode = (context) => context.sourceCode ?? context.getSourceCode();
815+
return getSourceCode(context);
816+
};
817+
818+
var getScope = (context, sourceCode, node) => {
819+
getScope = (
820+
sourceCode.getScope ?
821+
(context, sourceCode, node) => sourceCode.getScope(node) :
822+
(context, sourceCode, node) => context.getScope()
823+
);
824+
return getScope(context, sourceCode, node);
825+
};
826+
827+
var getAncestors = (context, sourceCode, node) => {
828+
getAncestors = (
829+
sourceCode.getAncestors ?
830+
(context, sourceCode, node) => sourceCode.getAncestors(node) :
831+
(context, sourceCode, node) => context.getAncestors()
832+
);
833+
return getAncestors(context, sourceCode, node);
834+
};

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)