@mikey-pro/eslint-config 3.2.9 → 3.2.10

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/index.cjs +0 -528
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikey-pro/eslint-config",
3
- "version": "3.2.9",
3
+ "version": "3.2.10",
4
4
  "description": "Mikey Pro ESLint configuration",
5
5
  "main": "index.cjs",
6
6
  "dependencies": {
package/index.cjs DELETED
@@ -1,528 +0,0 @@
1
- module.exports = {
2
- extends: [
3
- 'airbnb',
4
- 'standard',
5
- 'eslint:recommended',
6
- 'plugin:unicorn/all',
7
- 'plugin:github/recommended',
8
- 'plugin:jsx-a11y/recommended',
9
- 'plugin:sonarjs/recommended',
10
- 'plugin:compat/recommended',
11
- 'plugin:css-modules/recommended',
12
- 'plugin:prettier/recommended',
13
- ],
14
- overrides: [
15
- {
16
- files: ['*.ts'],
17
- parser: '@typescript-eslint/parser',
18
- parserOptions: {
19
- tsconfigRootDir: __dirname,
20
- project: ['../../../tsconfig.json'],
21
- extraFileExtensions: ['.vue', '.svelte'],
22
- sourceType: 'module',
23
- ecmaVersion: 'latest',
24
- ecmaFeatures: {
25
- jsx: true,
26
- },
27
- },
28
- plugins: ['@typescript-eslint'],
29
- extends: [
30
- 'airbnb-typescript',
31
- 'plugin:@typescript-eslint/recommended',
32
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
33
- ],
34
- rules: {
35
- 'import/named': 0,
36
- 'import/namespace': 0,
37
- 'import/default': 0,
38
- 'import/no-named-as-default-member': 0,
39
- '@typescript-eslint/indent': 0,
40
- '@typescript-eslint/naming-convention': 0,
41
- 'prettier/prettier': [2, { parser: 'typescript' }],
42
- },
43
- },
44
- {
45
- files: ['*.tsx'],
46
- parser: '@typescript-eslint/parser',
47
- extends: [
48
- 'airbnb-typescript',
49
- 'plugin:react/recommended',
50
- 'plugin:react-hooks/recommended',
51
- 'plugin:@typescript-eslint/recommended',
52
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
53
- ],
54
- plugins: ['@typescript-eslint', 'react', 'react-hooks'],
55
- parserOptions: {
56
- tsconfigRootDir: __dirname,
57
- project: ['../../../tsconfig.json'],
58
- extraFileExtensions: ['.vue', '.svelte'],
59
- sourceType: 'module',
60
- ecmaVersion: 'latest',
61
- ecmaFeatures: {
62
- jsx: true,
63
- },
64
- },
65
- rules: {
66
- 'import/named': 0,
67
- 'import/namespace': 0,
68
- 'import/default': 0,
69
- 'import/no-named-as-default-member': 0,
70
- '@typescript-eslint/naming-convention': 0,
71
- '@typescript-eslint/indent': 0,
72
- 'react/state-in-constructor': 0,
73
- 'react/no-deprecated': 2,
74
- 'react/react-in-jsx-scope': 0,
75
- 'react/display-name': [1, { ignoreTranspilerName: false }],
76
- 'react/jsx-no-bind': [
77
- 1,
78
- {
79
- ignoreRefs: true,
80
- allowFunctions: true,
81
- allowArrowFunctions: true,
82
- },
83
- ],
84
- 'react/no-string-refs': 2,
85
- 'react/no-find-dom-node': 2,
86
- 'react/jsx-no-comment-textnodes': 2,
87
- 'react/jsx-curly-spacing': 2,
88
- 'react/jsx-no-undef': 2,
89
- 'react/jsx-uses-react': 2,
90
- 'react/jsx-uses-vars': 2,
91
- 'react/function-component-definition': 0,
92
- 'react/jsx-no-duplicate-props': 2,
93
- 'react/jsx-no-target-blank': 2,
94
- 'react/jsx-tag-spacing': [2, { beforeSelfClosing: 'always' }],
95
- 'react/jsx-key': [2, { checkFragmentShorthand: true }],
96
- 'react/self-closing-comp': 2,
97
- 'react/prefer-es6-class': 2,
98
- 'react/prefer-stateless-function': 1,
99
- 'react/require-render-return': 2,
100
- 'react/no-danger': 1,
101
- 'react/no-did-mount-set-state': 2,
102
- 'react/no-did-update-set-state': 2,
103
- 'react/no-is-mounted': 2,
104
- 'react-hooks/rules-of-hooks': 2,
105
- 'react-hooks/exhaustive-deps': 1,
106
- 'prettier/prettier': [2, { parser: 'typescript' }],
107
- },
108
- },
109
- {
110
- files: ['*.css'],
111
- rules: {
112
- 'prettier/prettier': [2, { parser: 'css' }],
113
- },
114
- },
115
- {
116
- files: ['*.scss'],
117
- rules: {
118
- 'prettier/prettier': [2, { parser: 'scss' }],
119
- },
120
- },
121
- {
122
- files: ['*.less'],
123
- rules: {
124
- 'prettier/prettier': [2, { parser: 'less' }],
125
- },
126
- },
127
- {
128
- files: ['*.yaml', '*.yml'],
129
- plugins: ['yaml'],
130
- extends: ['plugin:yaml/recommended'],
131
- rules: {
132
- 'prettier/prettier': [2, { parser: 'yaml' }],
133
- },
134
- },
135
- {
136
- files: ['*.toml'],
137
- parser: 'toml-eslint-parser',
138
- extends: ['plugin:toml/standard'],
139
- rules: {
140
- 'prettier/prettier': 0,
141
- },
142
- },
143
- {
144
- files: ['*.jsx'],
145
- extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'],
146
- plugins: ['react', 'react-hooks'],
147
- parser: '@babel/eslint-parser',
148
- parserOptions: {
149
- requireConfigFile: false,
150
- ecmaVersion: 'latest',
151
- sourceType: 'module',
152
- babelOptions: {
153
- presets: [
154
- [
155
- '@babel/preset-env',
156
- {
157
- targets: {
158
- node: 'current',
159
- },
160
- },
161
- ],
162
- '@babel/preset-react',
163
- 'airbnb',
164
- ],
165
- },
166
- },
167
- rules: {
168
- 'react/no-deprecated': 2,
169
- 'react/react-in-jsx-scope': 0,
170
- 'react/display-name': [1, { ignoreTranspilerName: false }],
171
- 'react/jsx-no-bind': [
172
- 1,
173
- {
174
- ignoreRefs: true,
175
- allowFunctions: true,
176
- allowArrowFunctions: true,
177
- },
178
- ],
179
- 'react/no-string-refs': 2,
180
- 'react/no-find-dom-node': 2,
181
- 'react/jsx-no-comment-textnodes': 2,
182
- 'react/jsx-curly-spacing': 2,
183
- 'react/jsx-no-undef': 2,
184
- 'react/jsx-uses-react': 2,
185
- 'react/jsx-uses-vars': 2,
186
- 'react/function-component-definition': 0,
187
- 'react/state-in-constructor': 0,
188
- 'react/jsx-no-duplicate-props': 2,
189
- 'react/jsx-no-target-blank': 2,
190
- 'react/jsx-tag-spacing': [2, { beforeSelfClosing: 'always' }],
191
- 'react/jsx-key': [2, { checkFragmentShorthand: true }],
192
- 'react/self-closing-comp': 2,
193
- 'react/prefer-es6-class': 2,
194
- 'react/prefer-stateless-function': 1,
195
- 'react/require-render-return': 2,
196
- 'react/no-danger': 1,
197
- 'react/no-did-mount-set-state': 2,
198
- 'react/no-did-update-set-state': 2,
199
- 'react/no-is-mounted': 2,
200
- 'react-hooks/rules-of-hooks': 2,
201
- 'react-hooks/exhaustive-deps': 1,
202
- },
203
- },
204
- {
205
- files: ['*.md'],
206
- parser: 'markdown-eslint-parser',
207
- extends: ['plugin:md/recommended'],
208
- rules: {
209
- 'md/remark': [
210
- 2,
211
- {
212
- plugins: [
213
- 'preset-lint-markdown-style-guide',
214
- ['lint-emphasis-marker', '_'],
215
- ],
216
- },
217
- ],
218
- 'prettier/prettier': [2, { parser: 'markdown' }],
219
- },
220
- },
221
- {
222
- files: ['*.md.json'],
223
- rules: {
224
- 'prettier/prettier': [2, { parser: 'json' }],
225
- },
226
- },
227
- {
228
- files: ['*.html'],
229
- parser: '@html-eslint/parser',
230
- extends: ['plugin:@html-eslint/recommended'],
231
- plugins: ['@html-eslint'],
232
- rules: {
233
- 'spaced-comment': 0,
234
- '@html-eslint/indent': 0,
235
- '@html-eslint/no-extra-spacing-attrs': 0,
236
- '@html-eslint/require-closing-tags': 0,
237
- 'disable-autofix/@html-eslint/require-closing-tags': [
238
- 2,
239
- { selfClosing: 'always' },
240
- ],
241
- 'prettier/prettier': [2, { parser: 'html' }],
242
- },
243
- },
244
- {
245
- files: ['*.vue'],
246
- parser: 'vue-eslint-parser',
247
- extends: ['plugin:vue/vue3-recommended', '@vue/airbnb'],
248
- parserOptions: {
249
- requireConfigFile: false,
250
- ecmaVersion: 'latest',
251
- sourceType: 'module',
252
- babelOptions: {
253
- presets: [
254
- [
255
- '@babel/preset-env',
256
- {
257
- targets: {
258
- node: 'current',
259
- },
260
- },
261
- ],
262
- ],
263
- plugins: [
264
- 'eslint-plugin-vue',
265
- [
266
- '@babel/plugin-transform-react-jsx',
267
- {
268
- pragma: 'h',
269
- pragmaFrag: 'Fragment',
270
- },
271
- ],
272
- ],
273
- },
274
- },
275
- rules: {
276
- 'vue/html-self-closing': [
277
- 2,
278
- {
279
- html: {
280
- void: 'always',
281
- normal: 'always',
282
- component: 'always',
283
- },
284
- svg: 'always',
285
- math: 'always',
286
- },
287
- ],
288
- 'vue/component-tags-order': [
289
- 2,
290
- {
291
- order: [['script', 'template'], 'style'],
292
- },
293
- ],
294
- 'prettier/prettier': 0,
295
- },
296
- },
297
- {
298
- files: ['*.svelte'],
299
- processor: 'svelte3/svelte3',
300
- plugins: ['svelte3'],
301
- rules: {
302
- 'import/first': 0,
303
- 'import/no-duplicates': 0,
304
- 'import/no-mutable-exports': 0,
305
- 'import/no-unresolved': 0,
306
- 'prettier/prettier': 0,
307
- },
308
- },
309
- {
310
- files: ['*.json', '*.jsonc', '*rc'],
311
- extends: ['plugin:jsonc/all'],
312
- parser: 'jsonc-eslint-parser',
313
- plugins: ['json-format'],
314
- rules: {
315
- 'prettier/prettier': [2, { parser: 'json' }],
316
- },
317
- },
318
- {
319
- files: ['*.json5'],
320
- extends: ['plugin:jsonc/all'],
321
- parser: 'jsonc-eslint-parser',
322
- rules: {
323
- 'prettier/prettier': [2, { parser: 'json5' }],
324
- },
325
- },
326
- ],
327
- env: {
328
- browser: true,
329
- node: true,
330
- es6: true,
331
- commonjs: true,
332
- es2021: true,
333
- },
334
- rules: {
335
- 'no-restricted-syntax': [
336
- 2,
337
- {
338
- selector: 'ForInStatement',
339
- message:
340
- 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.',
341
- },
342
- {
343
- selector: 'LabeledStatement',
344
- message:
345
- 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.',
346
- },
347
- {
348
- selector: 'WithStatement',
349
- message:
350
- '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.',
351
- },
352
- ],
353
- camelcase: 0,
354
- 'no-console': 0,
355
- 'func-names': 0,
356
- 'no-process-exit': 0,
357
- 'class-methods-use-this': 0,
358
- 'no-underscore-dangle': 0,
359
- 'import/no-unresolved': [
360
- 2,
361
- { commonjs: true, amd: true, ignore: ['^node:'] },
362
- ],
363
- 'import/order': [
364
- 2,
365
- {
366
- alphabetize: {
367
- order: 'asc',
368
- },
369
- 'newlines-between': 'always',
370
- },
371
- ],
372
- 'import/extensions': ['error', 'always', { ignorePackages: true }],
373
- 'eslint-comments/no-use': [
374
- 'error',
375
- { allow: ['eslint-disable', 'eslint-disable-next-line'] },
376
- ],
377
- 'prefer-destructuring': [
378
- 'error',
379
- {
380
- object: true,
381
- array: false,
382
- },
383
- ],
384
- 'keyword-spacing': 2,
385
- 'require-atomic-updates': 0,
386
- 'import/no-commonjs': 0,
387
- 'sort-imports': 0,
388
- 'constructor-super': 2,
389
- 'no-caller': 2,
390
- 'no-const-assign': 2,
391
- 'no-delete-var': 2,
392
- 'no-dupe-class-members': 2,
393
- 'no-dupe-keys': 2,
394
- 'no-duplicate-imports': 2,
395
- 'no-else-return': 1,
396
- 'no-empty-pattern': 0,
397
- 'no-empty': 0,
398
- 'no-extra-parens': 0,
399
- 'no-iterator': 2,
400
- 'no-lonely-if': 2,
401
- 'no-mixed-spaces-and-tabs': [1, 'smart-tabs'],
402
- 'no-multi-str': 1,
403
- 'no-new-wrappers': 2,
404
- 'no-proto': 2,
405
- 'no-redeclare': 2,
406
- 'no-shadow-restricted-names': 2,
407
- 'no-shadow': 0,
408
- 'no-spaced-func': 2,
409
- 'no-this-before-super': 2,
410
- 'no-undef-init': 2,
411
- 'no-unneeded-ternary': 2,
412
- 'no-unused-vars': [
413
- 2,
414
- {
415
- args: 'after-used',
416
- ignoreRestSiblings: true,
417
- },
418
- ],
419
- 'no-useless-call': 1,
420
- 'no-useless-computed-key': 1,
421
- 'no-useless-concat': 1,
422
- 'no-useless-constructor': 1,
423
- 'no-useless-escape': 1,
424
- 'no-useless-rename': 1,
425
- 'no-var': 1,
426
- 'no-with': 2,
427
- semi: 0,
428
- strict: [2, 'never'],
429
- 'object-curly-spacing': [0, 'always'],
430
- 'rest-spread-spacing': 0,
431
- 'space-before-function-paren': [0, 'always'],
432
- 'space-in-parens': [0, 'never'],
433
- 'object-shorthand': 1,
434
- 'prefer-arrow-callback': 1,
435
- 'prefer-rest-params': 1,
436
- 'prefer-spread': 1,
437
- 'prefer-template': 1,
438
- quotes: [
439
- 0,
440
- 'single',
441
- {
442
- avoidEscape: true,
443
- allowTemplateLiterals: true,
444
- },
445
- ],
446
- 'quote-props': [2, 'as-needed'],
447
- radix: 1,
448
- 'unicode-bom': 2,
449
- 'valid-jsdoc': 0,
450
- 'spaced-comment': [
451
- 2,
452
- 'always',
453
- {
454
- line: {
455
- markers: ['/'],
456
- exceptions: ['-', '+'],
457
- },
458
- block: {
459
- markers: ['!'],
460
- exceptions: ['*'],
461
- balanced: true,
462
- },
463
- },
464
- ],
465
- 'unicorn/import-index': [2, { ignoreImports: true }],
466
- 'filenames/match-regex': 0,
467
- 'unicorn/filename-case': [
468
- 2,
469
- {
470
- cases: {
471
- camelCase: true,
472
- pascalCase: true,
473
- },
474
- ignore: ['README.md'],
475
- },
476
- ],
477
- 'prettier/prettier': [2, { parser: 'babel' }],
478
- },
479
- plugins: [
480
- 'import',
481
- 'prettier',
482
- 'css-modules',
483
- 'disable-autofix',
484
- '@babel',
485
- 'unicorn',
486
- 'sonarjs',
487
- 'github',
488
- ],
489
- ignorePatterns: [
490
- '!.*',
491
- 'node_modules',
492
- 'vendor',
493
- 'dist',
494
- 'package-lock.json',
495
- 'LICENSE',
496
- '.vscode',
497
- '.github',
498
- 'tsconfig.json',
499
- ],
500
- root: true,
501
- settings: {
502
- 'json/sort-package-json': 'pro',
503
- polyfills: ['Promise'],
504
- react: {
505
- pragma: 'h',
506
- version: 'preact',
507
- },
508
- },
509
- parser: '@babel/eslint-parser',
510
- parserOptions: {
511
- requireConfigFile: false,
512
- ecmaVersion: 'latest',
513
- sourceType: 'module',
514
- babelOptions: {
515
- presets: [
516
- [
517
- '@babel/preset-env',
518
- {
519
- targets: {
520
- node: 'current',
521
- },
522
- },
523
- ],
524
- 'airbnb',
525
- ],
526
- },
527
- },
528
- };