eslint-config-typed 1.0.2 → 1.1.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/README.md +4 -2
- package/dist/configs/plugins.d.mts.map +1 -1
- package/dist/configs/plugins.mjs +2 -3
- package/dist/configs/plugins.mjs.map +1 -1
- package/dist/custom-rules/no-restricted-syntax2.mjs +2 -2
- package/dist/globals.d.mts +0 -2
- package/dist/plugins/total-functions/rules/no-hidden-type-assertions.mjs +1 -1
- package/dist/rules/eslint-import-rules.d.mts.map +1 -1
- package/dist/rules/eslint-import-rules.mjs +6 -2
- package/dist/rules/eslint-import-rules.mjs.map +1 -1
- package/dist/rules/eslint-jest-rules.mjs +3 -3
- package/dist/rules/eslint-playwright-rules.mjs +2 -2
- package/dist/rules/eslint-promise-rules.mjs +3 -3
- package/dist/rules/eslint-react-rules.d.mts.map +1 -1
- package/dist/rules/eslint-react-rules.mjs +14 -9
- package/dist/rules/eslint-react-rules.mjs.map +1 -1
- package/dist/rules/eslint-rules.d.mts.map +1 -1
- package/dist/rules/eslint-rules.mjs +15 -10
- package/dist/rules/eslint-rules.mjs.map +1 -1
- package/dist/rules/eslint-total-functions-rules.mjs +2 -2
- package/dist/rules/eslint-unicorn-rules.mjs +2 -2
- package/dist/rules/eslint-vitest-rules.mjs +5 -5
- package/dist/rules/typescript-eslint-rules.d.mts.map +1 -1
- package/dist/rules/typescript-eslint-rules.mjs +23 -19
- package/dist/rules/typescript-eslint-rules.mjs.map +1 -1
- package/dist/types/flat-config.d.mts.map +1 -1
- package/dist/types/rules/eslint-import-rules.d.mts +318 -46
- package/dist/types/rules/eslint-import-rules.d.mts.map +1 -1
- package/package.json +3 -3
- package/src/configs/plugins.mts +2 -4
- package/src/custom-rules/no-restricted-syntax2.mts +2 -2
- package/src/globals.d.mts +0 -2
- package/src/plugins/total-functions/rules/no-hidden-type-assertions.mts +1 -1
- package/src/plugins/total-functions/rules/no-partial-url-constructor.test.mts +1 -1
- package/src/rules/eslint-import-rules.mts +6 -2
- package/src/rules/eslint-jest-rules.mts +3 -3
- package/src/rules/eslint-playwright-rules.mts +2 -2
- package/src/rules/eslint-promise-rules.mts +3 -3
- package/src/rules/eslint-react-rules.mts +15 -9
- package/src/rules/eslint-rules.mts +15 -10
- package/src/rules/eslint-total-functions-rules.mts +2 -2
- package/src/rules/eslint-unicorn-rules.mts +2 -2
- package/src/rules/eslint-vitest-rules.mts +5 -5
- package/src/rules/typescript-eslint-rules.mts +23 -19
- package/src/types/flat-config.mts +2 -0
- package/src/types/rules/eslint-import-rules.mts +347 -46
package/README.md
CHANGED
|
@@ -84,9 +84,11 @@ const defineConfig = () => [
|
|
|
84
84
|
...eslintFlatConfigForTypeScript({
|
|
85
85
|
tsconfigRootDir: thisDir,
|
|
86
86
|
tsconfigFileName: './tsconfig.json',
|
|
87
|
-
packageDirs: [
|
|
87
|
+
packageDirs: [thisDir],
|
|
88
|
+
|
|
89
|
+
// If you are using mono repo and the root package.json is in ../../../ :
|
|
90
|
+
// packageDirs: [path.resolve(thisDir, '../../..'), thisDir],
|
|
88
91
|
}),
|
|
89
|
-
...eslintFlatConfigForReact(),
|
|
90
92
|
eslintFlatConfigForVitest(),
|
|
91
93
|
|
|
92
94
|
// You can override per-rule settings if necessary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.mts","sourceRoot":"","sources":["../../src/configs/plugins.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.d.mts","sourceRoot":"","sources":["../../src/configs/plugins.mts"],"names":[],"mappings":"AA0DA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAExE,eAAO,MAAM,OAAO,EAAE,MAAM,CACxB,oBAAoB,GACpB,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,wBAAwB,GACxB,SAAS,GACT,OAAO,GACP,aAAa,GACb,eAAe,GACf,YAAY,GACZ,UAAU,GACV,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,GACT,eAAe,GACf,eAAe,GACf,QAAQ,EACV,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAoCW,CAAC"}
|
package/dist/configs/plugins.mjs
CHANGED
|
@@ -47,7 +47,6 @@ const plugins = {
|
|
|
47
47
|
cypress: eslintPluginCypress,
|
|
48
48
|
playwright: eslintPluginPlaywright,
|
|
49
49
|
functional: eslintPluginFunctional,
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
51
50
|
import: eslintPluginImport,
|
|
52
51
|
jest: eslintPluginJest,
|
|
53
52
|
vitest: eslintPluginVitest,
|
|
@@ -56,11 +55,11 @@ const plugins = {
|
|
|
56
55
|
'prefer-arrow-functions': eslintPluginPreferArrowFunctions,
|
|
57
56
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
58
57
|
promise: eslintPluginPromise,
|
|
59
|
-
// eslint-disable-next-line
|
|
58
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
60
59
|
react: eslintPluginReact,
|
|
61
60
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
62
61
|
'react-hooks': eslintPluginReactHooks,
|
|
63
|
-
// eslint-disable-next-line
|
|
62
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
64
63
|
'react-refresh': eslintPluginReactRefresh,
|
|
65
64
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
66
65
|
'react-perf': eslintPluginReactPerf,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.mjs","sources":["../../src/configs/plugins.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plugins.mjs","sources":["../../src/configs/plugins.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DO,MAAM,OAAO,GAyBhB;AACF,IAAA,oBAAoB,EAAE,gBAAgB;;AAEtC,IAAA,YAAY,EAAE,qBAAqB;;AAEnC,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,MAAM,EAAE,kBAAkB;AAC1B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,kBAAkB;;AAE1B,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,wBAAwB,EAAE,gCAAgC;;AAE1D,IAAA,OAAO,EAAE,mBAAmB;;AAE5B,IAAA,KAAK,EAAE,iBAA4C;;AAEnD,IAAA,aAAa,EAAE,sBAAsB;;AAErC,IAAA,eAAe,EAAE,wBAAmD;;AAEpE,IAAA,YAAY,EAAE,qBAAqB;;AAEnC,IAAA,QAAQ,EAAE,oBAAoB;;AAE9B,IAAA,qBAAqB,EAAE,8BAA8B;AACrD,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,eAAe,EAAE,wBAAwB;;AAEzC,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,MAAM,EAAE,kBAAkB;;;;;"}
|
|
@@ -32,7 +32,7 @@ const noRestrictedSyntax = {
|
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
create: (context) => context.options.reduce((result, selectorOrObject) => {
|
|
35
|
-
// eslint-disable-next-line
|
|
35
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
36
36
|
const selectorOrObjectCasted = selectorOrObject;
|
|
37
37
|
const isStringFormat = typeof selectorOrObjectCasted === 'string';
|
|
38
38
|
const hasCustomMessage = !isStringFormat && isNonEmptyString(selectorOrObjectCasted.message);
|
|
@@ -44,7 +44,7 @@ const noRestrictedSyntax = {
|
|
|
44
44
|
: `Using '${selector}' is not allowed.`;
|
|
45
45
|
// eslint-disable-next-line functional/immutable-data
|
|
46
46
|
return Object.assign(result, {
|
|
47
|
-
// eslint-disable-next-line
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
48
48
|
[selector](node) {
|
|
49
49
|
context.report({
|
|
50
50
|
node,
|
package/dist/globals.d.mts
CHANGED
|
@@ -119,7 +119,7 @@ const noHiddenTypeAssertions = createRule({
|
|
|
119
119
|
});
|
|
120
120
|
const hasTypeNode = (typeElement) => {
|
|
121
121
|
try {
|
|
122
|
-
// eslint-disable-next-line
|
|
122
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
123
123
|
const typeAttr = typeElement
|
|
124
124
|
.type;
|
|
125
125
|
return typeAttr !== undefined && isTypeNode(typeAttr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-import-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-import-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"eslint-import-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-import-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,EAAE,kBA6HvB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const eslintImportsRules = {
|
|
2
|
-
// TypeScript
|
|
2
|
+
// Not needed when using TypeScript.
|
|
3
3
|
'import/no-unresolved': 'off',
|
|
4
4
|
'import/named': 'off',
|
|
5
5
|
'import/default': 'error',
|
|
@@ -97,13 +97,17 @@ const eslintImportsRules = {
|
|
|
97
97
|
},
|
|
98
98
|
],
|
|
99
99
|
'import/no-named-default': 'off',
|
|
100
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Prohibit default exports as renaming on the definition side is not
|
|
102
|
+
* reflected on the import side
|
|
103
|
+
*/
|
|
101
104
|
'import/no-default-export': 'error',
|
|
102
105
|
'import/no-named-export': 'off',
|
|
103
106
|
'import/no-anonymous-default-export': 'error',
|
|
104
107
|
'import/group-exports': 'off',
|
|
105
108
|
'import/dynamic-import-chunkname': 'error',
|
|
106
109
|
'import/no-empty-named-blocks': 'error',
|
|
110
|
+
'import/enforce-node-protocol-usage': ['error', 'always'],
|
|
107
111
|
// deprecated rules
|
|
108
112
|
'import/imports-first': 0,
|
|
109
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-import-rules.mjs","sources":["../../src/rules/eslint-import-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,kBAAkB,GAAuB;;AAEpD,IAAA,sBAAsB,EAAE,KAAK;AAE7B,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,kBAAkB,EAAE,OAAO;IAC3B,4BAA4B,EAAE,KAAK;AACnC,IAAA,yBAAyB,EAAE,OAAO;AAClC,IAAA,2BAA2B,EAAE,OAAO;AACpC,IAAA,4BAA4B,EAAE;QAC5B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,gBAAgB;gBAChB,cAAc;gBACd,8BAA8B;gBAC9B,kBAAkB;gBAClB,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,uBAAuB;gBACvB,gBAAgB;gBAChB,iBAAiB;gBACjB,kBAAkB;gBAClB,gBAAgB;gBAChB,yCAAyC;gBACzC,eAAe;gBACf,aAAa;gBACb,YAAY;gBACZ,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,mCAAmC,EAAE,KAAK;;AAG1C,IAAA,wCAAwC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AAEpE,IAAA,6BAA6B,EAAE,OAAO;;AAGtC,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,4BAA4B,EAAE,OAAO;AACrC,IAAA,mCAAmC,EAAE,OAAO;;;AAI5C,IAAA,sBAAsB,EAAE,KAAK;AAE7B,IAAA,mCAAmC,EAAE,KAAK;AAC1C,IAAA,2BAA2B,EAAE,OAAO;;AAEpC,IAAA,0BAA0B,EAAE,KAAK;;AAGjC,IAAA,oBAAoB,EAAE,OAAO;AAC7B,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,iCAAiC,EAAE,KAAK;;AAGxC,IAAA,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAC3C,IAAA,qBAAqB,EAAE,KAAK;AAC5B,IAAA,sBAAsB,EAAE,OAAO;AAC/B,IAAA,qBAAqB,EAAE,KAAK;AAC5B,IAAA,mBAAmB,EAAE;QACnB,OAAO;QACP,OAAO;AACP,QAAA;YACE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC3C,SAAA;AACF,KAAA;AAED,IAAA,cAAc,EAAE,KAAK;;;;;;;;AASrB,IAAA,6BAA6B,EAAE;QAC7B,OAAO;AACP,QAAA;AACE,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;AACF,KAAA;AACD,IAAA,8BAA8B,EAAE,KAAK;AACrC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,6BAA6B,EAAE;QAC7B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,UAAU;gBACV,8BAA8B;gBAC9B,UAAU;gBACV,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,yBAAyB,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"eslint-import-rules.mjs","sources":["../../src/rules/eslint-import-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,kBAAkB,GAAuB;;AAEpD,IAAA,sBAAsB,EAAE,KAAK;AAE7B,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,kBAAkB,EAAE,OAAO;IAC3B,4BAA4B,EAAE,KAAK;AACnC,IAAA,yBAAyB,EAAE,OAAO;AAClC,IAAA,2BAA2B,EAAE,OAAO;AACpC,IAAA,4BAA4B,EAAE;QAC5B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,gBAAgB;gBAChB,cAAc;gBACd,8BAA8B;gBAC9B,kBAAkB;gBAClB,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,uBAAuB;gBACvB,gBAAgB;gBAChB,iBAAiB;gBACjB,kBAAkB;gBAClB,gBAAgB;gBAChB,yCAAyC;gBACzC,eAAe;gBACf,aAAa;gBACb,YAAY;gBACZ,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,mCAAmC,EAAE,KAAK;;AAG1C,IAAA,wCAAwC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AAEpE,IAAA,6BAA6B,EAAE,OAAO;;AAGtC,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,4BAA4B,EAAE,OAAO;AACrC,IAAA,mCAAmC,EAAE,OAAO;;;AAI5C,IAAA,sBAAsB,EAAE,KAAK;AAE7B,IAAA,mCAAmC,EAAE,KAAK;AAC1C,IAAA,2BAA2B,EAAE,OAAO;;AAEpC,IAAA,0BAA0B,EAAE,KAAK;;AAGjC,IAAA,oBAAoB,EAAE,OAAO;AAC7B,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,iCAAiC,EAAE,KAAK;;AAGxC,IAAA,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAC3C,IAAA,qBAAqB,EAAE,KAAK;AAC5B,IAAA,sBAAsB,EAAE,OAAO;AAC/B,IAAA,qBAAqB,EAAE,KAAK;AAC5B,IAAA,mBAAmB,EAAE;QACnB,OAAO;QACP,OAAO;AACP,QAAA;YACE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC3C,SAAA;AACF,KAAA;AAED,IAAA,cAAc,EAAE,KAAK;;;;;;;;AASrB,IAAA,6BAA6B,EAAE;QAC7B,OAAO;AACP,QAAA;AACE,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;AACF,KAAA;AACD,IAAA,8BAA8B,EAAE,KAAK;AACrC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,6BAA6B,EAAE;QAC7B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,UAAU;gBACV,8BAA8B;gBAC9B,UAAU;gBACV,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,yBAAyB,EAAE,KAAK;AAEhC;;;AAGG;AACH,IAAA,0BAA0B,EAAE,OAAO;AAEnC,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,oCAAoC,EAAE,OAAO;AAC7C,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,8BAA8B,EAAE,OAAO;AACvC,IAAA,oCAAoC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAGzD,IAAA,sBAAsB,EAAE,CAAC;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const eslintJestRules = {
|
|
2
|
-
/* vitest
|
|
2
|
+
/* Rules common with vitest and playwright (keep settings aligned) */
|
|
3
3
|
'jest/expect-expect': 'error',
|
|
4
4
|
'jest/max-expects': 'off',
|
|
5
5
|
'jest/max-nested-describe': 'error',
|
|
@@ -30,7 +30,7 @@ const eslintJestRules = {
|
|
|
30
30
|
'jest/valid-describe-callback': 'error',
|
|
31
31
|
'jest/valid-expect': 'error',
|
|
32
32
|
'jest/valid-title': 'off',
|
|
33
|
-
/* vitest
|
|
33
|
+
/* Rules common with vitest (keep settings aligned) */
|
|
34
34
|
'jest/consistent-test-it': ['error', { fn: 'test' }],
|
|
35
35
|
'jest/no-alias-methods': 'error',
|
|
36
36
|
'jest/no-disabled-tests': 'error',
|
|
@@ -57,7 +57,7 @@ const eslintJestRules = {
|
|
|
57
57
|
'jest/prefer-snapshot-hint': 'error',
|
|
58
58
|
'jest/prefer-spy-on': 'error',
|
|
59
59
|
'jest/prefer-todo': 'error',
|
|
60
|
-
/* eslint-plugin-jest
|
|
60
|
+
/* eslint-plugin-jest specific rules */
|
|
61
61
|
'jest/no-confusing-set-timeout': 'error',
|
|
62
62
|
'jest/no-deprecated-functions': 'error',
|
|
63
63
|
'jest/no-done-callback': 'error',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const eslintPlaywrightRules = {
|
|
2
|
-
/* vitest
|
|
2
|
+
/* Rules common with vitest (keep settings aligned) */
|
|
3
3
|
'playwright/expect-expect': 'error',
|
|
4
4
|
'playwright/max-expects': 'off',
|
|
5
5
|
'playwright/max-nested-describe': 'error',
|
|
@@ -30,7 +30,7 @@ const eslintPlaywrightRules = {
|
|
|
30
30
|
'playwright/valid-describe-callback': 'error',
|
|
31
31
|
'playwright/valid-expect': 'error',
|
|
32
32
|
'playwright/valid-title': 'off',
|
|
33
|
-
/* eslint-plugin-playwright
|
|
33
|
+
/* eslint-plugin-playwright specific rules */
|
|
34
34
|
'playwright/missing-playwright-await': 'error',
|
|
35
35
|
'playwright/no-element-handle': 'error',
|
|
36
36
|
'playwright/no-eval': 'error',
|
|
@@ -6,9 +6,9 @@ const eslintPromiseRules = {
|
|
|
6
6
|
'promise/no-native': 'off',
|
|
7
7
|
'promise/no-nesting': 'error',
|
|
8
8
|
'promise/no-promise-in-callback': 'error',
|
|
9
|
-
// promise.then(...).catch(...)
|
|
10
|
-
// then
|
|
11
|
-
// then
|
|
9
|
+
// When using promise.then(...).catch(...),
|
|
10
|
+
// this rule points out that errors thrown in callbacks within then() will be caught by the catch().
|
|
11
|
+
// However, this doesn't seem like a valid reason to prohibit writing callbacks inside then(), so we disable it.
|
|
12
12
|
'promise/no-callback-in-promise': 'off',
|
|
13
13
|
'promise/avoid-new': 'off',
|
|
14
14
|
'promise/no-new-statics': 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-react-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-react-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"eslint-react-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-react-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,EAAE,gBAkKrB,CAAC"}
|
|
@@ -22,7 +22,7 @@ const eslintReactRules = {
|
|
|
22
22
|
'react/boolean-prop-naming': 'error',
|
|
23
23
|
'react/button-has-type': 'error',
|
|
24
24
|
'react/default-props-match-prop-types': 'error',
|
|
25
|
-
/**
|
|
25
|
+
/** Enforce consistent usage of props destructuring. */
|
|
26
26
|
'react/destructuring-assignment': 'error',
|
|
27
27
|
'react/display-name': 'error',
|
|
28
28
|
'react/forbid-component-props': ['error', { forbid: ['className'] }],
|
|
@@ -37,21 +37,23 @@ const eslintReactRules = {
|
|
|
37
37
|
'react/hook-use-state': 'off',
|
|
38
38
|
'react/iframe-missing-sandbox': 'error',
|
|
39
39
|
'react/jsx-boolean-value': ['error', 'never'],
|
|
40
|
+
// Enable to avoid rendering differences with characters like \n
|
|
40
41
|
'react/jsx-curly-brace-presence': ['error', 'always'],
|
|
41
|
-
/**
|
|
42
|
+
/** Enforce consistent file naming */
|
|
42
43
|
'react/jsx-filename-extension': ['error', { extensions: ['.tsx'] }],
|
|
43
44
|
'react/jsx-fragments': 'error',
|
|
44
45
|
'react/jsx-handler-names': 'off', // disabled
|
|
45
46
|
'react/jsx-key': 'error',
|
|
46
47
|
'react/jsx-max-depth': 'off', // disabled
|
|
47
|
-
/** JSX
|
|
48
|
+
/** Prohibit inline callback functions in JSX. Fix: Use React.useCallback. */
|
|
48
49
|
'react/jsx-no-bind': 'error',
|
|
49
50
|
'react/jsx-no-comment-textnodes': 'error',
|
|
50
51
|
'react/jsx-no-constructed-context-values': 'error',
|
|
51
52
|
'react/jsx-no-duplicate-props': 'error',
|
|
52
53
|
/**
|
|
53
|
-
* JSX
|
|
54
|
-
*
|
|
54
|
+
* Avoid writing strings directly in JSX, enforce using `<div>{"aaa"}</div>`
|
|
55
|
+
* format. Benefits: Easier to catch missing `{}` around variables, better
|
|
56
|
+
* syntax highlighting for readability.
|
|
55
57
|
*/
|
|
56
58
|
'react/jsx-no-literals': 'error',
|
|
57
59
|
'react/jsx-no-script-url': 'error',
|
|
@@ -59,14 +61,17 @@ const eslintReactRules = {
|
|
|
59
61
|
'react/jsx-no-undef': 'error',
|
|
60
62
|
'react/jsx-no-useless-fragment': ['error', { allowExpressions: true }],
|
|
61
63
|
'react/jsx-pascal-case': 'error',
|
|
62
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Avoid `{...props}` spread as it weakens type checking for props
|
|
66
|
+
* excess/shortage
|
|
67
|
+
*/
|
|
63
68
|
'react/jsx-props-no-spreading': 'error',
|
|
64
69
|
'react/jsx-sort-props': [
|
|
65
70
|
'error',
|
|
66
71
|
{ callbacksLast: true, reservedFirst: true },
|
|
67
72
|
],
|
|
68
73
|
'react/jsx-uses-react': 'off', // disabled
|
|
69
|
-
/**
|
|
74
|
+
/** Enforce consistent file naming */
|
|
70
75
|
'react/jsx-uses-vars': 'error',
|
|
71
76
|
'react/no-access-state-in-setstate': 'error',
|
|
72
77
|
'react/no-adjacent-inline-elements': 'error',
|
|
@@ -96,7 +101,7 @@ const eslintReactRules = {
|
|
|
96
101
|
'react/no-this-in-sfc': 'error',
|
|
97
102
|
'react/no-typos': 'error',
|
|
98
103
|
'react/no-unescaped-entities': 'error',
|
|
99
|
-
//
|
|
104
|
+
// Allow css prop for @emotion/react
|
|
100
105
|
'react/no-unknown-property': ['error', { ignore: ['css'] }],
|
|
101
106
|
'react/no-unsafe': 'error',
|
|
102
107
|
'react/no-object-type-as-default-prop': 'error',
|
|
@@ -109,7 +114,7 @@ const eslintReactRules = {
|
|
|
109
114
|
'react/prefer-exact-props': 'error',
|
|
110
115
|
'react/prefer-read-only-props': 'error',
|
|
111
116
|
'react/prefer-stateless-function': 'error',
|
|
112
|
-
/** TypeScript
|
|
117
|
+
/** Not needed with TypeScript */
|
|
113
118
|
'react/prop-types': 'off',
|
|
114
119
|
'react/react-in-jsx-scope': 'off', // disabled
|
|
115
120
|
'react/require-default-props': 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-react-rules.mjs","sources":["../../src/rules/eslint-react-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,gBAAgB,GAAqB;AAChD;;;;AAIG;AACH,IAAA,iCAAiC,EAAE,KAAK;AACxC,IAAA,oCAAoC,EAAE,KAAK;AAC3C,IAAA,gCAAgC,EAAE,KAAK;AACvC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,+BAA+B,EAAE,KAAK;AACtC,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,8BAA8B,EAAE,KAAK;AACrC,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,mCAAmC,EAAE,KAAK;AAC1C,IAAA,iCAAiC,EAAE,KAAK;AACxC,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,2BAA2B,EAAE,KAAK;AAElC,IAAA,2BAA2B,EAAE,OAAO;AACpC,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,sCAAsC,EAAE,OAAO;;AAG/C,IAAA,gCAAgC,EAAE,OAAO;AAEzC,IAAA,oBAAoB,EAAE,OAAO;IAC7B,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACpE,IAAA,wBAAwB,EAAE,OAAO;AACjC,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,yBAAyB,EAAE,OAAO;AAClC,IAAA,qCAAqC,EAAE;QACrC,OAAO;AACP,QAAA,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE;AAC3E,KAAA;AACD,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,8BAA8B,EAAE,OAAO;AACvC,IAAA,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"eslint-react-rules.mjs","sources":["../../src/rules/eslint-react-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,oBAAoB,CAAC;AAE9E,eAAO,MAAM,gBAAgB;;;GAoC5B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EA2BiC,CAAC;AAEhE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBsB,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"eslint-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,oBAAoB,CAAC;AAE9E,eAAO,MAAM,gBAAgB;;;GAoC5B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EA2BiC,CAAC;AAEhE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBsB,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,WAyXhB,CAAC"}
|
|
@@ -63,17 +63,17 @@ const restrictedGlobals = [
|
|
|
63
63
|
const restrictedGlobalsForFrontend = [
|
|
64
64
|
...restrictedGlobals,
|
|
65
65
|
{
|
|
66
|
-
// react-router
|
|
66
|
+
// Avoid ambiguity with react-router's location
|
|
67
67
|
name: 'location',
|
|
68
68
|
message: "use 'window.location' instead.",
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
// react-router
|
|
71
|
+
// Avoid ambiguity with react-router's history
|
|
72
72
|
name: 'history',
|
|
73
73
|
message: "use 'window.history' instead.",
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
|
-
// react-router
|
|
76
|
+
// Avoid ambiguity with react-router's navigator
|
|
77
77
|
name: 'navigator',
|
|
78
78
|
message: "use 'window.navigator' instead.",
|
|
79
79
|
},
|
|
@@ -164,7 +164,7 @@ const eslintRules = {
|
|
|
164
164
|
generators: 'never',
|
|
165
165
|
},
|
|
166
166
|
],
|
|
167
|
-
'func-style': 'off', //
|
|
167
|
+
'func-style': 'off', // False positives with function overloads
|
|
168
168
|
'grouped-accessor-pairs': 'error',
|
|
169
169
|
'guard-for-in': 'error',
|
|
170
170
|
'id-denylist': 'error',
|
|
@@ -208,7 +208,7 @@ const eslintRules = {
|
|
|
208
208
|
'no-empty-pattern': 'error',
|
|
209
209
|
'no-empty-static-block': 'error',
|
|
210
210
|
'no-empty': 'error',
|
|
211
|
-
'no-eq-null': 'off', // eqeqeq
|
|
211
|
+
'no-eq-null': 'off', // off since eqeqeq allows null
|
|
212
212
|
'no-eval': 'error',
|
|
213
213
|
'no-ex-assign': 'error',
|
|
214
214
|
'no-extend-native': 'error',
|
|
@@ -256,7 +256,10 @@ const eslintRules = {
|
|
|
256
256
|
'no-octal-escape': 'error',
|
|
257
257
|
'no-octal': 'error',
|
|
258
258
|
'no-param-reassign': 'error',
|
|
259
|
-
/**
|
|
259
|
+
/**
|
|
260
|
+
* Warn against using the value of expressions like `++x` or `x++` as they
|
|
261
|
+
* reduce readability
|
|
262
|
+
*/
|
|
260
263
|
'no-plusplus': [
|
|
261
264
|
'error',
|
|
262
265
|
{
|
|
@@ -271,7 +274,8 @@ const eslintRules = {
|
|
|
271
274
|
'no-restricted-globals': ['error', ...restrictedGlobals],
|
|
272
275
|
'no-restricted-properties': 'error',
|
|
273
276
|
/**
|
|
274
|
-
*
|
|
277
|
+
* Write restricted syntax here that is difficult to achieve with other rules.
|
|
278
|
+
* Use the following AST checker to determine how to write selectors:
|
|
275
279
|
*
|
|
276
280
|
* AST checker:
|
|
277
281
|
* https://typescript-eslint.io/play/#ts=4.7.2&sourceType=module&showAST=es
|
|
@@ -319,9 +323,10 @@ const eslintRules = {
|
|
|
319
323
|
'prefer-object-spread': 'error',
|
|
320
324
|
'prefer-regex-literals': 'error',
|
|
321
325
|
/**
|
|
322
|
-
* `+`
|
|
323
|
-
*
|
|
324
|
-
*
|
|
326
|
+
* Used to avoid ambiguity with `+` operator. restrict-plus-operands limits
|
|
327
|
+
* usage to only bigint, number, string types, and prefer-template prohibits
|
|
328
|
+
* using `+` for string concatenation. Fix: Use template literals or join
|
|
329
|
+
* string arrays with `join("")`.
|
|
325
330
|
*
|
|
326
331
|
* - a + b -> `${a}${b}`
|
|
327
332
|
* - s_1 + s_2 + ... + s_n -> [s_1, ..., s_n].join("")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-rules.mjs","sources":["../../src/rules/eslint-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eslint-rules.mjs","sources":["../../src/rules/eslint-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const eslintTotalFunctionsRules = {
|
|
2
2
|
'total-functions/require-strict-mode': 'error',
|
|
3
|
-
// @typescript-eslint/no-unsafe-type-assertion
|
|
3
|
+
// Prioritize this as it can check more strictly than @typescript-eslint/no-unsafe-type-assertion
|
|
4
4
|
'total-functions/no-unsafe-type-assertion': 'error',
|
|
5
|
-
//
|
|
5
|
+
// Off due to performance issues and false positives
|
|
6
6
|
'total-functions/no-unsafe-readonly-mutable-assignment': 'off',
|
|
7
7
|
'total-functions/no-unsafe-mutable-readonly-assignment': 'off',
|
|
8
8
|
'total-functions/no-enums': 'error',
|
|
@@ -9,7 +9,7 @@ const eslintUnicornRules = {
|
|
|
9
9
|
'unicorn/number-literal-case': 'off',
|
|
10
10
|
'unicorn/better-regex': 'error',
|
|
11
11
|
'unicorn/catch-error-name': 'error',
|
|
12
|
-
/**
|
|
12
|
+
/** Enforce consistent usage of destructuring. */
|
|
13
13
|
'unicorn/consistent-destructuring': 'error',
|
|
14
14
|
'unicorn/consistent-function-scoping': 'error',
|
|
15
15
|
'unicorn/custom-error-definition': 'off',
|
|
@@ -17,7 +17,7 @@ const eslintUnicornRules = {
|
|
|
17
17
|
'unicorn/escape-case': 'error',
|
|
18
18
|
'unicorn/expiring-todo-comments': 'error',
|
|
19
19
|
'unicorn/explicit-length-check': 'off',
|
|
20
|
-
/**
|
|
20
|
+
/** Enforce consistent file naming */
|
|
21
21
|
'unicorn/filename-case': [
|
|
22
22
|
'error',
|
|
23
23
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const eslintVitestRules = {
|
|
2
|
-
/* jest
|
|
2
|
+
/* Rules common with jest and playwright (keep settings aligned) */
|
|
3
3
|
'vitest/expect-expect': 'error',
|
|
4
4
|
'vitest/max-expects': 'off',
|
|
5
5
|
'vitest/max-nested-describe': 'error',
|
|
@@ -30,7 +30,7 @@ const eslintVitestRules = {
|
|
|
30
30
|
'vitest/valid-describe-callback': 'error',
|
|
31
31
|
'vitest/valid-expect': 'error',
|
|
32
32
|
'vitest/valid-title': 'off',
|
|
33
|
-
/* jest
|
|
33
|
+
/* Rules common with jest (keep settings aligned) */
|
|
34
34
|
'vitest/consistent-test-it': ['error', { fn: 'test' }],
|
|
35
35
|
'vitest/no-alias-methods': 'error',
|
|
36
36
|
'vitest/no-disabled-tests': 'error',
|
|
@@ -57,12 +57,12 @@ const eslintVitestRules = {
|
|
|
57
57
|
'vitest/prefer-snapshot-hint': 'error',
|
|
58
58
|
'vitest/prefer-spy-on': 'error',
|
|
59
59
|
'vitest/prefer-todo': 'error',
|
|
60
|
-
/* eslint-plugin-vitest
|
|
61
|
-
// inline
|
|
60
|
+
/* eslint-plugin-vitest specific rules */
|
|
61
|
+
// Off to allow writing inline tests
|
|
62
62
|
'vitest/no-conditional-tests': 'off',
|
|
63
63
|
'vitest/consistent-test-filename': 'error',
|
|
64
64
|
'vitest/no-import-node-test': 'error',
|
|
65
|
-
// toBeFalsy()
|
|
65
|
+
// Reject these rules because toBeFalsy() is looser than toBe(false)
|
|
66
66
|
'vitest/prefer-to-be-falsy': 'off',
|
|
67
67
|
'vitest/prefer-to-be-truthy': 'off',
|
|
68
68
|
'vitest/prefer-to-be-object': 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-eslint-rules.d.mts","sourceRoot":"","sources":["../../src/rules/typescript-eslint-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,QAAQ,EAAE,2BAA2B,CAAC,wCAAwC,CAAC,CAAC,OAAO,CAMxF,CAAC;AAGb,eAAO,MAAM,uBAAuB,EAAE,uBAmB5B,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"typescript-eslint-rules.d.mts","sourceRoot":"","sources":["../../src/rules/typescript-eslint-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,QAAQ,EAAE,2BAA2B,CAAC,wCAAwC,CAAC,CAAC,OAAO,CAMxF,CAAC;AAGb,eAAO,MAAM,uBAAuB,EAAE,uBAmB5B,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,qBA4X1B,CAAC"}
|
|
@@ -4,7 +4,7 @@ const banTypes = {
|
|
|
4
4
|
fixWith: 'UnknownRecord',
|
|
5
5
|
},
|
|
6
6
|
};
|
|
7
|
-
// Note:
|
|
7
|
+
// Note: If paths with the same name are defined multiple times, later definitions may overwrite earlier ones
|
|
8
8
|
const restrictedImportsOption = {
|
|
9
9
|
paths: [
|
|
10
10
|
{
|
|
@@ -56,12 +56,11 @@ const typescriptEslintRules = {
|
|
|
56
56
|
{ fixMixedExportsWithInlineTypeSpecifier: true },
|
|
57
57
|
],
|
|
58
58
|
'@typescript-eslint/default-param-last': 'error',
|
|
59
|
-
/**
|
|
60
|
-
'@typescript-eslint/dot-notation':
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// ],
|
|
59
|
+
/** Related to noPropertyAccessFromIndexSignature tsc option */
|
|
60
|
+
'@typescript-eslint/dot-notation': [
|
|
61
|
+
'error',
|
|
62
|
+
{ allowIndexSignaturePropertyAccess: true },
|
|
63
|
+
],
|
|
65
64
|
'@typescript-eslint/explicit-function-return-type': [
|
|
66
65
|
'error',
|
|
67
66
|
{
|
|
@@ -83,7 +82,8 @@ const typescriptEslintRules = {
|
|
|
83
82
|
'@typescript-eslint/init-declarations': 'off', // let is disabled by functional/no-let
|
|
84
83
|
'@typescript-eslint/member-ordering': 'off', // disabled
|
|
85
84
|
/**
|
|
86
|
-
*
|
|
85
|
+
* Function members written in method notation become bivariant, reducing type
|
|
86
|
+
* safety
|
|
87
87
|
* https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-function-parameters-bivariant
|
|
88
88
|
*/
|
|
89
89
|
'@typescript-eslint/method-signature-style': 'error',
|
|
@@ -102,7 +102,7 @@ const typescriptEslintRules = {
|
|
|
102
102
|
'@typescript-eslint/no-floating-promises': 'error',
|
|
103
103
|
'@typescript-eslint/no-for-in-array': 'error',
|
|
104
104
|
'@typescript-eslint/no-implied-eval': 'error',
|
|
105
|
-
/**
|
|
105
|
+
/** Off to allow explicit type annotations when desired */
|
|
106
106
|
'@typescript-eslint/no-inferrable-types': 'off', // disabled
|
|
107
107
|
'@typescript-eslint/no-invalid-this': 'error',
|
|
108
108
|
'@typescript-eslint/no-invalid-void-type': 'error',
|
|
@@ -113,7 +113,7 @@ const typescriptEslintRules = {
|
|
|
113
113
|
'@typescript-eslint/no-misused-promises': [
|
|
114
114
|
'error',
|
|
115
115
|
{
|
|
116
|
-
checksConditionals: false, // strict-boolean-expression
|
|
116
|
+
checksConditionals: false, // strict-boolean-expression is sufficient
|
|
117
117
|
},
|
|
118
118
|
],
|
|
119
119
|
'@typescript-eslint/no-namespace': 'off', // disabled
|
|
@@ -270,16 +270,20 @@ const typescriptEslintRules = {
|
|
|
270
270
|
'@typescript-eslint/prefer-return-this-type': 'error',
|
|
271
271
|
'@typescript-eslint/prefer-string-starts-ends-with': 'error',
|
|
272
272
|
'@typescript-eslint/promise-function-async': 'off', // disabled
|
|
273
|
-
/**
|
|
273
|
+
/**
|
|
274
|
+
* Prevent forgetting compare function when sorting numbers, as `sort`
|
|
275
|
+
* defaults to string comparison.
|
|
276
|
+
*/
|
|
274
277
|
'@typescript-eslint/require-array-sort-compare': [
|
|
275
278
|
'error',
|
|
276
279
|
{ ignoreStringArrays: true },
|
|
277
280
|
],
|
|
278
281
|
'@typescript-eslint/require-await': 'error',
|
|
279
282
|
/**
|
|
280
|
-
* `+`
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
+
* Used to avoid ambiguity with `+` operator. restrict-plus-operands limits
|
|
284
|
+
* usage to only bigint, number, string types, and prefer-template prohibits
|
|
285
|
+
* using `+` for string concatenation. Fix: Use template literals or join
|
|
286
|
+
* string arrays with `join("")`.
|
|
283
287
|
*
|
|
284
288
|
* - A + b -> `${a}${b}`
|
|
285
289
|
* - S_1 + s_2 + ... + s_n -> [s_1, ..., s_n].join("")
|
|
@@ -309,14 +313,14 @@ const typescriptEslintRules = {
|
|
|
309
313
|
],
|
|
310
314
|
'@typescript-eslint/return-await': 'error',
|
|
311
315
|
/**
|
|
312
|
-
*
|
|
313
|
-
*
|
|
316
|
+
* Used to avoid implicit casting to Boolean. Prevents overlooking that
|
|
317
|
+
* numbers `0`, `NaN` and string `""` are treated as false in conditionals.
|
|
314
318
|
*/
|
|
315
319
|
'@typescript-eslint/strict-boolean-expressions': [
|
|
316
320
|
'error',
|
|
317
321
|
{ allowString: false, allowNumber: false, allowNullableObject: false },
|
|
318
322
|
],
|
|
319
|
-
/**
|
|
323
|
+
/** Prevent missing switch cases (using type information) */
|
|
320
324
|
'@typescript-eslint/switch-exhaustiveness-check': [
|
|
321
325
|
'error',
|
|
322
326
|
{
|
|
@@ -357,12 +361,12 @@ const typescriptEslintRules = {
|
|
|
357
361
|
'@typescript-eslint/no-empty-object-type': 'error',
|
|
358
362
|
'@typescript-eslint/no-unnecessary-parameter-property-assignment': 'error',
|
|
359
363
|
'@typescript-eslint/no-unnecessary-template-expression': 'error',
|
|
360
|
-
//
|
|
364
|
+
// Off temporarily due to bug causing infinite loop with recursive types
|
|
361
365
|
'@typescript-eslint/no-unnecessary-type-parameters': 'off',
|
|
362
366
|
'@typescript-eslint/no-unsafe-function-type': 'error',
|
|
363
367
|
'@typescript-eslint/no-wrapper-object-types': 'error',
|
|
364
368
|
'@typescript-eslint/no-deprecated': 'error',
|
|
365
|
-
// total-functions/no-unsafe-type-assertion
|
|
369
|
+
// Off as total-functions/no-unsafe-type-assertion provides stricter checking
|
|
366
370
|
'@typescript-eslint/no-unsafe-type-assertion': 'off',
|
|
367
371
|
'@typescript-eslint/related-getter-setter-pairs': 'error',
|
|
368
372
|
'@typescript-eslint/no-misused-spread': 'error',
|