@kitql/eslint-config 0.5.5 → 0.5.6
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.
- package/.prettierrc.mjs +6 -1
- package/eslint.config.d.ts +17 -0
- package/eslint.config.js +111 -82
- package/package.json +2 -1
package/.prettierrc.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import prettierConfig from '@theguild/prettier-config'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const config = {
|
|
4
4
|
...prettierConfig,
|
|
5
5
|
tabWidth: 1,
|
|
6
6
|
useTabs: true,
|
|
@@ -39,3 +39,8 @@ export default {
|
|
|
39
39
|
},
|
|
40
40
|
],
|
|
41
41
|
}
|
|
42
|
+
export default config
|
|
43
|
+
|
|
44
|
+
export const kitql = () => {
|
|
45
|
+
return config
|
|
46
|
+
}
|
package/eslint.config.d.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Linter } from 'eslint'
|
|
2
|
+
|
|
3
|
+
export default config
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* KitQL's ESLint configuration with customizable options
|
|
7
|
+
*
|
|
8
|
+
* @param options - Configuration options
|
|
9
|
+
* @returns ESLint configuration array
|
|
10
|
+
*/
|
|
11
|
+
export function kitql(options?: {
|
|
12
|
+
/**
|
|
13
|
+
* Whether to include pnpm catalogs rules
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
pnpmCatalogs?: boolean
|
|
17
|
+
}): Linter.Config[]
|
package/eslint.config.js
CHANGED
|
@@ -9,68 +9,18 @@ import ts from 'typescript-eslint'
|
|
|
9
9
|
|
|
10
10
|
import { findFileOrUp } from './helper/findFileOrUp.js'
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{
|
|
12
|
+
const rulePrettierIgnore = ({ pnpmCatalogs = true }) => {
|
|
13
|
+
const pathPrettierIgnore = findFileOrUp('.prettierignore', { absolute: true })
|
|
14
|
+
const rowIgnore = pathPrettierIgnore ? includeIgnoreFile(pathPrettierIgnore).ignores : []
|
|
15
|
+
const ignores = pnpmCatalogs ? rowIgnore.filter((c) => !c.includes('package.json')) : rowIgnore
|
|
16
|
+
return {
|
|
17
17
|
name: '@kitql:prettier:ignores',
|
|
18
|
-
ignores
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'eslint/defaults/recommended',
|
|
24
|
-
...js.configs.recommended, // TODO, would be nice to have a name by default?
|
|
25
|
-
},
|
|
26
|
-
...ts.configs.recommended,
|
|
27
|
-
...svelte.configs['flat/recommended'],
|
|
28
|
-
{
|
|
29
|
-
name: '@kitql:languages',
|
|
30
|
-
languageOptions: {
|
|
31
|
-
globals: {
|
|
32
|
-
...globals.browser,
|
|
33
|
-
...globals.node,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: '@kitql:svelte:languages',
|
|
39
|
-
files: ['**/*.svelte'],
|
|
40
|
-
languageOptions: {
|
|
41
|
-
parserOptions: {
|
|
42
|
-
parser: ts.parser,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: '@kitql:ignores',
|
|
48
|
-
ignores: ['build/', '.svelte-kit/', 'dist/', '**/build/', '**/.svelte-kit/', '**/dist/'],
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: '@kitql:unused-imports',
|
|
52
|
-
plugins: {
|
|
53
|
-
'unused-imports': unusedImports,
|
|
54
|
-
},
|
|
55
|
-
rules: {
|
|
56
|
-
'no-unused-vars': 'off',
|
|
57
|
-
'@typescript-eslint/no-unused-vars': 'off',
|
|
18
|
+
ignores,
|
|
19
|
+
}
|
|
20
|
+
}
|
|
58
21
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// 'unused-imports/no-unused-vars': [
|
|
62
|
-
// 'warn',
|
|
63
|
-
// {
|
|
64
|
-
// vars: 'all',
|
|
65
|
-
// varsIgnorePattern: '^_',
|
|
66
|
-
// args: 'after-used',
|
|
67
|
-
// argsIgnorePattern: '^_',
|
|
68
|
-
// },
|
|
69
|
-
// ],
|
|
70
|
-
'no-empty': ['error', { allowEmptyCatch: true }],
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
{
|
|
22
|
+
const rulePnpmCatalogs = () => {
|
|
23
|
+
return {
|
|
74
24
|
name: 'pnpm-catalogs:package.json',
|
|
75
25
|
files: ['package.json'],
|
|
76
26
|
languageOptions: {
|
|
@@ -83,34 +33,113 @@ export const config = [
|
|
|
83
33
|
'pnpm-catalogs/enforce-catalog': 'error',
|
|
84
34
|
'pnpm-catalogs/valid-catalog': 'error',
|
|
85
35
|
},
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const othersRules = () => {
|
|
40
|
+
return [
|
|
41
|
+
{
|
|
42
|
+
name: 'eslint/defaults/recommended',
|
|
43
|
+
...js.configs.recommended, // TODO, would be nice to have a name by default?
|
|
44
|
+
},
|
|
45
|
+
...ts.configs.recommended,
|
|
46
|
+
...svelte.configs['flat/recommended'],
|
|
47
|
+
{
|
|
48
|
+
name: '@kitql:languages',
|
|
49
|
+
languageOptions: {
|
|
50
|
+
globals: {
|
|
51
|
+
...globals.browser,
|
|
52
|
+
...globals.node,
|
|
94
53
|
},
|
|
95
|
-
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: '@kitql:svelte:languages',
|
|
58
|
+
files: ['**/*.svelte'],
|
|
59
|
+
languageOptions: {
|
|
60
|
+
parserOptions: {
|
|
61
|
+
parser: ts.parser,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: '@kitql:ignores',
|
|
67
|
+
ignores: ['build/', '.svelte-kit/', 'dist/', '**/build/', '**/.svelte-kit/', '**/dist/'],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: '@kitql:unused-imports',
|
|
71
|
+
plugins: {
|
|
72
|
+
'unused-imports': unusedImports,
|
|
73
|
+
},
|
|
74
|
+
rules: {
|
|
75
|
+
'no-unused-vars': 'off',
|
|
76
|
+
'@typescript-eslint/no-unused-vars': 'off',
|
|
96
77
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
78
|
+
'unused-imports/no-unused-imports': 'error',
|
|
79
|
+
'unused-imports/no-unused-vars': 'off',
|
|
80
|
+
// 'unused-imports/no-unused-vars': [
|
|
81
|
+
// 'warn',
|
|
82
|
+
// {
|
|
83
|
+
// vars: 'all',
|
|
84
|
+
// varsIgnorePattern: '^_',
|
|
85
|
+
// args: 'after-used',
|
|
86
|
+
// argsIgnorePattern: '^_',
|
|
87
|
+
// },
|
|
88
|
+
// ],
|
|
89
|
+
'no-empty': ['error', { allowEmptyCatch: true }],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: '@kitql:rules',
|
|
94
|
+
rules: {
|
|
95
|
+
'no-console': [
|
|
96
|
+
'error',
|
|
97
|
+
{
|
|
98
|
+
allow: ['info', 'warn', 'error', 'time', 'timeEnd', 'dir'],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
104
101
|
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
'@typescript-eslint/no-require-imports': 'off',
|
|
103
|
+
'@typescript-eslint/ban-ts-ignore': 'off',
|
|
104
|
+
'@typescript-eslint/ban-ts-comment': 'off',
|
|
105
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
106
|
+
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
107
|
+
'@typescript-eslint/no-unused-expressions': 'off',
|
|
108
|
+
'@typescript-eslint/no-empty-object-type': 'off',
|
|
107
109
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
'no-undef': 'off',
|
|
111
|
+
'no-inner-declarations': 'off',
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
'svelte/no-at-html-tags': 'off',
|
|
114
|
+
'svelte/no-inner-declarations': 'off',
|
|
115
|
+
|
|
116
|
+
'svelte/require-each-key': 'warn',
|
|
117
|
+
},
|
|
112
118
|
},
|
|
113
|
-
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** @type {import('eslint').Linter.Config[]} */
|
|
123
|
+
const config = [
|
|
124
|
+
//
|
|
125
|
+
rulePrettierIgnore({ pnpmCatalogs: true }),
|
|
126
|
+
...othersRules(),
|
|
127
|
+
rulePnpmCatalogs(),
|
|
114
128
|
]
|
|
115
129
|
|
|
116
130
|
export default config
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @param {Object} options
|
|
134
|
+
* @param {boolean} options.pnpmCatalogs
|
|
135
|
+
* @returns {import('eslint').Linter.Config[]}
|
|
136
|
+
*/
|
|
137
|
+
export const kitql = (options) => {
|
|
138
|
+
const pnpmCatalogs = options?.pnpmCatalogs ?? true
|
|
139
|
+
return [
|
|
140
|
+
//
|
|
141
|
+
rulePrettierIgnore({ pnpmCatalogs }),
|
|
142
|
+
...othersRules(),
|
|
143
|
+
...(pnpmCatalogs ? [rulePnpmCatalogs()] : []),
|
|
144
|
+
]
|
|
145
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kitql/eslint-config",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "opinionated linting and formatting for projects",
|
|
6
6
|
"repository": {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"kitql-lint": "./cmd.js"
|
|
17
17
|
},
|
|
18
18
|
"main": "eslint.config.js",
|
|
19
|
+
"types": "eslint.config.d.ts",
|
|
19
20
|
"files": [
|
|
20
21
|
".prettierrc.mjs",
|
|
21
22
|
"cmd.js",
|