-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy patheslint.config.js
More file actions
93 lines (92 loc) · 2.55 KB
/
Copy patheslint.config.js
File metadata and controls
93 lines (92 loc) · 2.55 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import js from '@eslint/js'
import typescript from '@typescript-eslint/eslint-plugin'
import typescriptParser from '@typescript-eslint/parser'
import svelte from 'eslint-plugin-svelte'
import svelteParser from 'svelte-eslint-parser'
export default [
js.configs.recommended,
{
files: [`**/*.{js,ts,svelte}`],
languageOptions: {
ecmaVersion: 2020,
sourceType: `module`,
globals: {
browser: `readonly`,
node: `readonly`,
window: `readonly`,
document: `readonly`,
console: `readonly`,
fetch: `readonly`,
localStorage: `readonly`,
sessionStorage: `readonly`,
location: `readonly`,
process: `readonly`,
setTimeout: `readonly`,
clearTimeout: `readonly`,
setInterval: `readonly`,
clearInterval: `readonly`,
URLSearchParams: `readonly`,
FileReader: `readonly`,
Buffer: `readonly`,
Response: `readonly`,
HTMLElement: `readonly`,
HTMLDivElement: `readonly`,
HTMLInputElement: `readonly`,
HTMLLabelElement: `readonly`,
KeyboardEvent: `readonly`,
Event: `readonly`,
},
parser: typescriptParser,
parserOptions: {
ecmaVersion: 2020,
sourceType: `module`,
},
},
plugins: {
'@typescript-eslint': typescript,
svelte: svelte,
},
rules: {
...typescript.configs.recommended.rules,
...svelte.configs.recommended.rules,
indent: [`error`, 2, { SwitchCase: 1 }],
quotes: [`error`, `backtick`, { avoidEscape: true }],
semi: [`error`, `never`],
'linebreak-style': [`error`, `unix`],
'no-console': [`error`, { allow: [`warn`, `error`, `debug`] }],
'no-var': `error`,
'@typescript-eslint/no-inferrable-types': `off`,
'@typescript-eslint/no-unused-vars': [
`error`,
{ argsIgnorePattern: `^_`, varsIgnorePattern: `^_` },
],
'svelte/no-at-html-tags': `off`,
'no-inner-declarations': `off`,
},
},
{
files: [`**/*.svelte`],
languageOptions: {
parser: svelteParser,
parserOptions: {
parser: typescriptParser,
},
},
},
{
files: [`**/*.d.ts`],
rules: {
quotes: `off`,
},
},
{
files: [`tests/**/*`, `**/*.test.{js,ts}`],
rules: {
'no-console': `off`, // Allow console statements in test files
'@typescript-eslint/no-explicit-any': `warn`, // Relax any usage in tests
},
},
{
ignores: [`build/`, `dist/`, `.svelte-kit/`, `node_modules/`, `*.config.*`],
},
]