-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy patheslint.config.js
More file actions
112 lines (111 loc) · 2.52 KB
/
eslint.config.js
File metadata and controls
112 lines (111 loc) · 2.52 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import antfu from '@antfu/eslint-config'
import stylistic from '@stylistic/eslint-plugin'
import command from 'eslint-plugin-command/config'
import deMorgan from 'eslint-plugin-de-morgan'
import eslintPluginJsonc from 'eslint-plugin-jsonc'
import packageJson from 'eslint-plugin-package-json'
// @ts-check
/// <reference path="./eslint-typegen.d.ts" />
import typegen from 'eslint-typegen'
export default typegen(antfu(
{
stylistic: false,
},
stylistic.configs.customize({
arrowParens: true,
braceStyle: '1tbs',
quoteProps: 'as-needed',
}),
{
name: 'style',
rules: {
'@stylistic/multiline-ternary': ['off'],
'@stylistic/no-extra-semi': 'off',
'no-extra-semi': 'off',
'@stylistic/switch-colon-spacing': 'warn',
'@stylistic/quotes': [1, 'single', { avoidEscape: true, allowTemplateLiterals: 'always' }],
'unused-imports/no-unused-vars': 'off',
'prefer-arrow-callback': 'off',
curly: ['error', 'multi-line'],
'style/curly-newline': ['warn', {
multiline: true,
minElements: 1,
consistent: true,
}],
'jsonc/indent': ['warn', 2],
'style/operator-linebreak': [
'warn',
'before',
{
overrides: {
'=': 'after',
},
},
],
'style/lines-between-class-members': ['off'],
},
},
...eslintPluginJsonc.configs['flat/recommended-with-jsonc'],
packageJson.configs.recommended,
{
rules: {
'package-json/order-properties': [0],
/*
'package-json/sort-collections': [
'warn',
[
'dependencies',
'devDependencies',
'peerDependencies',
],
],
*/
},
},
command(),
{
name: 'root/perfectionist',
rules: {
'perfectionist/sort-imports': [
'warn',
{
type: 'natural',
internalPattern: ['^@/.+'],
},
],
},
},
{
files: ['**/*.toml', '**/*.y?(a)ml'],
rules: {
'style/spaced-comment': 'off',
},
},
deMorgan.configs.recommended,
{
settings: {
regexp: {
allowedCharacterRanges: ['alphanumeric', 'À-ÿ', 'À-Þ'],
},
},
},
{
rules: {
'ts/ban-ts-comment': 'off',
'ts/consistent-type-definitions': 'off',
'unicorn/throw-new-error': 'off',
},
},
{
files: ['tsconfig.json', 'tsconfig.*.json'],
rules: {
'jsonc/sort-keys': 'off',
},
},
{
ignores: [
'**/schema/*.d.ts',
'**/eslint-typegen.d.ts',
],
},
))