-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
eslint.config.js
60 lines (59 loc) · 1.41 KB
/
eslint.config.js
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
57
58
59
60
import cspellConfigs from '@cspell/eslint-plugin/configs'
import js from '@eslint/js'
import jsdoc from 'eslint-plugin-jsdoc'
import perfectionist from 'eslint-plugin-perfectionist'
import neostandard, { plugins } from 'neostandard'
export default [
{
ignores: ['docs/**', 'package/**'],
},
cspellConfigs.recommended,
{
rules: {
'@cspell/spellchecker': [
'warn',
{
autoFix: true,
cspell: {
words: [
'evanwashere',
'fastly',
'lagon',
'lockdown',
'quickjs',
'moddable',
'neostandard',
'spidermonkey',
'workerd',
],
},
},
],
},
},
js.configs.recommended,
jsdoc.configs['flat/recommended-typescript'],
...plugins['typescript-eslint'].config(
{
extends: [
...plugins['typescript-eslint'].configs.strictTypeChecked,
...plugins['typescript-eslint'].configs.stylisticTypeChecked,
],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: ['**/*.js', '**/*.mjs', '**/*.cjs'],
...plugins['typescript-eslint'].configs.disableTypeChecked,
}
),
perfectionist.configs['recommended-natural'],
...neostandard({
noJsx: true,
ts: true,
}),
]