@alexlit/config-eslint 162.1.1 → 162.1.2
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/README.md +27 -27
- package/base.js +4 -1
- package/package.json +1 -1
- package/plugins/tailwindcss.js +10 -3
- package/plugins/vue-i18n.js +5 -4
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
# ESLint Configuration
|
|
2
|
+
|
|
1
3
|
[](https://www.npmjs.com/package/@alexlit/config-eslint)
|
|
2
4
|
[](https://npmx.dev/package/@alexlit/config-eslint)
|
|
3
5
|
[](LICENSE)
|
|
4
6
|
|
|
5
|
-
# ESLint Configuration
|
|
6
|
-
|
|
7
7
|
Готовая конфигурация [ESLint](https://eslint.org/) в формате flat config:
|
|
8
8
|
настроенные правила для JavaScript, TypeScript, Vue.js, JSON, YAML, импортов,
|
|
9
9
|
Prettier и не только - всё, что обычно приходится настраивать вручную. Вместо
|
|
@@ -82,31 +82,31 @@ export default defineConfig([
|
|
|
82
82
|
|
|
83
83
|
## Плагины
|
|
84
84
|
|
|
85
|
-
| Плагин | Что делает | Пакет
|
|
86
|
-
| --------------------------------- | --------------------------------------------- |
|
|
87
|
-
| `plugins.deMorgan()` | Упрощает логические выражения | `eslint-plugin-de-morgan`
|
|
88
|
-
| `plugins.importX()` | Проверяет импорты и модули | `eslint-plugin-import-x`
|
|
89
|
-
| `plugins.javascript()` | Базовые правила JavaScript | `@eslint/js`
|
|
90
|
-
| `plugins.jsdoc()` | Проверяет JSDoc-комментарии | `eslint-plugin-jsdoc`
|
|
91
|
-
| `plugins.json()` | Проверяет JSON, JSONC, JSON5 и YAML | `@eslint/json`
|
|
92
|
-
| `plugins.perfectionist()` | Сортирует импорты, объекты, интерфейсы и типы | `eslint-plugin-perfectionist`
|
|
93
|
-
| `plugins.pinia()` | Проверяет Pinia-хранилища | `eslint-plugin-pinia`
|
|
94
|
-
| `plugins.prettier()` | Форматирует код самим Prettier | `eslint-plugin-prettier`
|
|
95
|
-
| `plugins.prettierConfig()` | Отключает правила, конфликтующие с Prettier | `eslint-config-prettier`
|
|
96
|
-
| `plugins.regexp()` | Проверяет регулярные выражения | `eslint-plugin-regexp`
|
|
97
|
-
| `plugins.sonar()` | Проверяет код по правилам SonarJS | `eslint-plugin-sonarjs`
|
|
98
|
-
| `plugins.stylistic()` | Проверяет форматирование и стиль кода | `@stylistic/eslint-plugin`
|
|
99
|
-
| `plugins.tailwindcss()` | Проверяет классы Tailwind CSS | `eslint-plugin-tailwindcss`
|
|
100
|
-
| `plugins.tanstackQuery()` | Проверяет TanStack Query | `@tanstack/eslint-plugin-query`
|
|
101
|
-
| `plugins.typescript()` | Проверяет TypeScript без анализа типов | `typescript-eslint`
|
|
102
|
-
| `plugins.typescriptTypeChecked()` | Проверяет TypeScript с анализом типов | `typescript-eslint`
|
|
103
|
-
| `plugins.unicorn()` | Проверяет код по правилам unicorn | `eslint-plugin-unicorn`
|
|
104
|
-
| `plugins.unocss()` | Проверяет UnoCSS | `@unocss/eslint-config`
|
|
105
|
-
| `plugins.vitest()` | Проверяет тесты Vitest | `@vitest/eslint-plugin`
|
|
106
|
-
| `plugins.vue()` | Проверяет Vue.js-компоненты | `eslint-plugin-vue`
|
|
107
|
-
| `plugins.vueAccessibility()` | Проверяет доступность Vue.js-компонентов | `eslint-plugin-vuejs-accessibility`
|
|
108
|
-
| `plugins.vueI18n()` | Проверяет Vue.js I18n | `@intlify/eslint-plugin-vue-i18n`
|
|
109
|
-
| `plugins.zod()` | Проверяет Zod-схемы | `eslint-plugin-zod`
|
|
85
|
+
| Плагин | Что делает | Пакет |
|
|
86
|
+
| --------------------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
87
|
+
| `plugins.deMorgan()` | Упрощает логические выражения | [`eslint-plugin-de-morgan`](https://github.com/azat-io/eslint-plugin-de-morgan) |
|
|
88
|
+
| `plugins.importX()` | Проверяет импорты и модули | [`eslint-plugin-import-x`](https://github.com/un-ts/eslint-plugin-import-x) |
|
|
89
|
+
| `plugins.javascript()` | Базовые правила JavaScript | [`@eslint/js`](https://eslint.org/) |
|
|
90
|
+
| `plugins.jsdoc()` | Проверяет JSDoc-комментарии | [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) |
|
|
91
|
+
| `plugins.json()` | Проверяет JSON, JSONC, JSON5 и YAML | [`@eslint/json`](https://github.com/eslint/json) |
|
|
92
|
+
| `plugins.perfectionist()` | Сортирует импорты, объекты, интерфейсы и типы | [`eslint-plugin-perfectionist`](https://perfectionist.dev) |
|
|
93
|
+
| `plugins.pinia()` | Проверяет Pinia-хранилища | [`eslint-plugin-pinia`](https://github.com/lisilinhart/eslint-plugin-pinia) |
|
|
94
|
+
| `plugins.prettier()` | Форматирует код самим Prettier | [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) |
|
|
95
|
+
| `plugins.prettierConfig()` | Отключает правила, конфликтующие с Prettier | [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) |
|
|
96
|
+
| `plugins.regexp()` | Проверяет регулярные выражения | [`eslint-plugin-regexp`](https://github.com/ota-meshi/eslint-plugin-regexp) |
|
|
97
|
+
| `plugins.sonar()` | Проверяет код по правилам SonarJS | [`eslint-plugin-sonarjs`](https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md) |
|
|
98
|
+
| `plugins.stylistic()` | Проверяет форматирование и стиль кода | [`@stylistic/eslint-plugin`](https://eslint.style/) |
|
|
99
|
+
| `plugins.tailwindcss()` | Проверяет классы Tailwind CSS | [`eslint-plugin-tailwindcss`](https://github.com/francoismassart/eslint-plugin-tailwindcss) |
|
|
100
|
+
| `plugins.tanstackQuery()` | Проверяет TanStack Query | [`@tanstack/eslint-plugin-query`](https://tanstack.com/query/latest/docs/eslint/eslint-plugin-query) |
|
|
101
|
+
| `plugins.typescript()` | Проверяет TypeScript без анализа типов | [`typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) |
|
|
102
|
+
| `plugins.typescriptTypeChecked()` | Проверяет TypeScript с анализом типов | [`typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) |
|
|
103
|
+
| `plugins.unicorn()` | Проверяет код по правилам unicorn | [`eslint-plugin-unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn) |
|
|
104
|
+
| `plugins.unocss()` | Проверяет UnoCSS | [`@unocss/eslint-config`](https://unocss.dev/integrations/eslint) |
|
|
105
|
+
| `plugins.vitest()` | Проверяет тесты Vitest | [`@vitest/eslint-plugin`](https://github.com/veritem/eslint-plugin-vitest) |
|
|
106
|
+
| `plugins.vue()` | Проверяет Vue.js-компоненты | [`eslint-plugin-vue`](https://eslint.vuejs.org/rules/) |
|
|
107
|
+
| `plugins.vueAccessibility()` | Проверяет доступность Vue.js-компонентов | [`eslint-plugin-vuejs-accessibility`](https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/) |
|
|
108
|
+
| `plugins.vueI18n()` | Проверяет Vue.js I18n | [`@intlify/eslint-plugin-vue-i18n`](https://vue-i18n.intlify.dev/) |
|
|
109
|
+
| `plugins.zod()` | Проверяет Zod-схемы | [`eslint-plugin-zod`](https://github.com/marcalexiei/eslint-zod/tree/main/plugins/eslint-plugin-zod) |
|
|
110
110
|
|
|
111
111
|
## Настройки Tailwind CSS
|
|
112
112
|
|
package/base.js
CHANGED
|
@@ -56,7 +56,10 @@ export const IGNORES = [
|
|
|
56
56
|
* @example
|
|
57
57
|
* import { defineConfig, plugins } from '@alexlit/config-eslint';
|
|
58
58
|
*
|
|
59
|
-
* export default defineConfig([
|
|
59
|
+
* export default defineConfig([
|
|
60
|
+
* ...plugins.javascript(),
|
|
61
|
+
* ...plugins.unicorn(),
|
|
62
|
+
* ]);
|
|
60
63
|
*/
|
|
61
64
|
export const base = defineConfig([
|
|
62
65
|
{ files: FILES, languageOptions: { globals: globals.browser } },
|
package/package.json
CHANGED
package/plugins/tailwindcss.js
CHANGED
|
@@ -5,6 +5,8 @@ import { FILES } from '../base.js';
|
|
|
5
5
|
|
|
6
6
|
const DEFAULT_CSS_CONFIG_PATH = './styles/tailwind.css';
|
|
7
7
|
|
|
8
|
+
const recommended = plugin.configs.recommended;
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Правила для Tailwind CSS.
|
|
10
12
|
*
|
|
@@ -29,16 +31,21 @@ const DEFAULT_CSS_CONFIG_PATH = './styles/tailwind.css';
|
|
|
29
31
|
export const tailwindcss = (settings = {}) =>
|
|
30
32
|
defineConfig([
|
|
31
33
|
{
|
|
34
|
+
...recommended,
|
|
32
35
|
files: FILES,
|
|
33
|
-
plugins: { tailwindcss: plugin },
|
|
34
36
|
rules: {
|
|
35
|
-
...
|
|
37
|
+
...recommended.rules,
|
|
36
38
|
'tailwindcss/no-custom-classname': 'off',
|
|
37
39
|
'vue/static-class-names-order': 'off',
|
|
38
40
|
},
|
|
39
41
|
settings: {
|
|
42
|
+
...recommended.settings,
|
|
40
43
|
/** @type {import('eslint-plugin-tailwindcss').PluginSettings} */
|
|
41
|
-
tailwindcss: {
|
|
44
|
+
tailwindcss: {
|
|
45
|
+
...recommended.settings?.tailwindcss,
|
|
46
|
+
cssConfigPath: DEFAULT_CSS_CONFIG_PATH,
|
|
47
|
+
...settings,
|
|
48
|
+
},
|
|
42
49
|
},
|
|
43
50
|
},
|
|
44
51
|
]);
|
package/plugins/vue-i18n.js
CHANGED
|
@@ -12,10 +12,11 @@ import { DATA_FILES, VUE_FILES } from '../base.js';
|
|
|
12
12
|
*/
|
|
13
13
|
export const vueI18n = () =>
|
|
14
14
|
defineConfig([
|
|
15
|
-
...plugin.configs['flat/recommended'].map((config) =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
...plugin.configs['flat/recommended'].map((config) =>
|
|
16
|
+
config.files
|
|
17
|
+
? config
|
|
18
|
+
: { ...config, ignores: [...(config.ignores ?? []), ...DATA_FILES] },
|
|
19
|
+
),
|
|
19
20
|
|
|
20
21
|
{
|
|
21
22
|
files: VUE_FILES,
|