@typescript-eslint/eslint-plugin 6.20.1-alpha.8 → 6.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/all.js +1 -0
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/base.js.map +1 -1
- package/dist/configs/disable-type-checked.js +1 -0
- package/dist/configs/disable-type-checked.js.map +1 -1
- package/dist/configs/eslint-recommended.js.map +1 -1
- package/dist/configs/recommended-type-checked.js.map +1 -1
- package/dist/configs/recommended.js.map +1 -1
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs/stylistic-type-checked.js.map +1 -1
- package/dist/configs/stylistic.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-unnecessary-type-assertion.js +19 -14
- package/dist/rules/no-unnecessary-type-assertion.js.map +1 -1
- package/dist/rules/prefer-find.js +235 -0
- package/dist/rules/prefer-find.js.map +1 -0
- package/docs/rules/ban-types.md +5 -5
- package/docs/rules/explicit-function-return-type.md +5 -5
- package/docs/rules/explicit-member-accessibility.md +5 -5
- package/docs/rules/explicit-module-boundary-types.md +5 -5
- package/docs/rules/member-ordering.md +58 -58
- package/docs/rules/naming-convention.md +15 -15
- package/docs/rules/no-explicit-any.md +5 -0
- package/docs/rules/no-restricted-imports.md +7 -7
- package/docs/rules/padding-line-between-statements.md +3 -3
- package/docs/rules/prefer-find.md +39 -0
- package/docs/rules/prefer-readonly.md +4 -1
- package/package.json +7 -7
package/dist/configs/all.js
CHANGED
|
@@ -119,6 +119,7 @@ module.exports = {
|
|
|
119
119
|
'prefer-destructuring': 'off',
|
|
120
120
|
'@typescript-eslint/prefer-destructuring': 'error',
|
|
121
121
|
'@typescript-eslint/prefer-enum-initializers': 'error',
|
|
122
|
+
'@typescript-eslint/prefer-find': 'error',
|
|
122
123
|
'@typescript-eslint/prefer-for-of': 'error',
|
|
123
124
|
'@typescript-eslint/prefer-function-type': 'error',
|
|
124
125
|
'@typescript-eslint/prefer-includes': 'error',
|
package/dist/configs/all.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
|
package/dist/configs/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,oBAAoB,CAAC;CACD,CAAC"}
|
|
@@ -39,6 +39,7 @@ module.exports = {
|
|
|
39
39
|
'@typescript-eslint/no-useless-template-literals': 'off',
|
|
40
40
|
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
|
41
41
|
'@typescript-eslint/prefer-destructuring': 'off',
|
|
42
|
+
'@typescript-eslint/prefer-find': 'off',
|
|
42
43
|
'@typescript-eslint/prefer-includes': 'off',
|
|
43
44
|
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
|
44
45
|
'@typescript-eslint/prefer-optional-chain': 'off',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable-type-checked.js","sourceRoot":"","sources":["../../src/configs/disable-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"disable-type-checked.js","sourceRoot":"","sources":["../../src/configs/disable-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/C,KAAK,EAAE;QACL,mCAAmC,EAAE,KAAK;QAC1C,4CAA4C,EAAE,KAAK;QACnD,iCAAiC,EAAE,KAAK;QACxC,sCAAsC,EAAE,KAAK;QAC7C,oCAAoC,EAAE,KAAK;QAC3C,sCAAsC,EAAE,KAAK;QAC7C,iDAAiD,EAAE,KAAK;QACxD,mDAAmD,EAAE,KAAK;QAC1D,yCAAyC,EAAE,KAAK;QAChD,oCAAoC,EAAE,KAAK;QAC3C,oCAAoC,EAAE,KAAK;QAC3C,iDAAiD,EAAE,KAAK;QACxD,wCAAwC,EAAE,KAAK;QAC/C,mCAAmC,EAAE,KAAK;QAC1C,mDAAmD,EAAE,KAAK;QAC1D,qCAAqC,EAAE,KAAK;QAC5C,2DAA2D,EAAE,KAAK;QAClE,6CAA6C,EAAE,KAAK;QACpD,6CAA6C,EAAE,KAAK;QACpD,kDAAkD,EAAE,KAAK;QACzD,kDAAkD,EAAE,KAAK;QACzD,uCAAuC,EAAE,KAAK;QAC9C,yCAAyC,EAAE,KAAK;QAChD,mCAAmC,EAAE,KAAK;QAC1C,8CAA8C,EAAE,KAAK;QACrD,4CAA4C,EAAE,KAAK;QACnD,qCAAqC,EAAE,KAAK;QAC5C,0CAA0C,EAAE,KAAK;QACjD,iDAAiD,EAAE,KAAK;QACxD,sDAAsD,EAAE,KAAK;QAC7D,yCAAyC,EAAE,KAAK;QAChD,gCAAgC,EAAE,KAAK;QACvC,oCAAoC,EAAE,KAAK;QAC3C,8CAA8C,EAAE,KAAK;QACrD,0CAA0C,EAAE,KAAK;QACjD,iDAAiD,EAAE,KAAK;QACxD,oCAAoC,EAAE,KAAK;QAC3C,oDAAoD,EAAE,KAAK;QAC3D,iDAAiD,EAAE,KAAK;QACxD,uCAAuC,EAAE,KAAK;QAC9C,4CAA4C,EAAE,KAAK;QACnD,mDAAmD,EAAE,KAAK;QAC1D,2CAA2C,EAAE,KAAK;QAClD,+CAA+C,EAAE,KAAK;QACtD,kCAAkC,EAAE,KAAK;QACzC,2CAA2C,EAAE,KAAK;QAClD,kDAAkD,EAAE,KAAK;QACzD,iCAAiC,EAAE,KAAK;QACxC,+CAA+C,EAAE,KAAK;QACtD,gDAAgD,EAAE,KAAK;QACvD,mCAAmC,EAAE,KAAK;KAC3C;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";AAOA,iBAAS;IACP,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;YAC1C,KAAK,EAAE;gBACL,mBAAmB,EAAE,KAAK,EAAE,sBAAsB;gBAClD,eAAe,EAAE,KAAK,EAAE,WAAW;gBACnC,iBAAiB,EAAE,KAAK,EAAE,WAAW;gBACrC,cAAc,EAAE,KAAK,EAAE,WAAW;gBAClC,uBAAuB,EAAE,KAAK,EAAE,sBAAsB;gBACtD,cAAc,EAAE,KAAK,EAAE,WAAW;gBAClC,gBAAgB,EAAE,KAAK,EAAE,WAAW;gBACpC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB;gBACjD,eAAe,EAAE,KAAK,EAAE,WAAW;gBACnC,cAAc,EAAE,KAAK,EAAE,WAAW;gBAClC,cAAc,EAAE,KAAK,EAAE,WAAW;gBAClC,kBAAkB,EAAE,KAAK,EAAE,WAAW;gBACtC,sBAAsB,EAAE,KAAK,EAAE,uBAAuB;gBACtD,UAAU,EAAE,KAAK,EAAE,sBAAsB;gBACzC,gBAAgB,EAAE,KAAK,EAAE,WAAW;gBACpC,oBAAoB,EAAE,KAAK,EAAE,iCAAiC;gBAC9D,QAAQ,EAAE,OAAO,EAAE,+DAA+D;gBAClF,cAAc,EAAE,OAAO,EAAE,sCAAsC;gBAC/D,oBAAoB,EAAE,OAAO,EAAE,yDAAyD;gBACxF,eAAe,EAAE,OAAO,EAAE,6DAA6D;aACxF;SACF;KACF;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended-type-checked.js","sourceRoot":"","sources":["../../src/configs/recommended-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"recommended-type-checked.js","sourceRoot":"","sources":["../../src/configs/recommended-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,mCAAmC,EAAE,OAAO;QAC5C,8BAA8B,EAAE,OAAO;QACvC,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,sCAAsC,EAAE,OAAO;QAC/C,6CAA6C,EAAE,OAAO;QACtD,mDAAmD,EAAE,OAAO;QAC5D,oCAAoC,EAAE,OAAO;QAC7C,gDAAgD,EAAE,OAAO;QACzD,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,wCAAwC,EAAE,OAAO;QACjD,iCAAiC,EAAE,OAAO;QAC1C,wDAAwD,EAAE,OAAO;QACjE,mDAAmD,EAAE,OAAO;QAC5D,kCAAkC,EAAE,OAAO;QAC3C,kDAAkD,EAAE,OAAO;QAC3D,mDAAmD,EAAE,OAAO;QAC5D,uCAAuC,EAAE,OAAO;QAChD,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,kDAAkD,EAAE,OAAO;QAC3D,8CAA8C,EAAE,OAAO;QACvD,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,OAAO;QAC5C,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,2CAA2C,EAAE,OAAO;QACpD,mCAAmC,EAAE,OAAO;KAC7C;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,8BAA8B,EAAE,OAAO;QACvC,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,6CAA6C,EAAE,OAAO;QACtD,oCAAoC,EAAE,OAAO;QAC7C,gDAAgD,EAAE,OAAO;QACzD,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,iCAAiC,EAAE,OAAO;QAC1C,wDAAwD,EAAE,OAAO;QACjE,kCAAkC,EAAE,OAAO;QAC3C,mDAAmD,EAAE,OAAO;QAC5D,kDAAkD,EAAE,OAAO;QAC3D,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,OAAO;QAC5C,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,2CAA2C,EAAE,OAAO;KACrD;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strict-type-checked.js","sourceRoot":"","sources":["../../src/configs/strict-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"strict-type-checked.js","sourceRoot":"","sources":["../../src/configs/strict-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,mCAAmC,EAAE,OAAO;QAC5C,8BAA8B,EAAE,OAAO;QACvC,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,sCAAsC,EAAE,OAAO;QAC/C,iDAAiD,EAAE,OAAO;QAC1D,6CAA6C,EAAE,OAAO;QACtD,mDAAmD,EAAE,OAAO;QAC5D,sCAAsC,EAAE,OAAO;QAC/C,oCAAoC,EAAE,OAAO;QAC7C,gDAAgD,EAAE,OAAO;QACzD,wCAAwC,EAAE,OAAO;QACjD,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,yCAAyC,EAAE,OAAO;QAClD,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,iDAAiD,EAAE,OAAO;QAC1D,mCAAmC,EAAE,OAAO;QAC5C,wCAAwC,EAAE,OAAO;QACjD,mCAAmC,EAAE,OAAO;QAC5C,iCAAiC,EAAE,OAAO;QAC1C,4DAA4D,EAAE,OAAO;QACrE,wDAAwD,EAAE,OAAO;QACjE,0CAA0C,EAAE,OAAO;QACnD,mDAAmD,EAAE,OAAO;QAC5D,kCAAkC,EAAE,OAAO;QAC3C,kBAAkB,EAAE,KAAK;QACzB,qCAAqC,EAAE,OAAO;QAC9C,2DAA2D,EAAE,OAAO;QACpE,6CAA6C,EAAE,OAAO;QACtD,kDAAkD,EAAE,OAAO;QAC3D,kDAAkD,EAAE,OAAO;QAC3D,mDAAmD,EAAE,OAAO;QAC5D,uCAAuC,EAAE,OAAO;QAChD,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,kDAAkD,EAAE,OAAO;QAC3D,8CAA8C,EAAE,OAAO;QACvD,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,OAAO;QAC5C,wBAAwB,EAAE,KAAK;QAC/B,2CAA2C,EAAE,OAAO;QACpD,iDAAiD,EAAE,OAAO;QAC1D,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,+CAA+C,EAAE,OAAO;QACxD,8BAA8B,EAAE,KAAK;QACrC,iDAAiD,EAAE,OAAO;QAC1D,iDAAiD,EAAE,OAAO;QAC1D,4CAA4C,EAAE,OAAO;QACrD,2CAA2C,EAAE,OAAO;QACpD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,2CAA2C,EAAE,OAAO;QACpD,mCAAmC,EAAE,OAAO;QAC5C,uCAAuC,EAAE,OAAO;KACjD;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,8BAA8B,EAAE,OAAO;QACvC,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,6CAA6C,EAAE,OAAO;QACtD,sCAAsC,EAAE,OAAO;QAC/C,oCAAoC,EAAE,OAAO;QAC7C,gDAAgD,EAAE,OAAO;QACzD,wCAAwC,EAAE,OAAO;QACjD,yCAAyC,EAAE,OAAO;QAClD,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,iCAAiC,EAAE,OAAO;QAC1C,4DAA4D,EAAE,OAAO;QACrE,wDAAwD,EAAE,OAAO;QACjE,0CAA0C,EAAE,OAAO;QACnD,kCAAkC,EAAE,OAAO;QAC3C,mDAAmD,EAAE,OAAO;QAC5D,kDAAkD,EAAE,OAAO;QAC3D,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,OAAO;QAC5C,wBAAwB,EAAE,KAAK;QAC/B,2CAA2C,EAAE,OAAO;QACpD,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,+CAA+C,EAAE,OAAO;QACxD,2CAA2C,EAAE,OAAO;QACpD,2CAA2C,EAAE,OAAO;QACpD,uCAAuC,EAAE,OAAO;KACjD;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylistic-type-checked.js","sourceRoot":"","sources":["../../src/configs/stylistic-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"stylistic-type-checked.js","sourceRoot":"","sources":["../../src/configs/stylistic-type-checked.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,iDAAiD,EAAE,OAAO;QAC1D,+BAA+B,EAAE,OAAO;QACxC,uCAAuC,EAAE,OAAO;QAChD,iDAAiD,EAAE,OAAO;QAC1D,oDAAoD,EAAE,OAAO;QAC7D,oDAAoD,EAAE,OAAO;QAC7D,+CAA+C,EAAE,OAAO;QACxD,gDAAgD,EAAE,OAAO;QACzD,cAAc,EAAE,KAAK;QACrB,iCAAiC,EAAE,OAAO;QAC1C,oDAAoD,EAAE,OAAO;QAC7D,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,uCAAuC,EAAE,OAAO;QAChD,wCAAwC,EAAE,OAAO;QACjD,sDAAsD,EAAE,OAAO;QAC/D,kCAAkC,EAAE,OAAO;QAC3C,yCAAyC,EAAE,OAAO;QAClD,6CAA6C,EAAE,OAAO;QACtD,8CAA8C,EAAE,OAAO;QACvD,0CAA0C,EAAE,OAAO;QACnD,mDAAmD,EAAE,OAAO;KAC7D;CAC6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylistic.js","sourceRoot":"","sources":["../../src/configs/stylistic.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;
|
|
1
|
+
{"version":3,"file":"stylistic.js","sourceRoot":"","sources":["../../src/configs/stylistic.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,mDAAmD;AACnD,EAAE;AACF,4DAA4D;AAC5D,sDAAsD;AAItD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,iDAAiD,EAAE,OAAO;QAC1D,+BAA+B,EAAE,OAAO;QACxC,uCAAuC,EAAE,OAAO;QAChD,iDAAiD,EAAE,OAAO;QAC1D,oDAAoD,EAAE,OAAO;QAC7D,oDAAoD,EAAE,OAAO;QAC7D,+CAA+C,EAAE,OAAO;QACxD,gDAAgD,EAAE,OAAO;QACzD,oDAAoD,EAAE,OAAO;QAC7D,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,uCAAuC,EAAE,OAAO;QAChD,wCAAwC,EAAE,OAAO;QACjD,kCAAkC,EAAE,OAAO;QAC3C,yCAAyC,EAAE,OAAO;QAClD,6CAA6C,EAAE,OAAO;KACvD;CAC6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,8 @@ const strict_type_checked_1 = __importDefault(require("./configs/strict-type-che
|
|
|
13
13
|
const stylistic_1 = __importDefault(require("./configs/stylistic"));
|
|
14
14
|
const stylistic_type_checked_1 = __importDefault(require("./configs/stylistic-type-checked"));
|
|
15
15
|
const rules_1 = __importDefault(require("./rules"));
|
|
16
|
+
// note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder
|
|
17
|
+
const { name, version } = require('../package.json');
|
|
16
18
|
module.exports = {
|
|
17
19
|
configs: {
|
|
18
20
|
all: all_1.default,
|
|
@@ -28,6 +30,10 @@ module.exports = {
|
|
|
28
30
|
stylistic: stylistic_1.default,
|
|
29
31
|
'stylistic-type-checked': stylistic_type_checked_1.default,
|
|
30
32
|
},
|
|
33
|
+
meta: {
|
|
34
|
+
name,
|
|
35
|
+
version,
|
|
36
|
+
},
|
|
31
37
|
rules: rules_1.default,
|
|
32
38
|
};
|
|
33
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAEA,wDAAgC;AAChC,0DAAkC;AAClC,0FAAgE;AAChE,sFAA6D;AAC7D,wEAAgD;AAChD,kGAAwE;AACxE,8DAAsC;AACtC,wFAA8D;AAC9D,oEAA4C;AAC5C,8FAAoE;AACpE,oDAA4B;AAE5B,sHAAsH;AACtH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAGlD,CAAC;AAEF,iBAAS;IACP,OAAO,EAAE;QACP,GAAG,EAAH,aAAG;QACH,IAAI,EAAJ,cAAI;QACJ,sBAAsB,EAAE,8BAAkB;QAC1C,oBAAoB,EAAE,4BAAiB;QACvC,WAAW,EAAX,qBAAW;QACX,mEAAmE;QACnE,qCAAqC,EAAE,kCAAsB;QAC7D,0BAA0B,EAAE,kCAAsB;QAClD,MAAM,EAAN,gBAAM;QACN,qBAAqB,EAAE,6BAAiB;QACxC,SAAS,EAAT,mBAAS;QACT,wBAAwB,EAAE,gCAAoB;KAC/C;IACD,IAAI,EAAE;QACJ,IAAI;QACJ,OAAO;KACR;IACD,KAAK,EAAL,eAAK;CACkB,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -108,6 +108,7 @@ const parameter_properties_1 = __importDefault(require("./parameter-properties")
|
|
|
108
108
|
const prefer_as_const_1 = __importDefault(require("./prefer-as-const"));
|
|
109
109
|
const prefer_destructuring_1 = __importDefault(require("./prefer-destructuring"));
|
|
110
110
|
const prefer_enum_initializers_1 = __importDefault(require("./prefer-enum-initializers"));
|
|
111
|
+
const prefer_find_1 = __importDefault(require("./prefer-find"));
|
|
111
112
|
const prefer_for_of_1 = __importDefault(require("./prefer-for-of"));
|
|
112
113
|
const prefer_function_type_1 = __importDefault(require("./prefer-function-type"));
|
|
113
114
|
const prefer_includes_1 = __importDefault(require("./prefer-includes"));
|
|
@@ -248,6 +249,7 @@ exports.default = {
|
|
|
248
249
|
'prefer-as-const': prefer_as_const_1.default,
|
|
249
250
|
'prefer-destructuring': prefer_destructuring_1.default,
|
|
250
251
|
'prefer-enum-initializers': prefer_enum_initializers_1.default,
|
|
252
|
+
'prefer-find': prefer_find_1.default,
|
|
251
253
|
'prefer-for-of': prefer_for_of_1.default,
|
|
252
254
|
'prefer-function-type': prefer_function_type_1.default,
|
|
253
255
|
'prefer-includes': prefer_includes_1.default,
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;;;AAEA,kGAAwE;AACxE,8DAAqC;AACrC,sEAA6C;AAC7C,sEAA4C;AAC5C,8EAAoD;AACpD,4DAAmC;AACnC,oEAA2C;AAC3C,gEAAuC;AACvC,kGAAuE;AACvE,sFAA2D;AAC3D,kEAAyC;AACzC,oEAA2C;AAC3C,wGAA8E;AAC9E,wGAA6E;AAC7E,8FAAoE;AACpE,gGAAsE;AACtE,wFAA8D;AAC9D,wFAA8D;AAC9D,8EAAoD;AACpD,kEAAyC;AACzC,oGAAyE;AACzE,oGAA0E;AAC1E,sGAA2E;AAC3E,4EAAkD;AAClD,sDAA8B;AAC9B,4EAAmD;AACnD,gEAAuC;AACvC,wEAA+C;AAC/C,kFAAwD;AACxD,gGAAqE;AACrE,8DAAqC;AACrC,sFAA4D;AAC5D,wEAA+C;AAC/C,sFAA4D;AAC5D,4EAAmD;AACnD,kFAAwD;AACxD,wEAA8C;AAC9C,4EAAiD;AACjD,wGAAsF;AACtF,kGAAuE;AACvE,oFAAyD;AACzD,0FAA+D;AAC/D,sGAA2E;AAC3E,4EAAkD;AAClD,4EAAkD;AAClD,8EAAoD;AACpD,wEAA8C;AAC9C,gGAAoE;AACpE,wEAA8C;AAC9C,oEAA0C;AAC1C,gFAAsD;AACtD,kFAAwD;AACxD,wEAA6C;AAC7C,wEAA8C;AAC9C,gGAAoE;AACpE,gFAAsD;AACtD,wEAA8C;AAC9C,kFAAuD;AACvD,kEAAwC;AACxC,kFAAuD;AACvD,0EAAgD;AAChD,kGAAuE;AACvE,sEAA4C;AAC5C,gFAAsD;AACtD,sEAA4C;AAC5C,kEAAyC;AACzC,wHAA2F;AAC3F,gHAAmF;AACnF,oFAAyD;AACzD,kEAAyC;AACzC,sGAA2E;AAC3E,8EAAoD;AACpD,oFAA0D;AAC1D,4DAAmC;AACnC,oEAA0C;AAC1C,0EAAgD;AAChD,oEAA0C;AAC1C,sHAA0F;AAC1F,0FAAgE;AAChE,0FAAgE;AAChE,oGAAyE;AACzE,oGAAyE;AACzE,sGAA2E;AAC3E,8EAAoD;AACpD,kFAAwD;AACxD,sEAA4C;AAC5C,oGAAyE;AACzE,4FAAiE;AACjE,wFAA6D;AAC7D,0EAAgD;AAChD,oFAAyD;AACzD,oFAA0D;AAC1D,sEAA4C;AAC5C,kFAAuD;AACvD,sFAA4D;AAC5D,wFAA6D;AAC7D,kGAAuE;AACvE,wEAA8C;AAC9C,4GAAgF;AAChF,kFAAwD;AACxD,wGAA6E;AAC7E,kFAAyD;AACzD,wEAA8C;AAC9C,kFAAyD;AACzD,0FAAgE;AAChE,gEAAuC;AACvC,oEAA0C;AAC1C,kFAAwD;AACxD,wEAA+C;AAC/C,8FAAmE;AACnE,0FAAgE;AAChE,4FAAkE;AAClE,oFAA0D;AAC1D,kGAAuE;AACvE,wEAA+C;AAC/C,wGAA6E;AAC7E,kGAAuE;AACvE,8EAAoD;AACpD,wFAA6D;AAC7D,sGAA0E;AAC1E,sFAA2D;AAC3D,sFAA4D;AAC5D,sDAA8B;AAC9B,8FAAmE;AACnE,oEAA2C;AAC3C,sFAA4D;AAC5D,oGAA0E;AAC1E,kEAAyC;AACzC,kDAA0B;AAC1B,sFAA4D;AAC5D,gFAAsD;AACtD,gGAAqE;AACrE,wEAA8C;AAC9C,8FAAoE;AACpE,gGAAsE;AACtE,sFAA4D;AAC5D,wFAA8D;AAC9D,wDAAgC;AAChC,sEAA6C;AAC7C,8EAAqD;AAErD,kBAAe;IACb,8BAA8B,EAAE,sCAA0B;IAC1D,YAAY,EAAE,oBAAS;IACvB,gBAAgB,EAAE,wBAAa;IAC/B,gBAAgB,EAAE,wBAAY;IAC9B,oBAAoB,EAAE,4BAAgB;IACtC,WAAW,EAAE,mBAAQ;IACrB,eAAe,EAAE,uBAAY;IAC7B,aAAa,EAAE,qBAAU;IACzB,8BAA8B,EAAE,sCAAyB;IACzD,wBAAwB,EAAE,gCAAmB;IAC7C,cAAc,EAAE,sBAAW;IAC3B,eAAe,EAAE,uBAAY;IAC7B,iCAAiC,EAAE,yCAA6B;IAChE,iCAAiC,EAAE,yCAA4B;IAC/D,4BAA4B,EAAE,oCAAwB;IACtD,6BAA6B,EAAE,qCAAyB;IACxD,yBAAyB,EAAE,iCAAqB;IAChD,yBAAyB,EAAE,iCAAqB;IAChD,oBAAoB,EAAE,4BAAgB;IACtC,cAAc,EAAE,sBAAW;IAC3B,+BAA+B,EAAE,uCAA0B;IAC3D,+BAA+B,EAAE,uCAA2B;IAC5D,gCAAgC,EAAE,wCAA2B;IAC7D,mBAAmB,EAAE,2BAAe;IACpC,MAAM,EAAE,gBAAM;IACd,mBAAmB,EAAE,2BAAgB;IACrC,aAAa,EAAE,qBAAU;IACzB,iBAAiB,EAAE,yBAAc;IACjC,sBAAsB,EAAE,8BAAkB;IAC1C,6BAA6B,EAAE,qCAAwB;IACvD,YAAY,EAAE,oBAAS;IACvB,wBAAwB,EAAE,gCAAoB;IAC9C,iBAAiB,EAAE,yBAAc;IACjC,wBAAwB,EAAE,gCAAoB;IAC9C,mBAAmB,EAAE,2BAAgB;IACrC,sBAAsB,EAAE,8BAAkB;IAC1C,iBAAiB,EAAE,yBAAa;IAChC,mBAAmB,EAAE,2BAAc;IACnC,iCAAiC,EAAE,yCAAqC;IACxE,8BAA8B,EAAE,sCAAyB;IACzD,uBAAuB,EAAE,+BAAkB;IAC3C,0BAA0B,EAAE,kCAAqB;IACjD,gCAAgC,EAAE,wCAA2B;IAC7D,mBAAmB,EAAE,2BAAe;IACpC,mBAAmB,EAAE,2BAAe;IACpC,oBAAoB,EAAE,4BAAgB;IACtC,iBAAiB,EAAE,yBAAa;IAChC,6BAA6B,EAAE,qCAAuB;IACtD,iBAAiB,EAAE,yBAAa;IAChC,eAAe,EAAE,uBAAW;IAC5B,qBAAqB,EAAE,6BAAiB;IACxC,sBAAsB,EAAE,8BAAkB;IAC1C,iBAAiB,EAAE,yBAAY;IAC/B,iBAAiB,EAAE,yBAAa;IAChC,6BAA6B,EAAE,qCAAuB;IACtD,qBAAqB,EAAE,6BAAiB;IACxC,iBAAiB,EAAE,yBAAa;IAChC,sBAAsB,EAAE,8BAAiB;IACzC,cAAc,EAAE,sBAAU;IAC1B,sBAAsB,EAAE,8BAAiB;IACzC,kBAAkB,EAAE,0BAAc;IAClC,8BAA8B,EAAE,sCAAyB;IACzD,gBAAgB,EAAE,wBAAY;IAC9B,qBAAqB,EAAE,6BAAiB;IACxC,gBAAgB,EAAE,wBAAY;IAC9B,cAAc,EAAE,sBAAW;IAC3B,yCAAyC,EAAE,iDAAkC;IAC7E,qCAAqC,EAAE,6CAA8B;IACrE,uBAAuB,EAAE,+BAAkB;IAC3C,cAAc,EAAE,sBAAW;IAC3B,gCAAgC,EAAE,wCAA2B;IAC7D,oBAAoB,EAAE,4BAAgB;IACtC,uBAAuB,EAAE,+BAAmB;IAC5C,WAAW,EAAE,mBAAQ;IACrB,eAAe,EAAE,uBAAW;IAC5B,kBAAkB,EAAE,0BAAc;IAClC,eAAe,EAAE,uBAAW;IAC5B,wCAAwC,EAAE,gDAAkC;IAC5E,0BAA0B,EAAE,kCAAsB;IAClD,0BAA0B,EAAE,kCAAsB;IAClD,+BAA+B,EAAE,uCAA0B;IAC3D,+BAA+B,EAAE,uCAA0B;IAC3D,gCAAgC,EAAE,wCAA2B;IAC7D,oBAAoB,EAAE,4BAAgB;IACtC,sBAAsB,EAAE,8BAAkB;IAC1C,gBAAgB,EAAE,wBAAY;IAC9B,+BAA+B,EAAE,uCAA0B;IAC3D,2BAA2B,EAAE,mCAAsB;IACnD,yBAAyB,EAAE,iCAAoB;IAC/C,kBAAkB,EAAE,0BAAc;IAClC,uBAAuB,EAAE,+BAAkB;IAC3C,uBAAuB,EAAE,+BAAmB;IAC5C,gBAAgB,EAAE,wBAAY;IAC9B,sBAAsB,EAAE,8BAAiB;IACzC,wBAAwB,EAAE,gCAAoB;IAC9C,yBAAyB,EAAE,iCAAoB;IAC/C,8BAA8B,EAAE,sCAAyB;IACzD,iBAAiB,EAAE,yBAAa;IAChC,mCAAmC,EAAE,2CAA6B;IAClE,sBAAsB,EAAE,8BAAkB;IAC1C,iCAAiC,EAAE,yCAA4B;IAC/D,sBAAsB,EAAE,8BAAmB;IAC3C,iBAAiB,EAAE,yBAAa;IAChC,sBAAsB,EAAE,8BAAmB;IAC3C,0BAA0B,EAAE,kCAAsB;IAClD,aAAa,EAAE,qBAAU;IACzB,eAAe,EAAE,uBAAW;IAC5B,sBAAsB,EAAE,8BAAkB;IAC1C,iBAAiB,EAAE,yBAAc;IACjC,4BAA4B,EAAE,oCAAuB;IACrD,0BAA0B,EAAE,kCAAsB;IAClD,2BAA2B,EAAE,mCAAuB;IACpD,uBAAuB,EAAE,+BAAmB;IAC5C,8BAA8B,EAAE,sCAAyB;IACzD,iBAAiB,EAAE,yBAAc;IACjC,iCAAiC,EAAE,yCAA4B;IAC/D,8BAA8B,EAAE,sCAAyB;IACzD,oBAAoB,EAAE,4BAAgB;IACtC,yBAAyB,EAAE,iCAAoB;IAC/C,gCAAgC,EAAE,wCAA0B;IAC5D,wBAAwB,EAAE,gCAAmB;IAC7C,wBAAwB,EAAE,gCAAoB;IAC9C,MAAM,EAAE,gBAAM;IACd,4BAA4B,EAAE,oCAAuB;IACrD,eAAe,EAAE,uBAAY;IAC7B,wBAAwB,EAAE,gCAAoB;IAC9C,+BAA+B,EAAE,uCAA2B;IAC5D,cAAc,EAAE,sBAAW;IAC3B,IAAI,EAAE,cAAI;IACV,wBAAwB,EAAE,gCAAoB;IAC9C,qBAAqB,EAAE,6BAAiB;IACxC,6BAA6B,EAAE,qCAAwB;IACvD,iBAAiB,EAAE,yBAAa;IAChC,4BAA4B,EAAE,oCAAwB;IACtD,6BAA6B,EAAE,qCAAyB;IACxD,wBAAwB,EAAE,gCAAoB;IAC9C,yBAAyB,EAAE,iCAAqB;IAChD,OAAO,EAAE,iBAAO;IAChB,gBAAgB,EAAE,wBAAa;IAC/B,oBAAoB,EAAE,4BAAiB;CACX,CAAC"}
|
|
@@ -221,21 +221,26 @@ exports.default = (0, util_1.createRule)({
|
|
|
221
221
|
messageId: 'unnecessaryAssertion',
|
|
222
222
|
fix(fixer) {
|
|
223
223
|
if (node.type === utils_1.AST_NODE_TYPES.TSTypeAssertion) {
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
224
|
+
const openingAngleBracket = sourceCode.getTokenBefore(node.typeAnnotation, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator &&
|
|
225
|
+
token.value === '<');
|
|
226
|
+
const closingAngleBracket = sourceCode.getTokenAfter(node.typeAnnotation, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator &&
|
|
227
|
+
token.value === '>');
|
|
228
|
+
// < ( number ) > ( 3 + 5 )
|
|
229
|
+
// ^---remove---^
|
|
230
|
+
return fixer.removeRange([
|
|
231
|
+
openingAngleBracket.range[0],
|
|
232
|
+
closingAngleBracket.range[1],
|
|
233
|
+
]);
|
|
231
234
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
235
|
+
// `as` is always present in TSAsExpression
|
|
236
|
+
const asToken = sourceCode.getTokenAfter(node.expression, token => token.type === utils_1.AST_TOKEN_TYPES.Identifier &&
|
|
237
|
+
token.value === 'as');
|
|
238
|
+
const tokenBeforeAs = sourceCode.getTokenBefore(asToken, {
|
|
239
|
+
includeComments: true,
|
|
240
|
+
});
|
|
241
|
+
// ( 3 + 5 ) as number
|
|
242
|
+
// ^--remove--^
|
|
243
|
+
return fixer.removeRange([tokenBeforeAs.range[1], node.range[1]]);
|
|
239
244
|
},
|
|
240
245
|
});
|
|
241
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
27
|
+
const eslint_utils_1 = require("@typescript-eslint/utils/eslint-utils");
|
|
28
|
+
const tsutils = __importStar(require("ts-api-utils"));
|
|
29
|
+
const util_1 = require("../util");
|
|
30
|
+
exports.default = (0, util_1.createRule)({
|
|
31
|
+
name: 'prefer-find',
|
|
32
|
+
meta: {
|
|
33
|
+
docs: {
|
|
34
|
+
description: 'Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result',
|
|
35
|
+
requiresTypeChecking: true,
|
|
36
|
+
},
|
|
37
|
+
messages: {
|
|
38
|
+
preferFind: 'Prefer .find(...) instead of .filter(...)[0].',
|
|
39
|
+
preferFindSuggestion: 'Use .find(...) instead of .filter(...)[0].',
|
|
40
|
+
},
|
|
41
|
+
schema: [],
|
|
42
|
+
type: 'suggestion',
|
|
43
|
+
hasSuggestions: true,
|
|
44
|
+
},
|
|
45
|
+
defaultOptions: [],
|
|
46
|
+
create(context) {
|
|
47
|
+
const globalScope = (0, eslint_utils_1.getScope)(context);
|
|
48
|
+
const services = (0, util_1.getParserServices)(context);
|
|
49
|
+
const checker = services.program.getTypeChecker();
|
|
50
|
+
function parseIfArrayFilterExpression(expression) {
|
|
51
|
+
if (expression.type === utils_1.AST_NODE_TYPES.SequenceExpression) {
|
|
52
|
+
// Only the last expression in (a, b, [1, 2, 3].filter(condition))[0] matters
|
|
53
|
+
const lastExpression = (0, util_1.nullThrows)(expression.expressions.at(-1), 'Expected to have more than zero expressions in a sequence expression');
|
|
54
|
+
return parseIfArrayFilterExpression(lastExpression);
|
|
55
|
+
}
|
|
56
|
+
if (expression.type === utils_1.AST_NODE_TYPES.ChainExpression) {
|
|
57
|
+
return parseIfArrayFilterExpression(expression.expression);
|
|
58
|
+
}
|
|
59
|
+
// Check if it looks like <<stuff>>(...), but not <<stuff>>?.(...)
|
|
60
|
+
if (expression.type === utils_1.AST_NODE_TYPES.CallExpression &&
|
|
61
|
+
!expression.optional) {
|
|
62
|
+
const callee = expression.callee;
|
|
63
|
+
// Check if it looks like <<stuff>>.filter(...) or <<stuff>>['filter'](...),
|
|
64
|
+
// or the optional chaining variants.
|
|
65
|
+
if (callee.type === utils_1.AST_NODE_TYPES.MemberExpression) {
|
|
66
|
+
const isBracketSyntaxForFilter = callee.computed;
|
|
67
|
+
if (isStaticMemberAccessOfValue(callee, 'filter', globalScope)) {
|
|
68
|
+
const filterNode = callee.property;
|
|
69
|
+
const filteredObjectType = (0, util_1.getConstrainedTypeAtLocation)(services, callee.object);
|
|
70
|
+
// As long as the object is a (possibly nullable) array,
|
|
71
|
+
// this is an Array.prototype.filter expression.
|
|
72
|
+
if (isArrayish(filteredObjectType)) {
|
|
73
|
+
return {
|
|
74
|
+
isBracketSyntaxForFilter,
|
|
75
|
+
filterNode,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Tells whether the type is a possibly nullable array/tuple or union thereof.
|
|
85
|
+
*/
|
|
86
|
+
function isArrayish(type) {
|
|
87
|
+
let isAtLeastOneArrayishComponent = false;
|
|
88
|
+
for (const unionPart of tsutils.unionTypeParts(type)) {
|
|
89
|
+
if (tsutils.isIntrinsicNullType(unionPart) ||
|
|
90
|
+
tsutils.isIntrinsicUndefinedType(unionPart)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// apparently checker.isArrayType(T[] & S[]) => false.
|
|
94
|
+
// so we need to check the intersection parts individually.
|
|
95
|
+
const isArrayOrIntersectionThereof = tsutils
|
|
96
|
+
.intersectionTypeParts(unionPart)
|
|
97
|
+
.every(intersectionPart => checker.isArrayType(intersectionPart) ||
|
|
98
|
+
checker.isTupleType(intersectionPart));
|
|
99
|
+
if (!isArrayOrIntersectionThereof) {
|
|
100
|
+
// There is a non-array, non-nullish type component,
|
|
101
|
+
// so it's not an array.
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
isAtLeastOneArrayishComponent = true;
|
|
105
|
+
}
|
|
106
|
+
return isAtLeastOneArrayishComponent;
|
|
107
|
+
}
|
|
108
|
+
function getObjectIfArrayAtExpression(node) {
|
|
109
|
+
// .at() should take exactly one argument.
|
|
110
|
+
if (node.arguments.length !== 1) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const atArgument = (0, util_1.getStaticValue)(node.arguments[0], globalScope);
|
|
114
|
+
if (atArgument != null && isTreatedAsZeroByArrayAt(atArgument.value)) {
|
|
115
|
+
const callee = node.callee;
|
|
116
|
+
if (callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
117
|
+
!callee.optional &&
|
|
118
|
+
isStaticMemberAccessOfValue(callee, 'at', globalScope)) {
|
|
119
|
+
return callee.object;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Implements the algorithm for array indexing by `.at()` method.
|
|
126
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at#parameters
|
|
127
|
+
*/
|
|
128
|
+
function isTreatedAsZeroByArrayAt(value) {
|
|
129
|
+
const asNumber = Number(value);
|
|
130
|
+
if (isNaN(asNumber)) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
return Math.trunc(asNumber) === 0;
|
|
134
|
+
}
|
|
135
|
+
function isMemberAccessOfZero(node) {
|
|
136
|
+
const property = (0, util_1.getStaticValue)(node.property, globalScope);
|
|
137
|
+
// Check if it looks like <<stuff>>[0] or <<stuff>>['0'], but not <<stuff>>?.[0]
|
|
138
|
+
return (!node.optional &&
|
|
139
|
+
property != null &&
|
|
140
|
+
isTreatedAsZeroByMemberAccess(property.value));
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Implements the algorithm for array indexing by member operator.
|
|
144
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#array_indices
|
|
145
|
+
*/
|
|
146
|
+
function isTreatedAsZeroByMemberAccess(value) {
|
|
147
|
+
return String(value) === '0';
|
|
148
|
+
}
|
|
149
|
+
function generateFixToRemoveArrayElementAccess(fixer, arrayNode, wholeExpressionBeingFlagged, sourceCode) {
|
|
150
|
+
const tokenToStartDeletingFrom = (0, util_1.nullThrows)(
|
|
151
|
+
// The next `.` or `[` is what we're looking for.
|
|
152
|
+
// think of (...).at(0) or (...)[0] or even (...)["at"](0).
|
|
153
|
+
sourceCode.getTokenAfter(arrayNode, token => token.value === '.' || token.value === '['), 'Expected to find a member access token!');
|
|
154
|
+
return fixer.removeRange([
|
|
155
|
+
tokenToStartDeletingFrom.range[0],
|
|
156
|
+
wholeExpressionBeingFlagged.range[1],
|
|
157
|
+
]);
|
|
158
|
+
}
|
|
159
|
+
function generateFixToReplaceFilterWithFind(fixer, filterExpression) {
|
|
160
|
+
return fixer.replaceText(filterExpression.filterNode, filterExpression.isBracketSyntaxForFilter ? '"find"' : 'find');
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
// This query will be used to find things like `filteredResults.at(0)`.
|
|
164
|
+
CallExpression(node) {
|
|
165
|
+
const object = getObjectIfArrayAtExpression(node);
|
|
166
|
+
if (object) {
|
|
167
|
+
const filterExpression = parseIfArrayFilterExpression(object);
|
|
168
|
+
if (filterExpression) {
|
|
169
|
+
context.report({
|
|
170
|
+
node,
|
|
171
|
+
messageId: 'preferFind',
|
|
172
|
+
suggest: [
|
|
173
|
+
{
|
|
174
|
+
messageId: 'preferFindSuggestion',
|
|
175
|
+
fix: (fixer) => {
|
|
176
|
+
const sourceCode = (0, eslint_utils_1.getSourceCode)(context);
|
|
177
|
+
return [
|
|
178
|
+
generateFixToReplaceFilterWithFind(fixer, filterExpression),
|
|
179
|
+
// Get rid of the .at(0) or ['at'](0).
|
|
180
|
+
generateFixToRemoveArrayElementAccess(fixer, object, node, sourceCode),
|
|
181
|
+
];
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
// This query will be used to find things like `filteredResults[0]`.
|
|
190
|
+
//
|
|
191
|
+
// Note: we're always looking for array member access to be "computed",
|
|
192
|
+
// i.e. `filteredResults[0]`, since `filteredResults.0` isn't a thing.
|
|
193
|
+
['MemberExpression[computed=true]'](node) {
|
|
194
|
+
if (isMemberAccessOfZero(node)) {
|
|
195
|
+
const object = node.object;
|
|
196
|
+
const filterExpression = parseIfArrayFilterExpression(object);
|
|
197
|
+
if (filterExpression) {
|
|
198
|
+
context.report({
|
|
199
|
+
node,
|
|
200
|
+
messageId: 'preferFind',
|
|
201
|
+
suggest: [
|
|
202
|
+
{
|
|
203
|
+
messageId: 'preferFindSuggestion',
|
|
204
|
+
fix: (fixer) => {
|
|
205
|
+
const sourceCode = context.sourceCode;
|
|
206
|
+
return [
|
|
207
|
+
generateFixToReplaceFilterWithFind(fixer, filterExpression),
|
|
208
|
+
// Get rid of the [0].
|
|
209
|
+
generateFixToRemoveArrayElementAccess(fixer, object, node, sourceCode),
|
|
210
|
+
];
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
/**
|
|
222
|
+
* Answers whether the member expression looks like
|
|
223
|
+
* `x.memberName`, `x['memberName']`,
|
|
224
|
+
* or even `const mn = 'memberName'; x[mn]` (or optional variants thereof).
|
|
225
|
+
*/
|
|
226
|
+
function isStaticMemberAccessOfValue(memberExpression, value, scope) {
|
|
227
|
+
if (!memberExpression.computed) {
|
|
228
|
+
// x.memberName case.
|
|
229
|
+
return memberExpression.property.name === value;
|
|
230
|
+
}
|
|
231
|
+
// x['memberName'] cases.
|
|
232
|
+
const staticValueResult = (0, util_1.getStaticValue)(memberExpression.property, scope);
|
|
233
|
+
return staticValueResult != null && value === staticValueResult.value;
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=prefer-find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-find.js","sourceRoot":"","sources":["../../src/rules/prefer-find.ts"],"names":[],"mappings":"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"}
|
package/docs/rules/ban-types.md
CHANGED
|
@@ -114,15 +114,15 @@ Example configuration:
|
|
|
114
114
|
// add a custom message, AND tell the plugin how to fix it
|
|
115
115
|
"OldAPI": {
|
|
116
116
|
"message": "Use NewAPI instead",
|
|
117
|
-
"fixWith": "NewAPI"
|
|
117
|
+
"fixWith": "NewAPI",
|
|
118
118
|
},
|
|
119
119
|
|
|
120
120
|
// un-ban a type that's banned by default
|
|
121
|
-
"{}": false
|
|
121
|
+
"{}": false,
|
|
122
122
|
},
|
|
123
|
-
"extendDefaults": true
|
|
124
|
-
}
|
|
125
|
-
]
|
|
123
|
+
"extendDefaults": true,
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
126
|
}
|
|
127
127
|
```
|
|
128
128
|
|
|
@@ -76,17 +76,17 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e.
|
|
|
76
76
|
{
|
|
77
77
|
"rules": {
|
|
78
78
|
// disable the rule for all files
|
|
79
|
-
"@typescript-eslint/explicit-function-return-type": "off"
|
|
79
|
+
"@typescript-eslint/explicit-function-return-type": "off",
|
|
80
80
|
},
|
|
81
81
|
"overrides": [
|
|
82
82
|
{
|
|
83
83
|
// enable the rule specifically for TypeScript files
|
|
84
84
|
"files": ["*.ts", "*.mts", "*.cts", "*.tsx"],
|
|
85
85
|
"rules": {
|
|
86
|
-
"@typescript-eslint/explicit-function-return-type": "error"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
]
|
|
86
|
+
"@typescript-eslint/explicit-function-return-type": "error",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
90
|
}
|
|
91
91
|
```
|
|
92
92
|
|
|
@@ -30,17 +30,17 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e.
|
|
|
30
30
|
{
|
|
31
31
|
"rules": {
|
|
32
32
|
// disable the rule for all files
|
|
33
|
-
"@typescript-eslint/explicit-member-accessibility": "off"
|
|
33
|
+
"@typescript-eslint/explicit-member-accessibility": "off",
|
|
34
34
|
},
|
|
35
35
|
"overrides": [
|
|
36
36
|
{
|
|
37
37
|
// enable the rule specifically for TypeScript files
|
|
38
38
|
"files": ["*.ts", "*.mts", "*.cts", "*.tsx"],
|
|
39
39
|
"rules": {
|
|
40
|
-
"@typescript-eslint/explicit-member-accessibility": "error"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
]
|
|
40
|
+
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
44
|
}
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -75,17 +75,17 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e.
|
|
|
75
75
|
{
|
|
76
76
|
"rules": {
|
|
77
77
|
// disable the rule for all files
|
|
78
|
-
"@typescript-eslint/explicit-module-boundary-types": "off"
|
|
78
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
79
79
|
},
|
|
80
80
|
"overrides": [
|
|
81
81
|
{
|
|
82
82
|
// enable the rule specifically for TypeScript files
|
|
83
83
|
"files": ["*.ts", "*.mts", "*.cts", "*.tsx"],
|
|
84
84
|
"rules": {
|
|
85
|
-
"@typescript-eslint/explicit-module-boundary-types": "error"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
]
|
|
85
|
+
"@typescript-eslint/explicit-module-boundary-types": "error",
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
89
|
}
|
|
90
90
|
```
|
|
91
91
|
|
|
@@ -249,9 +249,9 @@ The default configuration looks as follows:
|
|
|
249
249
|
|
|
250
250
|
"decorated-method",
|
|
251
251
|
|
|
252
|
-
"method"
|
|
253
|
-
]
|
|
254
|
-
}
|
|
252
|
+
"method",
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
255
|
}
|
|
256
256
|
```
|
|
257
257
|
|
|
@@ -279,9 +279,9 @@ It also ignores accessibility and scope.
|
|
|
279
279
|
"rules": {
|
|
280
280
|
"@typescript-eslint/member-ordering": [
|
|
281
281
|
"error",
|
|
282
|
-
{ "default": ["signature", "method", "constructor", "field"] }
|
|
283
|
-
]
|
|
284
|
-
}
|
|
282
|
+
{ "default": ["signature", "method", "constructor", "field"] },
|
|
283
|
+
],
|
|
284
|
+
},
|
|
285
285
|
}
|
|
286
286
|
```
|
|
287
287
|
|
|
@@ -414,9 +414,9 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
414
414
|
"rules": {
|
|
415
415
|
"@typescript-eslint/member-ordering": [
|
|
416
416
|
"error",
|
|
417
|
-
{ "default": ["public-instance-method", "public-static-field"] }
|
|
418
|
-
]
|
|
419
|
-
}
|
|
417
|
+
{ "default": ["public-instance-method", "public-static-field"] },
|
|
418
|
+
],
|
|
419
|
+
},
|
|
420
420
|
}
|
|
421
421
|
```
|
|
422
422
|
|
|
@@ -508,9 +508,9 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
508
508
|
"rules": {
|
|
509
509
|
"@typescript-eslint/member-ordering": [
|
|
510
510
|
"error",
|
|
511
|
-
{ "default": ["public-static-field", "static-field", "instance-field"] }
|
|
512
|
-
]
|
|
513
|
-
}
|
|
511
|
+
{ "default": ["public-static-field", "static-field", "instance-field"] },
|
|
512
|
+
],
|
|
513
|
+
},
|
|
514
514
|
}
|
|
515
515
|
```
|
|
516
516
|
|
|
@@ -597,9 +597,9 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
597
597
|
"rules": {
|
|
598
598
|
"@typescript-eslint/member-ordering": [
|
|
599
599
|
"error",
|
|
600
|
-
{ "classes": ["method", "constructor", "field"] }
|
|
601
|
-
]
|
|
602
|
-
}
|
|
600
|
+
{ "classes": ["method", "constructor", "field"] },
|
|
601
|
+
],
|
|
602
|
+
},
|
|
603
603
|
}
|
|
604
604
|
```
|
|
605
605
|
|
|
@@ -647,9 +647,9 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
647
647
|
"rules": {
|
|
648
648
|
"@typescript-eslint/member-ordering": [
|
|
649
649
|
"error",
|
|
650
|
-
{ "classExpressions": ["method", "constructor", "field"] }
|
|
651
|
-
]
|
|
652
|
-
}
|
|
650
|
+
{ "classExpressions": ["method", "constructor", "field"] },
|
|
651
|
+
],
|
|
652
|
+
},
|
|
653
653
|
}
|
|
654
654
|
```
|
|
655
655
|
|
|
@@ -701,9 +701,9 @@ These member types are the only ones allowed for `interfaces`.
|
|
|
701
701
|
"rules": {
|
|
702
702
|
"@typescript-eslint/member-ordering": [
|
|
703
703
|
"error",
|
|
704
|
-
{ "interfaces": ["signature", "method", "constructor", "field"] }
|
|
705
|
-
]
|
|
706
|
-
}
|
|
704
|
+
{ "interfaces": ["signature", "method", "constructor", "field"] },
|
|
705
|
+
],
|
|
706
|
+
},
|
|
707
707
|
}
|
|
708
708
|
```
|
|
709
709
|
|
|
@@ -753,9 +753,9 @@ These member types are the only ones allowed for `typeLiterals`.
|
|
|
753
753
|
"rules": {
|
|
754
754
|
"@typescript-eslint/member-ordering": [
|
|
755
755
|
"error",
|
|
756
|
-
{ "typeLiterals": ["signature", "method", "constructor", "field"] }
|
|
757
|
-
]
|
|
758
|
-
}
|
|
756
|
+
{ "typeLiterals": ["signature", "method", "constructor", "field"] },
|
|
757
|
+
],
|
|
758
|
+
},
|
|
759
759
|
}
|
|
760
760
|
```
|
|
761
761
|
|
|
@@ -805,11 +805,11 @@ You can see the default order in [Default Configuration](#default-configuration)
|
|
|
805
805
|
"error",
|
|
806
806
|
{
|
|
807
807
|
"default": {
|
|
808
|
-
"order": "alphabetically"
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
]
|
|
812
|
-
}
|
|
808
|
+
"order": "alphabetically",
|
|
809
|
+
},
|
|
810
|
+
},
|
|
811
|
+
],
|
|
812
|
+
},
|
|
813
813
|
}
|
|
814
814
|
```
|
|
815
815
|
|
|
@@ -856,11 +856,11 @@ This config specifies that within each custom `memberTypes` group, members are i
|
|
|
856
856
|
{
|
|
857
857
|
"default": {
|
|
858
858
|
"memberTypes": ["method", "field"],
|
|
859
|
-
"order": "alphabetically"
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
]
|
|
863
|
-
}
|
|
859
|
+
"order": "alphabetically",
|
|
860
|
+
},
|
|
861
|
+
},
|
|
862
|
+
],
|
|
863
|
+
},
|
|
864
864
|
}
|
|
865
865
|
```
|
|
866
866
|
|
|
@@ -908,11 +908,11 @@ You can see the default order in [Default Configuration](#default-configuration)
|
|
|
908
908
|
"error",
|
|
909
909
|
{
|
|
910
910
|
"default": {
|
|
911
|
-
"order": "alphabetically-case-insensitive"
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
]
|
|
915
|
-
}
|
|
911
|
+
"order": "alphabetically-case-insensitive",
|
|
912
|
+
},
|
|
913
|
+
},
|
|
914
|
+
],
|
|
915
|
+
},
|
|
916
916
|
}
|
|
917
917
|
```
|
|
918
918
|
|
|
@@ -957,9 +957,9 @@ It ignores any member group types completely by specifying `"never"` for `member
|
|
|
957
957
|
"rules": {
|
|
958
958
|
"@typescript-eslint/member-ordering": [
|
|
959
959
|
"error",
|
|
960
|
-
{ "default": { "memberTypes": "never", "order": "alphabetically" } }
|
|
961
|
-
]
|
|
962
|
-
}
|
|
960
|
+
{ "default": { "memberTypes": "never", "order": "alphabetically" } },
|
|
961
|
+
],
|
|
962
|
+
},
|
|
963
963
|
}
|
|
964
964
|
```
|
|
965
965
|
|
|
@@ -1006,11 +1006,11 @@ This config places all optional members before all required members:
|
|
|
1006
1006
|
{
|
|
1007
1007
|
"default": {
|
|
1008
1008
|
"optionalityOrder": "optional-first",
|
|
1009
|
-
"order": "alphabetically"
|
|
1010
|
-
}
|
|
1011
|
-
}
|
|
1012
|
-
]
|
|
1013
|
-
}
|
|
1009
|
+
"order": "alphabetically",
|
|
1010
|
+
},
|
|
1011
|
+
},
|
|
1012
|
+
],
|
|
1013
|
+
},
|
|
1014
1014
|
}
|
|
1015
1015
|
```
|
|
1016
1016
|
|
|
@@ -1049,11 +1049,11 @@ This config places all required members before all optional members:
|
|
|
1049
1049
|
{
|
|
1050
1050
|
"default": {
|
|
1051
1051
|
"optionalityOrder": "required-first",
|
|
1052
|
-
"order": "alphabetically"
|
|
1053
|
-
}
|
|
1054
|
-
}
|
|
1055
|
-
]
|
|
1056
|
-
}
|
|
1052
|
+
"order": "alphabetically",
|
|
1053
|
+
},
|
|
1054
|
+
},
|
|
1055
|
+
],
|
|
1056
|
+
},
|
|
1057
1057
|
}
|
|
1058
1058
|
```
|
|
1059
1059
|
|
|
@@ -1271,7 +1271,7 @@ It is also possible to group member types by their accessibility (`static`, `ins
|
|
|
1271
1271
|
// Methods
|
|
1272
1272
|
"public-method", // = ["public-static-method", "public-instance-method"]
|
|
1273
1273
|
"protected-method", // = ["protected-static-method", "protected-instance-method"]
|
|
1274
|
-
"private-method" // = ["private-static-method", "private-instance-method"]
|
|
1274
|
+
"private-method", // = ["private-static-method", "private-instance-method"]
|
|
1275
1275
|
]
|
|
1276
1276
|
```
|
|
1277
1277
|
|
|
@@ -1317,7 +1317,7 @@ their accessibility.
|
|
|
1317
1317
|
"protected-decorated-method",
|
|
1318
1318
|
"private-decorated-method",
|
|
1319
1319
|
|
|
1320
|
-
"decorated-method" // = ["public-decorated-method", "protected-decorated-method", "private-decorated-method"]
|
|
1320
|
+
"decorated-method", // = ["public-decorated-method", "protected-decorated-method", "private-decorated-method"]
|
|
1321
1321
|
]
|
|
1322
1322
|
```
|
|
1323
1323
|
|
|
@@ -1354,7 +1354,7 @@ Another option is to group the member types by their scope (`public`, `protected
|
|
|
1354
1354
|
// Methods
|
|
1355
1355
|
"static-method", // = ["public-static-method", "protected-static-method", "private-static-method"]
|
|
1356
1356
|
"instance-method", // = ["public-instance-method", "protected-instance-method", "private-instance-method"]
|
|
1357
|
-
"abstract-method" // = ["public-abstract-method", "protected-abstract-method"]
|
|
1357
|
+
"abstract-method", // = ["public-abstract-method", "protected-abstract-method"]
|
|
1358
1358
|
]
|
|
1359
1359
|
```
|
|
1360
1360
|
|
|
@@ -1386,7 +1386,7 @@ The third grouping option is to ignore both scope and accessibility.
|
|
|
1386
1386
|
// "public-abstract-set", "protected-abstract-set"]
|
|
1387
1387
|
|
|
1388
1388
|
// Methods
|
|
1389
|
-
"method" // = ["public-static-method", "protected-static-method", "private-static-method", "public-instance-method", "protected-instance-method", "private-instance-method",
|
|
1389
|
+
"method", // = ["public-static-method", "protected-static-method", "private-static-method", "public-instance-method", "protected-instance-method", "private-instance-method",
|
|
1390
1390
|
// "public-abstract-method", "protected-abstract-method"]
|
|
1391
1391
|
]
|
|
1392
1392
|
```
|
|
@@ -1403,7 +1403,7 @@ It is possible to group fields by their `readonly` modifiers.
|
|
|
1403
1403
|
|
|
1404
1404
|
// Fields
|
|
1405
1405
|
"readonly-field", // = ["public-static-readonly-field", "protected-static-readonly-field", "private-static-readonly-field", "public-instance-readonly-field", "protected-instance-readonly-field", "private-instance-readonly-field", "public-abstract-readonly-field", "protected-abstract-readonly-field"]
|
|
1406
|
-
"field" // = ["public-static-field", "protected-static-field", "private-static-field", "public-instance-field", "protected-instance-field", "private-instance-field", "public-abstract-field", "protected-abstract-field"]
|
|
1406
|
+
"field", // = ["public-static-field", "protected-static-field", "private-static-field", "public-instance-field", "protected-instance-field", "private-instance-field", "public-abstract-field", "protected-abstract-field"]
|
|
1407
1407
|
]
|
|
1408
1408
|
```
|
|
1409
1409
|
|
|
@@ -1429,7 +1429,7 @@ It is also possible to group different member types at the same rank.
|
|
|
1429
1429
|
["get", "set"],
|
|
1430
1430
|
|
|
1431
1431
|
// Methods
|
|
1432
|
-
"method"
|
|
1432
|
+
"method",
|
|
1433
1433
|
]
|
|
1434
1434
|
```
|
|
1435
1435
|
|
|
@@ -602,12 +602,12 @@ If you simply want to allow all property names that require quotes, you can use
|
|
|
602
602
|
"objectLiteralMethod",
|
|
603
603
|
"typeMethod",
|
|
604
604
|
"accessor",
|
|
605
|
-
"enumMember"
|
|
605
|
+
"enumMember",
|
|
606
606
|
],
|
|
607
607
|
"format": null,
|
|
608
|
-
"modifiers": ["requiresQuotes"]
|
|
609
|
-
}
|
|
610
|
-
]
|
|
608
|
+
"modifiers": ["requiresQuotes"],
|
|
609
|
+
},
|
|
610
|
+
],
|
|
611
611
|
}
|
|
612
612
|
```
|
|
613
613
|
|
|
@@ -623,10 +623,10 @@ If you have a small and known list of exceptions, you can use the `filter` optio
|
|
|
623
623
|
"filter": {
|
|
624
624
|
// you can expand this regex to add more allowed names
|
|
625
625
|
"regex": "^(Property-Name-One|Property-Name-Two)$",
|
|
626
|
-
"match": false
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
]
|
|
626
|
+
"match": false,
|
|
627
|
+
},
|
|
628
|
+
},
|
|
629
|
+
],
|
|
630
630
|
}
|
|
631
631
|
```
|
|
632
632
|
|
|
@@ -642,10 +642,10 @@ You can use the `filter` option to ignore names with specific characters:
|
|
|
642
642
|
"filter": {
|
|
643
643
|
// you can expand this regex as you find more cases that require quoting that you want to allow
|
|
644
644
|
"regex": "[- ]",
|
|
645
|
-
"match": false
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
]
|
|
645
|
+
"match": false,
|
|
646
|
+
},
|
|
647
|
+
},
|
|
648
|
+
],
|
|
649
649
|
}
|
|
650
650
|
```
|
|
651
651
|
|
|
@@ -666,9 +666,9 @@ You can use the `destructured` modifier to match these names, and explicitly set
|
|
|
666
666
|
{
|
|
667
667
|
"selector": "variable",
|
|
668
668
|
"modifiers": ["destructured"],
|
|
669
|
-
"format": null
|
|
670
|
-
}
|
|
671
|
-
]
|
|
669
|
+
"format": null,
|
|
670
|
+
},
|
|
671
|
+
],
|
|
672
672
|
}
|
|
673
673
|
```
|
|
674
674
|
|
|
@@ -10,6 +10,11 @@ The `any` type in TypeScript is a dangerous "escape hatch" from the type system.
|
|
|
10
10
|
Using `any` disables many type checking rules and is generally best used only as a last resort or when prototyping code.
|
|
11
11
|
This rule reports on explicit uses of the `any` keyword as a type annotation.
|
|
12
12
|
|
|
13
|
+
Preferable alternatives to `any` include:
|
|
14
|
+
|
|
15
|
+
- If the type is known, describing it in an `interface` or `type`
|
|
16
|
+
- If the type is not known, using the safer `unknown` type
|
|
17
|
+
|
|
13
18
|
> TypeScript's `--noImplicitAny` compiler option prevents an implied `any`, but doesn't prevent `any` from being explicitly used the way this rule does.
|
|
14
19
|
|
|
15
20
|
## Examples
|
|
@@ -28,17 +28,17 @@ You can specify this option for a specific path or pattern as follows:
|
|
|
28
28
|
{
|
|
29
29
|
"name": "import-foo",
|
|
30
30
|
"message": "Please use import-bar instead.",
|
|
31
|
-
"allowTypeImports": true
|
|
31
|
+
"allowTypeImports": true,
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"name": "import-baz",
|
|
35
35
|
"message": "Please use import-quux instead.",
|
|
36
|
-
"allowTypeImports": true
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
36
|
+
"allowTypeImports": true,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
42
|
}
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result.'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
6
|
+
>
|
|
7
|
+
> See **https://typescript-eslint.io/rules/prefer-find** for documentation.
|
|
8
|
+
|
|
9
|
+
When searching for the first item in an array matching a condition, it may be tempting to use code like `arr.filter(x => x > 0)[0]`.
|
|
10
|
+
However, it is simpler to use [Array.prototype.find()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) instead, `arr.find(x => x > 0)`, which also returns the first entry matching a condition.
|
|
11
|
+
Because the `.find()` only needs to execute the callback until it finds a match, it's also more efficient.
|
|
12
|
+
|
|
13
|
+
:::info
|
|
14
|
+
|
|
15
|
+
Beware the difference in short-circuiting behavior between the approaches.
|
|
16
|
+
`.find()` will only execute the callback on array elements until it finds a match, whereas `.filter()` executes the callback for all array elements.
|
|
17
|
+
Therefore, when fixing errors from this rule, be sure that your `.filter()` callbacks do not have side effects.
|
|
18
|
+
|
|
19
|
+
:::
|
|
20
|
+
|
|
21
|
+
<!--tabs-->
|
|
22
|
+
|
|
23
|
+
### ❌ Incorrect
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
[1, 2, 3].filter(x => x > 1)[0];
|
|
27
|
+
|
|
28
|
+
[1, 2, 3].filter(x => x > 1).at(0);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
[1, 2, 3].find(x => x > 1);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## When Not To Use It
|
|
38
|
+
|
|
39
|
+
If you intentionally use patterns like `.filter(callback)[0]` to execute side effects in `callback` on all array elements, you will want to avoid this rule.
|
|
@@ -68,7 +68,10 @@ You may pass `"onlyInlineLambdas": true` as a rule option within an object to re
|
|
|
68
68
|
|
|
69
69
|
```jsonc
|
|
70
70
|
{
|
|
71
|
-
"@typescript-eslint/prefer-readonly": [
|
|
71
|
+
"@typescript-eslint/prefer-readonly": [
|
|
72
|
+
"error",
|
|
73
|
+
{ "onlyInlineLambdas": true },
|
|
74
|
+
],
|
|
72
75
|
}
|
|
73
76
|
```
|
|
74
77
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.21.0",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@eslint-community/regexpp": "^4.5.1",
|
|
60
|
-
"@typescript-eslint/scope-manager": "6.
|
|
61
|
-
"@typescript-eslint/type-utils": "6.
|
|
62
|
-
"@typescript-eslint/utils": "6.
|
|
63
|
-
"@typescript-eslint/visitor-keys": "6.
|
|
60
|
+
"@typescript-eslint/scope-manager": "6.21.0",
|
|
61
|
+
"@typescript-eslint/type-utils": "6.21.0",
|
|
62
|
+
"@typescript-eslint/utils": "6.21.0",
|
|
63
|
+
"@typescript-eslint/visitor-keys": "6.21.0",
|
|
64
64
|
"debug": "^4.3.4",
|
|
65
65
|
"graphemer": "^1.4.0",
|
|
66
66
|
"ignore": "^5.2.4",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"@types/debug": "*",
|
|
74
74
|
"@types/marked": "*",
|
|
75
75
|
"@types/natural-compare": "*",
|
|
76
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "6.
|
|
77
|
-
"@typescript-eslint/rule-tester": "6.
|
|
76
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "6.21.0",
|
|
77
|
+
"@typescript-eslint/rule-tester": "6.21.0",
|
|
78
78
|
"ajv": "^6.12.6",
|
|
79
79
|
"chalk": "^5.3.0",
|
|
80
80
|
"cross-fetch": "*",
|