@firefoxic/eslint-config 5.0.0 → 6.0.1
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.
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import noMultilineNamedImports from "./no-multiline-named-imports/index.js"
|
|
2
|
+
import noSingleQuotesInImportsAndObjectKeys from "./no-single-quotes-in-imports-and-object-keys/index.js"
|
|
3
|
+
|
|
4
|
+
const plugin = {
|
|
5
|
+
// preferred location of name and version
|
|
6
|
+
meta: {
|
|
7
|
+
name: `eslint-plugin-enough-is-enough`,
|
|
8
|
+
namespace: `enough-is-enough`,
|
|
9
|
+
},
|
|
10
|
+
rules: {
|
|
11
|
+
"no-multiline-named-imports": noMultilineNamedImports,
|
|
12
|
+
"no-single-quotes-in-imports-and-object-keys": noSingleQuotesInImportsAndObjectKeys,
|
|
13
|
+
},
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default plugin
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
meta: {
|
|
3
|
+
type: `layout`,
|
|
4
|
+
fixable: `code`,
|
|
5
|
+
messages: {
|
|
6
|
+
multiline: `Multi-line named imports are disallowed.`,
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
create (context) {
|
|
10
|
+
let sourceCode = context.sourceCode
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
ImportDeclaration (node) {
|
|
14
|
+
let namedSpecifiers = node.specifiers.filter((s) => s.type === `ImportSpecifier`)
|
|
15
|
+
|
|
16
|
+
if (namedSpecifiers.length === 0) return
|
|
17
|
+
|
|
18
|
+
let tokens = sourceCode.getTokens(node)
|
|
19
|
+
let openBrace = tokens.find((t) => t.value === `{`)
|
|
20
|
+
let closeBrace = tokens.reverse().find((t) => t.value === `}`)
|
|
21
|
+
|
|
22
|
+
if (!openBrace || !closeBrace) return
|
|
23
|
+
|
|
24
|
+
if (openBrace.loc.start.line !== closeBrace.loc.end.line) {
|
|
25
|
+
context.report({
|
|
26
|
+
node,
|
|
27
|
+
messageId: `multiline`,
|
|
28
|
+
fix (fixer) {
|
|
29
|
+
let imports = namedSpecifiers.map((s) => sourceCode.getText(s)).join(`, `)
|
|
30
|
+
let defaultImport = node.specifiers.find((s) => s.type === `ImportDefaultSpecifier`)
|
|
31
|
+
let namespaceImport = node.specifiers.find((s) => s.type === `ImportNamespaceSpecifier`)
|
|
32
|
+
let source = sourceCode.getText(node.source)
|
|
33
|
+
|
|
34
|
+
let newImport = `import `
|
|
35
|
+
|
|
36
|
+
if (defaultImport) newImport += `${sourceCode.getText(defaultImport)}, `
|
|
37
|
+
if (namespaceImport) newImport += `${sourceCode.getText(namespaceImport)}, `
|
|
38
|
+
newImport += `{ ${imports} } from ${source}`
|
|
39
|
+
|
|
40
|
+
let lastToken = sourceCode.getLastToken(node)
|
|
41
|
+
let hasSemicolon = lastToken && lastToken.value === `;`
|
|
42
|
+
|
|
43
|
+
if (hasSemicolon) newImport += `;`
|
|
44
|
+
|
|
45
|
+
return fixer.replaceText(node, newImport)
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
meta: {
|
|
3
|
+
type: `suggestion`,
|
|
4
|
+
docs: { description: `Disallow single quotes in import/export sources and object keys when quoted` },
|
|
5
|
+
fixable: `code`,
|
|
6
|
+
schema: [],
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
create (context) {
|
|
10
|
+
let sourceCode = context.sourceCode
|
|
11
|
+
|
|
12
|
+
function isSingleQuoted (node) {
|
|
13
|
+
if (typeof node.value !== `string`) return false
|
|
14
|
+
|
|
15
|
+
let text = sourceCode.getText(node)
|
|
16
|
+
|
|
17
|
+
return text.startsWith(`'`) && text.endsWith(`'`)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function checkLiteralInImportOrExport (node) {
|
|
21
|
+
if (!node.source) return
|
|
22
|
+
|
|
23
|
+
let literal = node.source
|
|
24
|
+
|
|
25
|
+
if (isSingleQuoted(literal)) {
|
|
26
|
+
context.report({
|
|
27
|
+
node: literal,
|
|
28
|
+
message: `Use double quotes for import/export source.`,
|
|
29
|
+
fix (fixer) {
|
|
30
|
+
let newText = `"${literal.value.replace(/"/g, `\\"`)}"`
|
|
31
|
+
|
|
32
|
+
return fixer.replaceText(literal, newText)
|
|
33
|
+
},
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function checkObjectExpression (node) {
|
|
39
|
+
let properties = node.properties
|
|
40
|
+
|
|
41
|
+
let hasQuotedKey = properties.some(
|
|
42
|
+
(prop) => prop.type === `Property`
|
|
43
|
+
&& prop.key.type === `Literal`
|
|
44
|
+
&& typeof prop.key.value === `string`,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
if (!hasQuotedKey) return
|
|
48
|
+
|
|
49
|
+
for (let prop of properties) {
|
|
50
|
+
if (
|
|
51
|
+
prop.type !== `Property`
|
|
52
|
+
|| prop.key.type !== `Literal`
|
|
53
|
+
|| typeof prop.key.value !== `string`
|
|
54
|
+
) continue
|
|
55
|
+
|
|
56
|
+
let key = prop.key
|
|
57
|
+
|
|
58
|
+
if (isSingleQuoted(key)) {
|
|
59
|
+
context.report({
|
|
60
|
+
node: key,
|
|
61
|
+
message: `Use double quotes for quoted object keys.`,
|
|
62
|
+
fix (fixer) {
|
|
63
|
+
let newText = `"${key.value.replace(/"/g, `\\"`)}"`
|
|
64
|
+
|
|
65
|
+
return fixer.replaceText(key, newText)
|
|
66
|
+
},
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
ImportDeclaration: checkLiteralInImportOrExport,
|
|
74
|
+
ExportNamedDeclaration: checkLiteralInImportOrExport,
|
|
75
|
+
ExportAllDeclaration: checkLiteralInImportOrExport,
|
|
76
|
+
ObjectExpression: checkObjectExpression,
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
declare module
|
|
2
|
-
import { Linter } from
|
|
1
|
+
declare module "@firefoxic/eslint-config" {
|
|
2
|
+
import { Linter } from "eslint"
|
|
3
|
+
import globals from "globals"
|
|
3
4
|
|
|
4
|
-
export
|
|
5
|
-
let firefoxicEslintConfig: Linter.Config
|
|
6
|
-
export default firefoxicEslintConfig
|
|
5
|
+
export type GlobalsType = typeof globals
|
|
6
|
+
let firefoxicEslintConfig: Linter.Config
|
|
7
|
+
export default firefoxicEslintConfig
|
|
7
8
|
}
|
package/lib/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import stylistic from "@stylistic/eslint-plugin"
|
|
1
2
|
import eslintPluginPreferLet from "eslint-plugin-prefer-let"
|
|
2
|
-
import
|
|
3
|
-
|
|
3
|
+
import eslintPluginSimpleImportSort from "eslint-plugin-simple-import-sort"
|
|
4
|
+
|
|
5
|
+
import enoughIsEnough from "./enough-is-enough/index.js"
|
|
4
6
|
|
|
5
7
|
export { default as globals } from "globals"
|
|
6
8
|
|
|
7
9
|
/** @type {import('eslint').Linter.Config[]} */
|
|
8
10
|
export default [
|
|
9
|
-
js.configs.recommended,
|
|
10
11
|
{
|
|
11
12
|
rules: {
|
|
12
13
|
"accessor-pairs": `error`,
|
|
@@ -15,47 +16,102 @@ export default [
|
|
|
15
16
|
`as-needed`,
|
|
16
17
|
],
|
|
17
18
|
"camelcase": `error`,
|
|
19
|
+
"constructor-super": `error`,
|
|
18
20
|
"curly": [
|
|
19
21
|
`error`,
|
|
20
|
-
`multi-
|
|
22
|
+
`multi-or-nest`,
|
|
21
23
|
],
|
|
22
24
|
"eqeqeq": [
|
|
23
25
|
`error`,
|
|
24
26
|
`always`,
|
|
25
27
|
],
|
|
28
|
+
"for-direction": `error`,
|
|
26
29
|
"func-style": [
|
|
27
30
|
`error`,
|
|
28
31
|
`declaration`,
|
|
29
32
|
],
|
|
33
|
+
"getter-return": `error`,
|
|
30
34
|
"guard-for-in": `error`,
|
|
31
35
|
"no-alert": `error`,
|
|
32
|
-
"no-
|
|
36
|
+
"no-async-promise-executor": `error`,
|
|
37
|
+
"no-case-declarations": `error`,
|
|
38
|
+
"no-class-assign": `error`,
|
|
39
|
+
"no-compare-neg-zero": `error`,
|
|
40
|
+
"no-cond-assign": `error`,
|
|
41
|
+
"no-const-assign": `error`,
|
|
42
|
+
"no-constant-binary-expression": `error`,
|
|
43
|
+
"no-constant-condition": `error`,
|
|
44
|
+
"no-control-regex": `error`,
|
|
45
|
+
"no-debugger": `error`,
|
|
46
|
+
"no-delete-var": `error`,
|
|
47
|
+
"no-dupe-args": `error`,
|
|
48
|
+
"no-dupe-class-members": `error`,
|
|
49
|
+
"no-dupe-else-if": `error`,
|
|
50
|
+
"no-dupe-keys": `error`,
|
|
51
|
+
"no-duplicate-case": `error`,
|
|
52
|
+
"no-empty": `error`,
|
|
53
|
+
"no-empty-character-class": `error`,
|
|
54
|
+
"no-empty-pattern": `error`,
|
|
55
|
+
"no-empty-static-block": `error`,
|
|
56
|
+
"no-ex-assign": `error`,
|
|
57
|
+
"no-extra-boolean-cast": `error`,
|
|
58
|
+
"no-fallthrough": `error`,
|
|
59
|
+
"no-func-assign": `error`,
|
|
60
|
+
"no-global-assign": `error`,
|
|
61
|
+
"no-import-assign": `error`,
|
|
62
|
+
"no-invalid-regexp": `error`,
|
|
33
63
|
"no-lonely-if": `error`,
|
|
64
|
+
"no-loss-of-precision": `error`,
|
|
65
|
+
"no-misleading-character-class": `error`,
|
|
34
66
|
"no-multi-assign": `error`,
|
|
35
|
-
"no-proto": `error`,
|
|
36
67
|
"no-nested-ternary": `error`,
|
|
68
|
+
"no-new-native-nonconstructor": `error`,
|
|
69
|
+
"no-nonoctal-decimal-escape": `error`,
|
|
70
|
+
"no-obj-calls": `error`,
|
|
71
|
+
"no-octal": `error`,
|
|
37
72
|
"no-octal-escape": `error`,
|
|
73
|
+
"no-proto": `error`,
|
|
38
74
|
"no-prototype-builtins": `error`,
|
|
75
|
+
"no-redeclare": `error`,
|
|
76
|
+
"no-regex-spaces": `error`,
|
|
39
77
|
"no-return-assign": `error`,
|
|
78
|
+
"no-self-assign": `error`,
|
|
40
79
|
"no-self-compare": `error`,
|
|
80
|
+
"no-setter-return": `error`,
|
|
41
81
|
"no-shadow": [
|
|
42
82
|
`error`,
|
|
43
83
|
{
|
|
44
84
|
hoist: `all`,
|
|
45
85
|
},
|
|
46
86
|
],
|
|
87
|
+
"no-shadow-restricted-names": `error`,
|
|
88
|
+
"no-sparse-arrays": `error`,
|
|
47
89
|
"no-template-curly-in-string": `error`,
|
|
90
|
+
"no-this-before-super": `error`,
|
|
91
|
+
"no-undef": `error`,
|
|
92
|
+
"no-unexpected-multiline": `error`,
|
|
48
93
|
"no-unneeded-ternary": `error`,
|
|
94
|
+
"no-unreachable": `error`,
|
|
95
|
+
"no-unsafe-finally": `error`,
|
|
96
|
+
"no-unsafe-negation": `error`,
|
|
97
|
+
"no-unsafe-optional-chaining": `error`,
|
|
49
98
|
"no-unused-expressions": `error`,
|
|
99
|
+
"no-unused-labels": `error`,
|
|
100
|
+
"no-unused-private-class-members": `error`,
|
|
101
|
+
"no-unused-vars": `error`,
|
|
50
102
|
"no-use-before-define": [
|
|
51
103
|
`error`,
|
|
52
104
|
{
|
|
53
105
|
functions: false,
|
|
54
106
|
},
|
|
55
107
|
],
|
|
108
|
+
"no-useless-backreference": `error`,
|
|
109
|
+
"no-useless-catch": `error`,
|
|
56
110
|
"no-useless-concat": `error`,
|
|
111
|
+
"no-useless-escape": `error`,
|
|
57
112
|
"no-useless-return": `error`,
|
|
58
113
|
"no-var": `error`,
|
|
114
|
+
"no-with": `error`,
|
|
59
115
|
"object-shorthand": `error`,
|
|
60
116
|
"one-var": [
|
|
61
117
|
`error`,
|
|
@@ -65,10 +121,13 @@ export default [
|
|
|
65
121
|
"prefer-object-has-own": `error`,
|
|
66
122
|
"prefer-template": `error`,
|
|
67
123
|
"radix": `error`,
|
|
124
|
+
"require-yield": `error`,
|
|
68
125
|
"strict": [
|
|
69
126
|
`error`,
|
|
70
127
|
`global`,
|
|
71
128
|
],
|
|
129
|
+
"use-isnan": `error`,
|
|
130
|
+
"valid-typeof": `error`,
|
|
72
131
|
},
|
|
73
132
|
},
|
|
74
133
|
{
|
|
@@ -81,300 +140,292 @@ export default [
|
|
|
81
140
|
},
|
|
82
141
|
{
|
|
83
142
|
plugins: {
|
|
84
|
-
"
|
|
143
|
+
"simple-import-sort": eslintPluginSimpleImportSort,
|
|
85
144
|
},
|
|
86
145
|
rules: {
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
// `consistent`,
|
|
90
|
-
{ multiline: true },
|
|
91
|
-
],
|
|
92
|
-
"@stylistic/js/array-bracket-spacing": [
|
|
93
|
-
`error`,
|
|
94
|
-
`never`,
|
|
95
|
-
],
|
|
96
|
-
"@stylistic/js/array-element-newline": [
|
|
97
|
-
`error`,
|
|
98
|
-
`consistent`,
|
|
99
|
-
],
|
|
100
|
-
"@stylistic/js/arrow-parens": [
|
|
101
|
-
`error`,
|
|
102
|
-
`always`,
|
|
103
|
-
],
|
|
104
|
-
"@stylistic/js/arrow-spacing": [
|
|
146
|
+
"simple-import-sort/exports": `error`,
|
|
147
|
+
"simple-import-sort/imports": [
|
|
105
148
|
`error`,
|
|
106
149
|
{
|
|
107
|
-
|
|
108
|
-
|
|
150
|
+
groups: [
|
|
151
|
+
// 1.Node.js modules
|
|
152
|
+
[`^node:`],
|
|
153
|
+
// 2. Foreign modules
|
|
154
|
+
[`^@?\\w`],
|
|
155
|
+
// 3. Absolute imports (@/...)
|
|
156
|
+
[`^@/`],
|
|
157
|
+
// 4. Relative imports (up)
|
|
158
|
+
[
|
|
159
|
+
`^\\.\\.(?!/?$)`,
|
|
160
|
+
`^\\.\\./?$`,
|
|
161
|
+
],
|
|
162
|
+
// 5. Relative imports (down)
|
|
163
|
+
[
|
|
164
|
+
`^\\./(?=.*/)(?!/?$)`,
|
|
165
|
+
`^\\.(?!/?$)`,
|
|
166
|
+
`^\\./?$`,
|
|
167
|
+
],
|
|
168
|
+
// 6. Styles
|
|
169
|
+
[`^.+\\.s?css$`],
|
|
170
|
+
],
|
|
109
171
|
},
|
|
110
172
|
],
|
|
111
|
-
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
plugins: {
|
|
177
|
+
"@stylistic": stylistic,
|
|
178
|
+
},
|
|
179
|
+
rules: {
|
|
180
|
+
"@stylistic/array-bracket-newline": `error`,
|
|
181
|
+
"@stylistic/array-bracket-spacing": `error`,
|
|
182
|
+
"@stylistic/array-element-newline": [
|
|
112
183
|
`error`,
|
|
113
|
-
|
|
184
|
+
{
|
|
185
|
+
consistent: true,
|
|
186
|
+
multiline: true,
|
|
187
|
+
},
|
|
114
188
|
],
|
|
115
|
-
"@stylistic/
|
|
189
|
+
"@stylistic/arrow-parens": `error`,
|
|
190
|
+
"@stylistic/arrow-spacing": `error`,
|
|
191
|
+
"@stylistic/block-spacing": `error`,
|
|
192
|
+
"@stylistic/brace-style": [
|
|
116
193
|
`error`,
|
|
117
|
-
`
|
|
194
|
+
`stroustrup`,
|
|
118
195
|
{
|
|
119
196
|
allowSingleLine: true,
|
|
120
197
|
},
|
|
121
198
|
],
|
|
122
|
-
"@stylistic/
|
|
199
|
+
"@stylistic/comma-dangle": [
|
|
123
200
|
`error`,
|
|
124
201
|
`always-multiline`,
|
|
125
202
|
],
|
|
126
|
-
"@stylistic/
|
|
203
|
+
"@stylistic/comma-spacing": `error`,
|
|
204
|
+
"@stylistic/comma-style": `error`,
|
|
205
|
+
"@stylistic/computed-property-spacing": `error`,
|
|
206
|
+
"@stylistic/curly-newline": [
|
|
127
207
|
`error`,
|
|
128
208
|
{
|
|
129
|
-
|
|
130
|
-
|
|
209
|
+
consistent: true,
|
|
210
|
+
multiline: true,
|
|
131
211
|
},
|
|
132
212
|
],
|
|
133
|
-
"@stylistic/
|
|
134
|
-
`error`,
|
|
135
|
-
`last`,
|
|
136
|
-
],
|
|
137
|
-
"@stylistic/js/computed-property-spacing": [
|
|
138
|
-
`error`,
|
|
139
|
-
`never`,
|
|
140
|
-
],
|
|
141
|
-
"@stylistic/js/dot-location": [
|
|
213
|
+
"@stylistic/dot-location": [
|
|
142
214
|
`error`,
|
|
143
215
|
`property`,
|
|
144
216
|
],
|
|
145
|
-
"@stylistic/
|
|
146
|
-
|
|
147
|
-
`always`,
|
|
148
|
-
],
|
|
149
|
-
"@stylistic/js/function-call-argument-newline": [
|
|
217
|
+
"@stylistic/eol-last": `error`,
|
|
218
|
+
"@stylistic/function-call-argument-newline": [
|
|
150
219
|
`error`,
|
|
151
220
|
`consistent`,
|
|
152
221
|
],
|
|
153
|
-
"@stylistic/
|
|
154
|
-
|
|
155
|
-
`never`,
|
|
156
|
-
],
|
|
157
|
-
"@stylistic/js/function-paren-newline": [
|
|
222
|
+
"@stylistic/function-call-spacing": `error`,
|
|
223
|
+
"@stylistic/function-paren-newline": [
|
|
158
224
|
`error`,
|
|
159
225
|
`multiline-arguments`,
|
|
160
226
|
],
|
|
161
|
-
"@stylistic/
|
|
227
|
+
"@stylistic/generator-star-spacing": [
|
|
162
228
|
`error`,
|
|
163
|
-
|
|
164
|
-
before: true,
|
|
165
|
-
after: false,
|
|
166
|
-
},
|
|
229
|
+
`after`,
|
|
167
230
|
],
|
|
168
|
-
"@stylistic/
|
|
169
|
-
|
|
170
|
-
`beside`,
|
|
171
|
-
],
|
|
172
|
-
"@stylistic/js/indent": [
|
|
231
|
+
"@stylistic/implicit-arrow-linebreak": `error`,
|
|
232
|
+
"@stylistic/indent": [
|
|
173
233
|
`error`,
|
|
174
234
|
`tab`,
|
|
175
235
|
{
|
|
176
236
|
SwitchCase: 1,
|
|
177
237
|
},
|
|
178
238
|
],
|
|
179
|
-
"@stylistic/
|
|
180
|
-
`error`,
|
|
181
|
-
{
|
|
182
|
-
beforeColon: false,
|
|
183
|
-
afterColon: true,
|
|
184
|
-
},
|
|
185
|
-
],
|
|
186
|
-
"@stylistic/js/keyword-spacing": [
|
|
187
|
-
`error`,
|
|
188
|
-
{
|
|
189
|
-
before: true,
|
|
190
|
-
after: true,
|
|
191
|
-
},
|
|
192
|
-
],
|
|
193
|
-
"@stylistic/js/linebreak-style": [
|
|
239
|
+
"@stylistic/indent-binary-ops": [
|
|
194
240
|
`error`,
|
|
195
|
-
`
|
|
241
|
+
`tab`,
|
|
196
242
|
],
|
|
197
|
-
"@stylistic/
|
|
243
|
+
"@stylistic/key-spacing": `error`,
|
|
244
|
+
"@stylistic/keyword-spacing": `error`,
|
|
245
|
+
"@stylistic/linebreak-style": `error`,
|
|
246
|
+
"@stylistic/lines-around-comment": [
|
|
198
247
|
`error`,
|
|
199
248
|
{
|
|
200
249
|
beforeBlockComment: true,
|
|
201
250
|
allowBlockStart: true,
|
|
202
251
|
},
|
|
203
252
|
],
|
|
204
|
-
"@stylistic/
|
|
205
|
-
|
|
206
|
-
`always`,
|
|
207
|
-
],
|
|
208
|
-
"@stylistic/js/max-len": [
|
|
253
|
+
"@stylistic/lines-between-class-members": `error`,
|
|
254
|
+
"@stylistic/member-delimiter-style": [
|
|
209
255
|
`error`,
|
|
210
|
-
{
|
|
256
|
+
{
|
|
257
|
+
multiline: {
|
|
258
|
+
delimiter: `comma`,
|
|
259
|
+
requireLast: true,
|
|
260
|
+
},
|
|
261
|
+
singleline: {
|
|
262
|
+
delimiter: `comma`,
|
|
263
|
+
requireLast: false,
|
|
264
|
+
},
|
|
265
|
+
},
|
|
211
266
|
],
|
|
212
|
-
"@stylistic/
|
|
267
|
+
"@stylistic/multiline-comment-style": [
|
|
213
268
|
`error`,
|
|
214
269
|
`separate-lines`,
|
|
215
270
|
],
|
|
216
|
-
"@stylistic/
|
|
271
|
+
"@stylistic/multiline-ternary": [
|
|
217
272
|
`error`,
|
|
218
273
|
`always-multiline`,
|
|
219
274
|
],
|
|
220
|
-
"@stylistic/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
"@stylistic/
|
|
225
|
-
"@stylistic/
|
|
226
|
-
"@stylistic/
|
|
227
|
-
|
|
228
|
-
{ allowSamePrecedence: true },
|
|
229
|
-
],
|
|
230
|
-
"@stylistic/js/no-mixed-spaces-and-tabs": [
|
|
231
|
-
`error`,
|
|
232
|
-
// `smart-tabs`,
|
|
233
|
-
],
|
|
234
|
-
"@stylistic/js/no-multi-spaces": [
|
|
235
|
-
`error`,
|
|
236
|
-
{
|
|
237
|
-
ignoreEOLComments: true,
|
|
238
|
-
},
|
|
239
|
-
],
|
|
240
|
-
"@stylistic/js/no-multiple-empty-lines": [
|
|
275
|
+
"@stylistic/new-parens": `error`,
|
|
276
|
+
"@stylistic/no-confusing-arrow": `off`,
|
|
277
|
+
"@stylistic/no-extra-semi": `error`,
|
|
278
|
+
"@stylistic/no-floating-decimal": `error`,
|
|
279
|
+
"@stylistic/no-mixed-operators": `error`,
|
|
280
|
+
"@stylistic/no-mixed-spaces-and-tabs": `error`,
|
|
281
|
+
"@stylistic/no-multi-spaces": `error`,
|
|
282
|
+
"@stylistic/no-multiple-empty-lines": [
|
|
241
283
|
`error`,
|
|
242
284
|
{
|
|
243
285
|
max: 1,
|
|
286
|
+
maxBOF: 0,
|
|
287
|
+
maxEOF: 0,
|
|
244
288
|
},
|
|
245
289
|
],
|
|
246
|
-
|
|
247
|
-
"@stylistic/
|
|
248
|
-
"@stylistic/
|
|
249
|
-
|
|
250
|
-
`beside`,
|
|
251
|
-
],
|
|
252
|
-
"@stylistic/js/object-curly-newline": [
|
|
290
|
+
"@stylistic/no-trailing-spaces": `error`,
|
|
291
|
+
"@stylistic/no-whitespace-before-property": `error`,
|
|
292
|
+
"@stylistic/nonblock-statement-body-position": `error`,
|
|
293
|
+
"@stylistic/object-curly-newline": [
|
|
253
294
|
`error`,
|
|
254
295
|
{
|
|
255
296
|
consistent: true,
|
|
256
297
|
multiline: true,
|
|
257
298
|
},
|
|
258
299
|
],
|
|
259
|
-
"@stylistic/
|
|
300
|
+
"@stylistic/object-curly-spacing": [
|
|
260
301
|
`error`,
|
|
261
302
|
`always`,
|
|
262
303
|
],
|
|
263
|
-
"@stylistic/
|
|
304
|
+
"@stylistic/object-property-newline": [
|
|
264
305
|
`error`,
|
|
265
306
|
{
|
|
266
|
-
|
|
307
|
+
allowAllPropertiesOnSameLine: true,
|
|
267
308
|
},
|
|
268
309
|
],
|
|
269
|
-
"@stylistic/
|
|
310
|
+
"@stylistic/one-var-declaration-per-line": `error`,
|
|
311
|
+
"@stylistic/operator-linebreak": [
|
|
270
312
|
`error`,
|
|
271
313
|
`before`,
|
|
314
|
+
{
|
|
315
|
+
overrides: {
|
|
316
|
+
"=": `none`,
|
|
317
|
+
},
|
|
318
|
+
},
|
|
272
319
|
],
|
|
273
|
-
"@stylistic/
|
|
320
|
+
"@stylistic/padded-blocks": [
|
|
274
321
|
`error`,
|
|
275
322
|
`never`,
|
|
276
323
|
],
|
|
277
|
-
"@stylistic/
|
|
324
|
+
"@stylistic/padding-line-between-statements": [
|
|
278
325
|
`error`,
|
|
279
326
|
{
|
|
280
327
|
blankLine: `always`,
|
|
281
328
|
prev: `*`,
|
|
282
|
-
next: [
|
|
329
|
+
next: [
|
|
330
|
+
`class`,
|
|
331
|
+
`export`,
|
|
332
|
+
`function`,
|
|
333
|
+
`import`,
|
|
334
|
+
],
|
|
283
335
|
},
|
|
284
336
|
{
|
|
285
337
|
blankLine: `always`,
|
|
286
|
-
prev: [
|
|
338
|
+
prev: [
|
|
339
|
+
`class`,
|
|
340
|
+
`export`,
|
|
341
|
+
`function`,
|
|
342
|
+
`import`,
|
|
343
|
+
],
|
|
287
344
|
next: `*`,
|
|
288
345
|
},
|
|
289
346
|
{
|
|
290
347
|
blankLine: `any`,
|
|
291
|
-
prev: [
|
|
292
|
-
|
|
348
|
+
prev: [
|
|
349
|
+
`const`,
|
|
350
|
+
`let`,
|
|
351
|
+
`var`,
|
|
352
|
+
],
|
|
353
|
+
next: [
|
|
354
|
+
`const`,
|
|
355
|
+
`let`,
|
|
356
|
+
`var`,
|
|
357
|
+
],
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
blankLine: `any`,
|
|
361
|
+
prev: `export`,
|
|
362
|
+
next: `export`,
|
|
293
363
|
},
|
|
294
364
|
{
|
|
295
365
|
blankLine: `any`,
|
|
296
366
|
prev: `import`,
|
|
297
367
|
next: `import`,
|
|
298
368
|
},
|
|
369
|
+
{
|
|
370
|
+
blankLine: `any`,
|
|
371
|
+
prev: `*`,
|
|
372
|
+
next: `return`,
|
|
373
|
+
},
|
|
299
374
|
],
|
|
300
|
-
"@stylistic/
|
|
375
|
+
"@stylistic/quote-props": [
|
|
301
376
|
`error`,
|
|
302
377
|
`consistent-as-needed`,
|
|
303
378
|
{
|
|
304
379
|
keywords: true,
|
|
305
380
|
},
|
|
306
381
|
],
|
|
307
|
-
"@stylistic/
|
|
382
|
+
"@stylistic/quotes": [
|
|
308
383
|
`error`,
|
|
309
384
|
`backtick`,
|
|
310
385
|
],
|
|
311
|
-
"@stylistic/
|
|
312
|
-
|
|
313
|
-
`never`,
|
|
314
|
-
],
|
|
315
|
-
"@stylistic/js/semi": [
|
|
386
|
+
"@stylistic/rest-spread-spacing": `error`,
|
|
387
|
+
"@stylistic/semi": [
|
|
316
388
|
`error`,
|
|
317
389
|
`never`,
|
|
318
390
|
{
|
|
319
391
|
beforeStatementContinuationChars: `always`,
|
|
320
392
|
},
|
|
321
393
|
],
|
|
322
|
-
"@stylistic/
|
|
394
|
+
"@stylistic/semi-spacing": [
|
|
323
395
|
`error`,
|
|
324
396
|
{
|
|
325
397
|
before: false,
|
|
326
398
|
after: true,
|
|
327
399
|
},
|
|
328
400
|
],
|
|
329
|
-
"@stylistic/
|
|
401
|
+
"@stylistic/semi-style": [
|
|
330
402
|
`error`,
|
|
331
403
|
`first`,
|
|
332
404
|
],
|
|
333
|
-
"@stylistic/
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
"@stylistic/
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
"@stylistic/
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
"@stylistic/
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
before: false,
|
|
358
|
-
after: true,
|
|
359
|
-
},
|
|
360
|
-
],
|
|
361
|
-
"@stylistic/js/template-curly-spacing": [
|
|
362
|
-
`error`,
|
|
363
|
-
`never`,
|
|
364
|
-
],
|
|
365
|
-
"@stylistic/js/template-tag-spacing": [
|
|
366
|
-
`error`,
|
|
367
|
-
`never`,
|
|
368
|
-
],
|
|
369
|
-
"@stylistic/js/wrap-iife": [
|
|
370
|
-
`error`,
|
|
371
|
-
`outside`,
|
|
372
|
-
],
|
|
373
|
-
"@stylistic/js/wrap-regex": [`error`],
|
|
374
|
-
"@stylistic/js/yield-star-spacing": [
|
|
375
|
-
`error`,
|
|
376
|
-
`before`,
|
|
377
|
-
],
|
|
405
|
+
"@stylistic/space-before-blocks": `error`,
|
|
406
|
+
"@stylistic/space-before-function-paren": `error`,
|
|
407
|
+
"@stylistic/space-in-parens": `error`,
|
|
408
|
+
"@stylistic/space-infix-ops": `error`,
|
|
409
|
+
"@stylistic/space-unary-ops": `error`,
|
|
410
|
+
"@stylistic/spaced-comment": `error`,
|
|
411
|
+
"@stylistic/switch-colon-spacing": `error`,
|
|
412
|
+
"@stylistic/template-curly-spacing": `error`,
|
|
413
|
+
"@stylistic/template-tag-spacing": `error`,
|
|
414
|
+
"@stylistic/type-annotation-spacing": `error`,
|
|
415
|
+
"@stylistic/type-generic-spacing": `error`,
|
|
416
|
+
"@stylistic/type-named-tuple-spacing": `error`,
|
|
417
|
+
"@stylistic/wrap-iife": `error`,
|
|
418
|
+
"@stylistic/wrap-regex": `error`,
|
|
419
|
+
"@stylistic/yield-star-spacing": `error`,
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
plugins: {
|
|
424
|
+
"enough-is-enough": enoughIsEnough,
|
|
425
|
+
},
|
|
426
|
+
rules: {
|
|
427
|
+
"enough-is-enough/no-multiline-named-imports": `error`,
|
|
428
|
+
"enough-is-enough/no-single-quotes-in-imports-and-object-keys": `error`,
|
|
378
429
|
},
|
|
379
430
|
},
|
|
380
431
|
]
|
package/package.json
CHANGED
|
@@ -1,60 +1,55 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"preversion": "pnpm test",
|
|
57
|
-
"version": "update-changelog",
|
|
58
|
-
"postversion": "pnpm publish --provenance --access public --no-git-checks"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
2
|
+
"name": "@firefoxic/eslint-config",
|
|
3
|
+
"description": "Shared config for eslint by firefoxic.",
|
|
4
|
+
"version": "6.0.1",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Sergey Artemov",
|
|
8
|
+
"email": "firefoxic.dev@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/firefoxic/eslint-config#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/firefoxic/eslint-config/issues"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/firefoxic/eslint-config.git"
|
|
17
|
+
},
|
|
18
|
+
"type": "module",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=20.19"
|
|
21
|
+
},
|
|
22
|
+
"exports": {
|
|
23
|
+
"default": "./lib/index.js",
|
|
24
|
+
"types": "./lib/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"./lib/**/*.d.ts",
|
|
28
|
+
"./lib/**/*.js"
|
|
29
|
+
],
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"eslint": "^9.39.2"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@stylistic/eslint-plugin": "^5.7.0",
|
|
35
|
+
"eslint-plugin-prefer-let": "^4.0.1",
|
|
36
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
37
|
+
"globals": "^17.0.0"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"help": "make help",
|
|
41
|
+
"eslint": "eslint"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"eslint": "^9.39.2"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"config",
|
|
48
|
+
"eslint",
|
|
49
|
+
"javascript",
|
|
50
|
+
"js",
|
|
51
|
+
"lint",
|
|
52
|
+
"linter",
|
|
53
|
+
"linting"
|
|
54
|
+
]
|
|
55
|
+
}
|