@enormora/eslint-config-base 0.0.37 → 0.0.39
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/constants.js +3 -2
- package/constants.js.map +1 -0
- package/package.json +4 -2
- package/plugins/restricted-syntax/no-unnecessary-arrow-function.js +89 -0
- package/plugins/restricted-syntax/no-unnecessary-arrow-function.js.map +1 -0
- package/presets/base/base-shared.js +51 -67
- package/presets/base/base-shared.js.map +1 -0
- package/presets/base/base.js +16 -29
- package/presets/base/base.js.map +1 -0
- package/presets/base/cspell-config.js +18 -1
- package/presets/base/cspell-config.js.map +1 -0
- package/presets/base/dprint-config.js +1 -5
- package/presets/base/dprint-config.js.map +1 -0
- package/presets/base/dprint-formatters.js +1 -3
- package/presets/base/dprint-formatters.js.map +1 -0
- package/presets/base/markdown-lint-rules.js +13 -8
- package/presets/base/markdown-lint-rules.js.map +1 -0
- package/presets/base/markdown.js +8 -13
- package/presets/base/markdown.js.map +1 -0
- package/presets/base/package-json.js +2 -4
- package/presets/base/package-json.js.map +1 -0
- package/rule-sets/best-practices.js +16 -31
- package/rule-sets/best-practices.js.map +1 -0
- package/rule-sets/restricted-syntax.js +15 -35
- package/rule-sets/restricted-syntax.js.map +1 -0
- package/rule-sets/stylistic.js +33 -36
- package/rule-sets/stylistic.js.map +1 -0
- package/sbom.cdx.json +27 -10
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import markdownPlugin from '@eslint/markdown';
|
|
2
2
|
import markdownLinksPlugin from 'eslint-plugin-markdown-links';
|
|
3
3
|
import markdownPreferencesPlugin from 'eslint-plugin-markdown-preferences';
|
|
4
|
-
|
|
5
4
|
export const markdownLintPlugins = {
|
|
6
5
|
markdown: markdownPlugin,
|
|
7
6
|
'markdown-links': markdownLinksPlugin,
|
|
8
7
|
'markdown-preferences': markdownPreferencesPlugin
|
|
9
8
|
};
|
|
10
|
-
|
|
11
9
|
export const markdownLintRules = {
|
|
12
10
|
'markdown/fenced-code-language': 'error',
|
|
13
11
|
'markdown/fenced-code-meta': 'off',
|
|
@@ -21,7 +19,10 @@ export const markdownLintRules = {
|
|
|
21
19
|
'markdown/no-html': 'error',
|
|
22
20
|
'markdown/no-invalid-label-refs': 'error',
|
|
23
21
|
'markdown/no-missing-atx-heading-space': 'error',
|
|
24
|
-
|
|
22
|
+
// Allow the three GFM task-list checkbox markers (`[ ]`, `[x]`, `[X]`). The commonmark
|
|
23
|
+
// language has no concept of task lists, so the rule otherwise reports the checkbox content
|
|
24
|
+
// as a missing label reference.
|
|
25
|
+
'markdown/no-missing-label-refs': ['error', { allowLabels: ['', 'x', 'X'] }],
|
|
25
26
|
'markdown/no-missing-link-fragments': 'error',
|
|
26
27
|
'markdown/no-multiple-h1': 'error',
|
|
27
28
|
'markdown/no-reference-like-urls': 'error',
|
|
@@ -30,18 +31,21 @@ export const markdownLintRules = {
|
|
|
30
31
|
'markdown/no-unused-definitions': 'error',
|
|
31
32
|
'markdown/require-alt-text': 'error',
|
|
32
33
|
'markdown/table-column-count': 'error',
|
|
33
|
-
|
|
34
34
|
// markdown-links: external network check is opt-in to keep CI deterministic;
|
|
35
35
|
// local-path and fragment checks are pure wins.
|
|
36
36
|
'markdown-links/no-dead-urls': 'off',
|
|
37
37
|
'markdown-links/no-missing-fragments': 'error',
|
|
38
38
|
'markdown-links/no-missing-path': 'error',
|
|
39
39
|
'markdown-links/no-self-destination': 'error',
|
|
40
|
-
|
|
41
40
|
// markdown-preferences: many rules overlap with the active markdown formatter (dprint or
|
|
42
|
-
// prettier, depending on which base preset is used). We enable only
|
|
41
|
+
// prettier, depending on which base preset is used). We enable only 7 rules from this
|
|
43
42
|
// plugin's `recommended` config (none of which fight either formatter) and explicitly turn
|
|
44
|
-
// the other
|
|
43
|
+
// the other 46 off. Override individually if a stricter style is desired.
|
|
44
|
+
//
|
|
45
|
+
// `prefer-autolinks` is intentionally disabled even though it is in `recommended`: its
|
|
46
|
+
// autofix rewrites any `[x](x)` to `<x>` without checking whether the URL has a scheme.
|
|
47
|
+
// CommonMark autolinks require an absolute URI, so a relative link like `[foo.md](foo.md)`
|
|
48
|
+
// becomes `<foo.md>`, which GitHub renders as an empty HTML tag (the link disappears).
|
|
45
49
|
'markdown-preferences/atx-heading-closing-sequence': 'off',
|
|
46
50
|
'markdown-preferences/atx-heading-closing-sequence-length': 'off',
|
|
47
51
|
'markdown-preferences/blockquote-marker-alignment': 'error',
|
|
@@ -80,7 +84,7 @@ export const markdownLintRules = {
|
|
|
80
84
|
'markdown-preferences/ordered-list-marker-style': 'off',
|
|
81
85
|
'markdown-preferences/padded-custom-containers': 'off',
|
|
82
86
|
'markdown-preferences/padding-line-between-blocks': 'off',
|
|
83
|
-
'markdown-preferences/prefer-autolinks': '
|
|
87
|
+
'markdown-preferences/prefer-autolinks': 'off',
|
|
84
88
|
'markdown-preferences/prefer-fenced-code-blocks': 'error',
|
|
85
89
|
'markdown-preferences/prefer-inline-code-words': 'off',
|
|
86
90
|
'markdown-preferences/prefer-link-reference-definitions': 'off',
|
|
@@ -96,3 +100,4 @@ export const markdownLintRules = {
|
|
|
96
100
|
'markdown-preferences/thematic-break-length': 'off',
|
|
97
101
|
'markdown-preferences/thematic-break-sequence-pattern': 'off'
|
|
98
102
|
};
|
|
103
|
+
//# sourceMappingURL=markdown-lint-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-lint-rules.js","sourceRoot":"","sources":["../../../../../configs/presets/base/markdown-lint-rules.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,yBAAyB,MAAM,oCAAoC,CAAC;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAC9D,QAAQ,EAAE,cAAc;IACxB,gBAAgB,EAAE,mBAAmB;IACrC,sBAAsB,EAAE,yBAAyB;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,+BAA+B,EAAE,OAAO;IACxC,2BAA2B,EAAE,KAAK;IAClC,4BAA4B,EAAE,OAAO;IACrC,uBAAuB,EAAE,OAAO;IAChC,mCAAmC,EAAE,OAAO;IAC5C,gCAAgC,EAAE,OAAO;IACzC,+BAA+B,EAAE,OAAO;IACxC,0BAA0B,EAAE,OAAO;IACnC,yBAAyB,EAAE,OAAO;IAClC,kBAAkB,EAAE,OAAO;IAC3B,gCAAgC,EAAE,OAAO;IACzC,uCAAuC,EAAE,OAAO;IAChD,uFAAuF;IACvF,4FAA4F;IAC5F,gCAAgC;IAChC,gCAAgC,EAAE,CAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,EAAE,CAAE;IAChF,oCAAoC,EAAE,OAAO;IAC7C,yBAAyB,EAAE,OAAO;IAClC,iCAAiC,EAAE,OAAO;IAC1C,mCAAmC,EAAE,OAAO;IAC5C,+BAA+B,EAAE,OAAO;IACxC,gCAAgC,EAAE,OAAO;IACzC,2BAA2B,EAAE,OAAO;IACpC,6BAA6B,EAAE,OAAO;IAEtC,6EAA6E;IAC7E,gDAAgD;IAChD,6BAA6B,EAAE,KAAK;IACpC,qCAAqC,EAAE,OAAO;IAC9C,gCAAgC,EAAE,OAAO;IACzC,oCAAoC,EAAE,OAAO;IAE7C,yFAAyF;IACzF,sFAAsF;IACtF,2FAA2F;IAC3F,0EAA0E;IAC1E,EAAE;IACF,uFAAuF;IACvF,wFAAwF;IACxF,2FAA2F;IAC3F,uFAAuF;IACvF,mDAAmD,EAAE,KAAK;IAC1D,0DAA0D,EAAE,KAAK;IACjE,kDAAkD,EAAE,OAAO;IAC3D,+CAA+C,EAAE,KAAK;IACtD,oDAAoD,EAAE,KAAK;IAC3D,wCAAwC,EAAE,KAAK;IAC/C,yCAAyC,EAAE,KAAK;IAChD,uCAAuC,EAAE,KAAK;IAC9C,sDAAsD,EAAE,KAAK;IAC7D,uCAAuC,EAAE,KAAK;IAC9C,qCAAqC,EAAE,KAAK;IAC5C,gDAAgD,EAAE,KAAK;IACvD,2CAA2C,EAAE,OAAO;IACpD,qCAAqC,EAAE,KAAK;IAC5C,6BAA6B,EAAE,KAAK;IACpC,2CAA2C,EAAE,KAAK;IAClD,2CAA2C,EAAE,KAAK;IAClD,2CAA2C,EAAE,KAAK;IAClD,2CAA2C,EAAE,KAAK;IAClD,6CAA6C,EAAE,KAAK;IACpD,yCAAyC,EAAE,KAAK;IAChD,yCAAyC,EAAE,KAAK;IAChD,uCAAuC,EAAE,KAAK;IAC9C,4CAA4C,EAAE,OAAO;IACrD,8BAA8B,EAAE,KAAK;IACrC,sDAAsD,EAAE,KAAK;IAC7D,gDAAgD,EAAE,OAAO;IACzD,8CAA8C,EAAE,OAAO;IACvD,sCAAsC,EAAE,KAAK;IAC7C,8CAA8C,EAAE,KAAK;IACrD,8BAA8B,EAAE,KAAK;IACrC,kDAAkD,EAAE,OAAO;IAC3D,yCAAyC,EAAE,KAAK;IAChD,mDAAmD,EAAE,KAAK;IAC1D,gDAAgD,EAAE,KAAK;IACvD,gDAAgD,EAAE,KAAK;IACvD,+CAA+C,EAAE,KAAK;IACtD,kDAAkD,EAAE,KAAK;IACzD,uCAAuC,EAAE,KAAK;IAC9C,gDAAgD,EAAE,OAAO;IACzD,+CAA+C,EAAE,KAAK;IACtD,wDAAwD,EAAE,KAAK;IAC/D,0CAA0C,EAAE,KAAK;IACjD,sDAAsD,EAAE,KAAK;IAC7D,uCAAuC,EAAE,KAAK;IAC9C,qDAAqD,EAAE,KAAK;IAC5D,0CAA0C,EAAE,KAAK;IACjD,mDAAmD,EAAE,KAAK;IAC1D,2CAA2C,EAAE,KAAK;IAClD,yCAAyC,EAAE,KAAK;IAChD,qDAAqD,EAAE,KAAK;IAC5D,4CAA4C,EAAE,KAAK;IACnD,sDAAsD,EAAE,KAAK;CAChE,CAAC"}
|
package/presets/base/markdown.js
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import dprintPlugin from '@ben_12/eslint-plugin-dprint';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
tomlDprintConfig,
|
|
6
|
-
typescriptDprintConfig,
|
|
7
|
-
yamlDprintConfig
|
|
8
|
-
} from './dprint-config.js';
|
|
9
|
-
import { dprintSettings } from './dprint-formatters.js';
|
|
10
|
-
import { markdownLintPlugins, markdownLintRules } from './markdown-lint-rules.js';
|
|
11
|
-
|
|
2
|
+
import { jsonDprintConfig, markdownDprintConfig, tomlDprintConfig, typescriptDprintConfig, yamlDprintConfig } from "./dprint-config.js";
|
|
3
|
+
import { dprintSettings } from "./dprint-formatters.js";
|
|
4
|
+
import { markdownLintPlugins, markdownLintRules } from "./markdown-lint-rules.js";
|
|
12
5
|
// `@eslint/markdown` declares `language: 'markdown/commonmark'` for .md files, which makes ESLint
|
|
13
6
|
// parse them into an mdast tree (root node `type: 'root'`). The stock `dprint/markdown` rule listens
|
|
14
7
|
// on the ESTree selector `Program` and therefore never fires under that language, silently turning
|
|
15
8
|
// dprint formatting off. The adapter below wraps the original `dprint/markdown` rule and re-keys its
|
|
16
9
|
// visitor under the mdast `root` selector so the formatter runs in the same pass as the linters.
|
|
17
10
|
const originalDprintMarkdownRule = dprintPlugin.rules.markdown;
|
|
11
|
+
if (originalDprintMarkdownRule === undefined) {
|
|
12
|
+
throw new Error('Expected dprint plugin to expose a `markdown` rule');
|
|
13
|
+
}
|
|
18
14
|
const dprintMarkdownLanguageAdapter = {
|
|
19
15
|
rules: {
|
|
20
16
|
markdown: {
|
|
@@ -26,9 +22,8 @@ const dprintMarkdownLanguageAdapter = {
|
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
24
|
};
|
|
29
|
-
|
|
30
25
|
export const markdownConfig = {
|
|
31
|
-
files: [
|
|
26
|
+
files: ['**/*.md'],
|
|
32
27
|
plugins: {
|
|
33
28
|
...markdownLintPlugins,
|
|
34
29
|
'dprint-markdown': dprintMarkdownLanguageAdapter
|
|
@@ -53,7 +48,7 @@ export const markdownConfig = {
|
|
|
53
48
|
}
|
|
54
49
|
}
|
|
55
50
|
],
|
|
56
|
-
|
|
57
51
|
...markdownLintRules
|
|
58
52
|
}
|
|
59
53
|
};
|
|
54
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../../configs/presets/base/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElF,kGAAkG;AAClG,qGAAqG;AACrG,mGAAmG;AACnG,qGAAqG;AACrG,iGAAiG;AACjG,MAAM,0BAA0B,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/D,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;IAC3C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1E,CAAC;AACD,MAAM,6BAA6B,GAAG;IAClC,KAAK,EAAE;QACH,QAAQ,EAAE;YACN,IAAI,EAAE,0BAA0B,CAAC,IAAI;YACrC,MAAM,CAAC,OAAyB;gBAC5B,MAAM,KAAK,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC;SACJ;KACJ;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,KAAK,EAAE,CAAE,SAAS,CAAE;IACpB,OAAO,EAAE;QACL,GAAG,mBAAmB;QACtB,iBAAiB,EAAE,6BAA6B;KACnD;IACD,8FAA8F;IAC9F,8EAA8E;IAC9E,6FAA6F;IAC7F,6FAA6F;IAC7F,gCAAgC;IAChC,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE;QACH,0BAA0B,EAAE;YACxB,OAAO;YACP;gBACI,MAAM,EAAE,oBAAoB;gBAC5B,WAAW,EAAE;oBACT,UAAU,EAAE,sBAAsB;oBAClC,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,gBAAgB;iBACzB;aACJ;SACJ;QAED,GAAG,iBAAiB;KACvB;CACwB,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import jsonSchemaValidatorPlugin from 'eslint-plugin-json-schema-validator';
|
|
2
2
|
import packageJsonPlugin from 'eslint-plugin-package-json';
|
|
3
3
|
import * as jsoncParser from 'jsonc-eslint-parser';
|
|
4
|
-
|
|
5
4
|
export const packageJsonConfig = {
|
|
6
|
-
files: [
|
|
5
|
+
files: ['**/package.json'],
|
|
7
6
|
languageOptions: { parser: jsoncParser },
|
|
8
7
|
plugins: {
|
|
9
8
|
'package-json': packageJsonPlugin,
|
|
@@ -59,7 +58,6 @@ export const packageJsonConfig = {
|
|
|
59
58
|
'package-json/valid-type': 'error',
|
|
60
59
|
'package-json/valid-version': 'error',
|
|
61
60
|
'package-json/valid-workspaces': 'error',
|
|
62
|
-
|
|
63
61
|
// Too opinionated for a base preset — consumers can opt in.
|
|
64
62
|
'package-json/bin-name-casing': 'off',
|
|
65
63
|
'package-json/exports-subpaths-style': 'off',
|
|
@@ -108,7 +106,7 @@ export const packageJsonConfig = {
|
|
|
108
106
|
'package-json/restrict-dependency-ranges': 'off',
|
|
109
107
|
'package-json/restrict-top-level-properties': 'off',
|
|
110
108
|
'package-json/specify-peers-locally': 'off',
|
|
111
|
-
|
|
112
109
|
'json-schema-validator/no-invalid': 'error'
|
|
113
110
|
}
|
|
114
111
|
};
|
|
112
|
+
//# sourceMappingURL=package-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../../../configs/presets/base/package-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,30 +4,22 @@ import promisePlugin from 'eslint-plugin-promise';
|
|
|
4
4
|
import * as regexpPlugin from 'eslint-plugin-regexp';
|
|
5
5
|
import sonarjsPlugin from 'eslint-plugin-sonarjs';
|
|
6
6
|
import unicornPlugin from 'eslint-plugin-unicorn';
|
|
7
|
-
|
|
8
7
|
const maxSwitchCases = 6;
|
|
9
|
-
|
|
10
8
|
function isSonarjsRuleDeprecated(sonarjsRule) {
|
|
11
|
-
return sonarjsRule.meta?.deprecated
|
|
9
|
+
return Boolean(sonarjsRule.meta?.deprecated);
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
const nonDeprecatedSonarjsRecommendedRules = Object.fromEntries(
|
|
26
|
-
Object.entries(sonarjsPlugin.configs.recommended.rules).filter(function keepNonDeprecated([ sonarjsRuleName ]) {
|
|
27
|
-
return nonDeprecatedSonarjsRuleNames.has(sonarjsRuleName);
|
|
28
|
-
})
|
|
29
|
-
);
|
|
30
|
-
|
|
11
|
+
const nonDeprecatedSonarjsRuleNames = new Set(Object
|
|
12
|
+
.entries(sonarjsPlugin.rules)
|
|
13
|
+
.filter(function removeDeprecated([, sonarjsRule]) {
|
|
14
|
+
return !isSonarjsRuleDeprecated(sonarjsRule);
|
|
15
|
+
})
|
|
16
|
+
.map(function toQualifiedRuleName([sonarjsRuleName]) {
|
|
17
|
+
return `sonarjs/${sonarjsRuleName}`;
|
|
18
|
+
}));
|
|
19
|
+
const sonarjsRecommendedRules = sonarjsPlugin.configs.recommended.rules ?? {};
|
|
20
|
+
const nonDeprecatedSonarjsRecommendedRules = Object.fromEntries(Object.entries(sonarjsRecommendedRules).filter(function keepNonDeprecated([sonarjsRuleName]) {
|
|
21
|
+
return nonDeprecatedSonarjsRuleNames.has(sonarjsRuleName);
|
|
22
|
+
}));
|
|
31
23
|
export const bestPracticesRuleSet = {
|
|
32
24
|
plugins: {
|
|
33
25
|
unicorn: unicornPlugin,
|
|
@@ -185,19 +177,16 @@ export const bestPracticesRuleSet = {
|
|
|
185
177
|
'unicorn/prefer-response-static-json': 'error',
|
|
186
178
|
'unicorn/isolated-functions': 'off',
|
|
187
179
|
'unicorn/switch-case-break-position': 'error',
|
|
188
|
-
|
|
189
180
|
'array-func/from-map': 'error',
|
|
190
181
|
'array-func/no-unnecessary-this-arg': 'error',
|
|
191
182
|
'array-func/prefer-array-from': 'error',
|
|
192
183
|
'array-func/avoid-reverse': 'error',
|
|
193
184
|
'array-func/prefer-flat-map': 'error',
|
|
194
185
|
'array-func/prefer-flat': 'error',
|
|
195
|
-
|
|
196
186
|
...nonDeprecatedSonarjsRecommendedRules,
|
|
197
|
-
|
|
198
187
|
'sonarjs/cognitive-complexity': 'off',
|
|
199
188
|
'sonarjs/elseif-without-else': 'off',
|
|
200
|
-
'sonarjs/max-switch-cases': [
|
|
189
|
+
'sonarjs/max-switch-cases': ['error', maxSwitchCases],
|
|
201
190
|
'sonarjs/no-all-duplicated-branches': 'error',
|
|
202
191
|
'sonarjs/no-collapsible-if': 'error',
|
|
203
192
|
'sonarjs/no-collection-size-mischeck': 'error',
|
|
@@ -231,7 +220,6 @@ export const bestPracticesRuleSet = {
|
|
|
231
220
|
// regexp/no-super-linear-backtracking subsumes this with a sound NFA-based analysis
|
|
232
221
|
// (sonarjs is heuristic); see the regexp/* block below.
|
|
233
222
|
'sonarjs/slow-regex': 'off',
|
|
234
|
-
|
|
235
223
|
'promise/avoid-new': 'off',
|
|
236
224
|
'promise/no-nesting': 'error',
|
|
237
225
|
'promise/no-promise-in-callback': 'error',
|
|
@@ -250,13 +238,11 @@ export const bestPracticesRuleSet = {
|
|
|
250
238
|
'promise/no-new-statics': 'error',
|
|
251
239
|
'promise/no-return-in-finally': 'error',
|
|
252
240
|
'promise/valid-params': 'error',
|
|
253
|
-
'promise/prefer-await-to-then': [
|
|
241
|
+
'promise/prefer-await-to-then': ['error', { strict: true }],
|
|
254
242
|
'promise/no-multiple-resolved': 'error',
|
|
255
243
|
'promise/spec-only': 'error',
|
|
256
244
|
'promise/prefer-catch': 'error',
|
|
257
|
-
|
|
258
245
|
'no-barrel-files/no-barrel-files': 'error',
|
|
259
|
-
|
|
260
246
|
// eslint-plugin-regexp — purely additive on top of core / unicorn / sonarjs regex coverage.
|
|
261
247
|
// Rules with a working equivalent already in core, unicorn, or sonarjs are turned off here so
|
|
262
248
|
// each diagnostic is reported by exactly one rule. The only swap is regexp/no-super-linear-backtracking
|
|
@@ -310,7 +296,6 @@ export const bestPracticesRuleSet = {
|
|
|
310
296
|
'regexp/prefer-set-operation': 'error',
|
|
311
297
|
'regexp/prefer-unicode-codepoint-escapes': 'error',
|
|
312
298
|
'regexp/simplify-set-operations': 'error',
|
|
313
|
-
|
|
314
299
|
// Overlap with existing rules — keep the existing rule as single source of truth.
|
|
315
300
|
'regexp/no-control-character': 'off', // core no-control-regex
|
|
316
301
|
'regexp/no-dupe-characters-character-class': 'off', // sonarjs/duplicates-in-character-class
|
|
@@ -331,7 +316,6 @@ export const bestPracticesRuleSet = {
|
|
|
331
316
|
'regexp/prefer-w': 'off', // unicorn/better-regex
|
|
332
317
|
'regexp/require-unicode-regexp': 'off', // matches core require-unicode-regexp (off)
|
|
333
318
|
'regexp/strict': 'off', // unicorn/better-regex
|
|
334
|
-
|
|
335
319
|
// Pure style preferences outside the project's scope.
|
|
336
320
|
'regexp/grapheme-string-literal': 'off',
|
|
337
321
|
'regexp/hexadecimal-escape': 'off',
|
|
@@ -349,3 +333,4 @@ export const bestPracticesRuleSet = {
|
|
|
349
333
|
'regexp/use-ignore-case': 'off'
|
|
350
334
|
}
|
|
351
335
|
};
|
|
336
|
+
//# sourceMappingURL=best-practices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"best-practices.js","sourceRoot":"","sources":["../../../../configs/rule-sets/best-practices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +1,42 @@
|
|
|
1
1
|
import { builtinRules } from 'eslint/use-at-your-own-risk';
|
|
2
|
-
|
|
3
2
|
const noRestrictedSyntaxRule = builtinRules.get('no-restricted-syntax');
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export function createRestrictedSyntaxPlugin(ruleNames, additionalRules) {
|
|
4
|
+
const wrapperEntries = Object.fromEntries(ruleNames.map(function toRuleEntry(ruleName) {
|
|
5
|
+
return [ruleName, noRestrictedSyntaxRule];
|
|
6
|
+
}));
|
|
6
7
|
return {
|
|
7
|
-
rules:
|
|
8
|
-
ruleNames.map(function toRuleEntry(ruleName) {
|
|
9
|
-
return [ ruleName, noRestrictedSyntaxRule ];
|
|
10
|
-
})
|
|
11
|
-
)
|
|
8
|
+
rules: { ...wrapperEntries, ...additionalRules }
|
|
12
9
|
};
|
|
13
10
|
}
|
|
14
|
-
|
|
15
11
|
const defaultAllowedSuperClassNamePattern = '/Error$/';
|
|
16
12
|
const defaultClassDeclarationMessage = 'Class declarations are not allowed except for extending errors.';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
const defaultNoClassDeclarationOptions = {
|
|
14
|
+
allowedSuperClassNamePattern: defaultAllowedSuperClassNamePattern,
|
|
15
|
+
message: defaultClassDeclarationMessage
|
|
16
|
+
};
|
|
17
|
+
export function createNoClassDeclarationRestriction(options = defaultNoClassDeclarationOptions) {
|
|
18
|
+
const { allowedSuperClassNamePattern, message } = options;
|
|
22
19
|
return {
|
|
23
20
|
selector: `ClassDeclaration[superClass.name!=${allowedSuperClassNamePattern}]`,
|
|
24
21
|
message
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
|
-
|
|
28
24
|
export const noClassDeclarationRestriction = createNoClassDeclarationRestriction();
|
|
29
|
-
|
|
30
25
|
export const noSwitchStatementRestriction = {
|
|
31
26
|
selector: 'SwitchStatement',
|
|
32
27
|
message: 'Use pattern matching instead.'
|
|
33
28
|
};
|
|
34
|
-
|
|
35
|
-
const emptyFunctionBodySelector = [ 'FunctionDeclaration', 'FunctionExpression', 'ArrowFunctionExpression' ]
|
|
29
|
+
const emptyFunctionBodySelector = ['FunctionDeclaration', 'FunctionExpression', 'ArrowFunctionExpression']
|
|
36
30
|
.map(function toEmptyBodySelector(kind) {
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
return `${kind} > BlockStatement[body.length=0]`;
|
|
32
|
+
})
|
|
39
33
|
.join(', ');
|
|
40
|
-
|
|
41
34
|
export const noEmptyFunctionBodyRestriction = {
|
|
42
35
|
selector: emptyFunctionBodySelector,
|
|
43
36
|
message: 'Empty function bodies are not allowed, even with a comment.'
|
|
44
37
|
};
|
|
45
|
-
|
|
46
38
|
export const noInOperatorRestriction = {
|
|
47
39
|
selector: 'BinaryExpression[operator="in"]',
|
|
48
40
|
message: 'The `in` operator is not allowed. Use `Object.hasOwn` instead.'
|
|
49
41
|
};
|
|
50
|
-
|
|
51
|
-
const lexicalBindingReferences = [
|
|
52
|
-
'ThisExpression',
|
|
53
|
-
'Super',
|
|
54
|
-
'MetaProperty[meta.name="new"]',
|
|
55
|
-
'Identifier[name="arguments"]'
|
|
56
|
-
]
|
|
57
|
-
.join(', ');
|
|
58
|
-
|
|
59
|
-
export const noUnnecessaryArrowFunctionRestriction = {
|
|
60
|
-
selector: `ArrowFunctionExpression:not(:has(${lexicalBindingReferences}))`,
|
|
61
|
-
message: 'Arrow functions are only allowed when they use lexical `this`, `super`, `new.target`, or `arguments`.'
|
|
62
|
-
};
|
|
42
|
+
//# sourceMappingURL=restricted-syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restricted-syntax.js","sourceRoot":"","sources":["../../../../configs/rule-sets/restricted-syntax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAgB3D,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAExE,MAAM,UAAU,4BAA4B,CACxC,SAA4B,EAC5B,eAA0D;IAE1D,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACrC,SAAS,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,QAAgB;QAC/C,OAAO,CAAE,QAAQ,EAAE,sBAAsB,CAAE,CAAC;IAChD,CAAC,CAAC,CACL,CAAC;IACF,OAAO;QACH,KAAK,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,EAAE;KACnD,CAAC;AACN,CAAC;AAED,MAAM,mCAAmC,GAAG,UAAU,CAAC;AACvD,MAAM,8BAA8B,GAAG,iEAAiE,CAAC;AACzG,MAAM,gCAAgC,GAA8B;IAChE,4BAA4B,EAAE,mCAAmC;IACjE,OAAO,EAAE,8BAA8B;CAC1C,CAAC;AAEF,MAAM,UAAU,mCAAmC,CAC/C,UAAqC,gCAAgC;IAErE,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1D,OAAO;QACH,QAAQ,EAAE,qCAAqC,4BAA4B,GAAG;QAC9E,OAAO;KACV,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,mCAAmC,EAAE,CAAC;AAEnF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IACxC,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,+BAA+B;CAC3C,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CAAE;KACvG,GAAG,CAAC,SAAS,mBAAmB,CAAC,IAAI;IAClC,OAAO,GAAG,IAAI,kCAAkC,CAAC;AACrD,CAAC,CAAC;KACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,6DAA6D;CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,gEAAgE;CAC5E,CAAC"}
|
package/rule-sets/stylistic.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
import stylisticPlugin from '@stylistic/eslint-plugin';
|
|
2
2
|
import destructuringPlugin from 'eslint-plugin-destructuring';
|
|
3
|
-
import { indentSize } from
|
|
4
|
-
|
|
3
|
+
import { indentSize } from "../constants.js";
|
|
5
4
|
export const stylisticRuleSet = {
|
|
6
5
|
plugins: {
|
|
7
6
|
destructuring: destructuringPlugin,
|
|
8
7
|
'@stylistic': stylisticPlugin
|
|
9
8
|
},
|
|
10
|
-
|
|
11
9
|
settings: {},
|
|
12
|
-
|
|
13
10
|
rules: {
|
|
14
11
|
'destructuring/in-methods-params': 'error',
|
|
15
|
-
'destructuring/in-params': [
|
|
12
|
+
'destructuring/in-params': ['error', { 'max-params': 0 }],
|
|
16
13
|
'destructuring/no-rename': 'off',
|
|
17
|
-
|
|
18
14
|
'@stylistic/array-bracket-newline': 'off',
|
|
19
|
-
'@stylistic/array-bracket-spacing': [
|
|
20
|
-
'@stylistic/array-element-newline': [
|
|
21
|
-
'@stylistic/arrow-parens': [
|
|
15
|
+
'@stylistic/array-bracket-spacing': ['error', 'always'],
|
|
16
|
+
'@stylistic/array-element-newline': ['error', 'consistent'],
|
|
17
|
+
'@stylistic/arrow-parens': ['error', 'always'],
|
|
22
18
|
'@stylistic/arrow-spacing': [
|
|
23
19
|
'error',
|
|
24
20
|
{
|
|
@@ -27,8 +23,8 @@ export const stylisticRuleSet = {
|
|
|
27
23
|
}
|
|
28
24
|
],
|
|
29
25
|
'@stylistic/block-spacing': 'off',
|
|
30
|
-
'@stylistic/brace-style': [
|
|
31
|
-
'@stylistic/comma-dangle': [
|
|
26
|
+
'@stylistic/brace-style': ['error', '1tbs', { allowSingleLine: false }],
|
|
27
|
+
'@stylistic/comma-dangle': ['error', 'never'],
|
|
32
28
|
'@stylistic/comma-spacing': [
|
|
33
29
|
'error',
|
|
34
30
|
{
|
|
@@ -36,7 +32,7 @@ export const stylisticRuleSet = {
|
|
|
36
32
|
after: true
|
|
37
33
|
}
|
|
38
34
|
],
|
|
39
|
-
'@stylistic/comma-style': [
|
|
35
|
+
'@stylistic/comma-style': ['error', 'last'],
|
|
40
36
|
'@stylistic/computed-property-spacing': [
|
|
41
37
|
'error',
|
|
42
38
|
'never',
|
|
@@ -44,15 +40,15 @@ export const stylisticRuleSet = {
|
|
|
44
40
|
enforceForClassMembers: true
|
|
45
41
|
}
|
|
46
42
|
],
|
|
47
|
-
'@stylistic/dot-location': [
|
|
43
|
+
'@stylistic/dot-location': ['error', 'property'],
|
|
48
44
|
'@stylistic/eol-last': 'error',
|
|
49
45
|
'@stylistic/exp-list-style': 'off',
|
|
50
46
|
'@stylistic/exp-jsx-props-style': 'off',
|
|
51
|
-
'@stylistic/function-call-spacing': [
|
|
52
|
-
'@stylistic/function-call-argument-newline': [
|
|
47
|
+
'@stylistic/function-call-spacing': ['error', 'never'],
|
|
48
|
+
'@stylistic/function-call-argument-newline': ['error', 'consistent'],
|
|
53
49
|
'@stylistic/function-paren-newline': 'off',
|
|
54
|
-
'@stylistic/generator-star-spacing': [
|
|
55
|
-
'@stylistic/indent-binary-ops': [
|
|
50
|
+
'@stylistic/generator-star-spacing': ['error', { before: false, after: true }],
|
|
51
|
+
'@stylistic/indent-binary-ops': ['error', indentSize],
|
|
56
52
|
'@stylistic/implicit-arrow-linebreak': 'off',
|
|
57
53
|
'@stylistic/indent': [
|
|
58
54
|
'error',
|
|
@@ -94,7 +90,7 @@ export const stylisticRuleSet = {
|
|
|
94
90
|
after: true
|
|
95
91
|
}
|
|
96
92
|
],
|
|
97
|
-
'@stylistic/linebreak-style': [
|
|
93
|
+
'@stylistic/linebreak-style': ['error', 'unix'],
|
|
98
94
|
'@stylistic/lines-between-class-members': [
|
|
99
95
|
'error',
|
|
100
96
|
'always',
|
|
@@ -116,7 +112,7 @@ export const stylisticRuleSet = {
|
|
|
116
112
|
ignoreRegExpLiterals: true
|
|
117
113
|
}
|
|
118
114
|
],
|
|
119
|
-
'@stylistic/max-statements-per-line': [
|
|
115
|
+
'@stylistic/max-statements-per-line': ['error', { max: 1 }],
|
|
120
116
|
'@stylistic/member-delimiter-style': [
|
|
121
117
|
'error',
|
|
122
118
|
{
|
|
@@ -140,16 +136,16 @@ export const stylisticRuleSet = {
|
|
|
140
136
|
'@stylistic/no-mixed-operators': 'off',
|
|
141
137
|
'@stylistic/no-mixed-spaces-and-tabs': 'error',
|
|
142
138
|
'@stylistic/no-multi-spaces': 'error',
|
|
143
|
-
'@stylistic/no-multiple-empty-lines': [
|
|
139
|
+
'@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],
|
|
144
140
|
'@stylistic/no-tabs': 'error',
|
|
145
141
|
'@stylistic/no-trailing-spaces': 'error',
|
|
146
142
|
'@stylistic/no-whitespace-before-property': 'error',
|
|
147
143
|
'@stylistic/nonblock-statement-body-position': 'off',
|
|
148
144
|
'@stylistic/object-curly-newline': 'off',
|
|
149
|
-
'@stylistic/object-curly-spacing': [
|
|
145
|
+
'@stylistic/object-curly-spacing': ['error', 'always'],
|
|
150
146
|
'@stylistic/object-property-newline': 'off',
|
|
151
147
|
'@stylistic/one-var-declaration-per-line': 'error',
|
|
152
|
-
'@stylistic/operator-linebreak': [
|
|
148
|
+
'@stylistic/operator-linebreak': ['error', 'after', { overrides: { '?': 'before', ':': 'before' } }],
|
|
153
149
|
'@stylistic/padded-blocks': [
|
|
154
150
|
'error',
|
|
155
151
|
'never',
|
|
@@ -170,10 +166,10 @@ export const stylisticRuleSet = {
|
|
|
170
166
|
next: 'directive'
|
|
171
167
|
}
|
|
172
168
|
],
|
|
173
|
-
'@stylistic/quote-props': [
|
|
174
|
-
'@stylistic/quotes': [
|
|
175
|
-
'@stylistic/rest-spread-spacing': [
|
|
176
|
-
'@stylistic/semi': [
|
|
169
|
+
'@stylistic/quote-props': ['error', 'as-needed'],
|
|
170
|
+
'@stylistic/quotes': ['error', 'single', { avoidEscape: true }],
|
|
171
|
+
'@stylistic/rest-spread-spacing': ['error', 'never'],
|
|
172
|
+
'@stylistic/semi': ['error', 'always'],
|
|
177
173
|
'@stylistic/semi-spacing': [
|
|
178
174
|
'error',
|
|
179
175
|
{
|
|
@@ -181,8 +177,8 @@ export const stylisticRuleSet = {
|
|
|
181
177
|
after: true
|
|
182
178
|
}
|
|
183
179
|
],
|
|
184
|
-
'@stylistic/semi-style': [
|
|
185
|
-
'@stylistic/space-before-blocks': [
|
|
180
|
+
'@stylistic/semi-style': ['error', 'last'],
|
|
181
|
+
'@stylistic/space-before-blocks': ['error', 'always'],
|
|
186
182
|
'@stylistic/space-before-function-paren': [
|
|
187
183
|
'error',
|
|
188
184
|
{
|
|
@@ -191,7 +187,7 @@ export const stylisticRuleSet = {
|
|
|
191
187
|
asyncArrow: 'always'
|
|
192
188
|
}
|
|
193
189
|
],
|
|
194
|
-
'@stylistic/space-in-parens': [
|
|
190
|
+
'@stylistic/space-in-parens': ['error', 'never'],
|
|
195
191
|
'@stylistic/space-infix-ops': 'error',
|
|
196
192
|
'@stylistic/space-unary-ops': 'error',
|
|
197
193
|
'@stylistic/spaced-comment': [
|
|
@@ -199,12 +195,12 @@ export const stylisticRuleSet = {
|
|
|
199
195
|
'always',
|
|
200
196
|
{
|
|
201
197
|
line: {
|
|
202
|
-
exceptions: [
|
|
203
|
-
markers: [
|
|
198
|
+
exceptions: ['-', '+', '*'],
|
|
199
|
+
markers: ['!', '/', '=>']
|
|
204
200
|
},
|
|
205
201
|
block: {
|
|
206
|
-
exceptions: [
|
|
207
|
-
markers: [
|
|
202
|
+
exceptions: ['-', '+', '*'],
|
|
203
|
+
markers: ['!', '*'],
|
|
208
204
|
balanced: true
|
|
209
205
|
}
|
|
210
206
|
}
|
|
@@ -218,15 +214,16 @@ export const stylisticRuleSet = {
|
|
|
218
214
|
],
|
|
219
215
|
'@stylistic/curly-newline': 'off',
|
|
220
216
|
'@stylistic/template-curly-spacing': 'error',
|
|
221
|
-
'@stylistic/template-tag-spacing': [
|
|
217
|
+
'@stylistic/template-tag-spacing': ['error', 'never'],
|
|
222
218
|
'@stylistic/type-annotation-spacing': 'error',
|
|
223
219
|
'@stylistic/type-generic-spacing': 'error',
|
|
224
220
|
'@stylistic/type-named-tuple-spacing': 'error',
|
|
225
|
-
'@stylistic/wrap-iife': [
|
|
221
|
+
'@stylistic/wrap-iife': ['error', 'inside'],
|
|
226
222
|
'@stylistic/wrap-regex': 'off',
|
|
227
|
-
'@stylistic/yield-star-spacing': [
|
|
223
|
+
'@stylistic/yield-star-spacing': ['error', { before: false, after: true }],
|
|
228
224
|
'@stylistic/jsx-pascal-case': 'off',
|
|
229
225
|
'@stylistic/line-comment-position': 'off',
|
|
230
226
|
'@stylistic/multiline-comment-style': 'off'
|
|
231
227
|
}
|
|
232
228
|
};
|
|
229
|
+
//# sourceMappingURL=stylistic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stylistic.js","sourceRoot":"","sources":["../../../../configs/rule-sets/stylistic.ts"],"names":[],"mappings":"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"}
|