-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy patheslint.config.js
More file actions
50 lines (42 loc) · 1.06 KB
/
eslint.config.js
File metadata and controls
50 lines (42 loc) · 1.06 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
import neostandard, { resolveIgnoresFromGitignore } from 'neostandard'
// Used for editors and canary testing
const ignores = resolveIgnoresFromGitignore()
const clientFiles = ['packages/web/client/**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}']
const clientPrefix = 'packages/web/client/'
const extraTsFiles = ['**/*.cts', '**/*.mts']
const scopeToClient = (config) => {
if (config.ignores && Object.keys(config).length === 1) {
return config
}
if (config.files) {
return {
...config,
files: config.files.map((pattern) => `${clientPrefix}${pattern}`),
}
}
return {
...config,
files: clientFiles,
}
}
const excludeClient = (config) => {
if (config.ignores && Object.keys(config).length === 1) {
return config
}
return {
...config,
ignores: [...(config.ignores || []), 'packages/web/client/**'],
}
}
export default [
{ ignores },
...neostandard({
ts: true,
filesTs: extraTsFiles,
}).map(excludeClient),
...neostandard({
ts: true,
env: ['browser'],
filesTs: extraTsFiles,
}).map(scopeToClient),
]