@alexlit/config-eslint 162.1.0 → 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 CHANGED
@@ -1,9 +1,9 @@
1
+ # ESLint Configuration
2
+
1
3
  [![version](https://npmx.dev/api/registry/badge/version/@alexlit/config-eslint)](https://www.npmjs.com/package/@alexlit/config-eslint)
2
4
  [![downloads](https://npmx.dev/api/registry/badge/downloads/@alexlit/config-eslint)](https://npmx.dev/package/@alexlit/config-eslint)
3
5
  [![license](https://npmx.dev/api/registry/badge/license/@alexlit/config-eslint)](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([plugins.javascript(), plugins.unicorn()]);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexlit/config-eslint",
3
- "version": "162.1.0",
3
+ "version": "162.1.2",
4
4
  "private": false,
5
5
  "description": "eslint config",
6
6
  "keywords": [
@@ -49,12 +49,12 @@
49
49
  "@stylistic/eslint-plugin": "^5.10.0",
50
50
  "@tanstack/eslint-plugin-query": "^5.104.5",
51
51
  "@unocss/eslint-config": "^66.11.0",
52
- "@vitest/eslint-plugin": "^1.6.27",
52
+ "@vitest/eslint-plugin": "^1.6.28",
53
53
  "eslint": "^10.13.0",
54
54
  "eslint-config-prettier": "^10.1.8",
55
55
  "eslint-plugin-de-morgan": "^2.2.1",
56
56
  "eslint-plugin-import-x": "^4.17.1",
57
- "eslint-plugin-jsdoc": "^65.4.0",
57
+ "eslint-plugin-jsdoc": "^65.4.1",
58
58
  "eslint-plugin-perfectionist": "^5.13.0",
59
59
  "eslint-plugin-pinia": "^0.4.2",
60
60
  "eslint-plugin-prettier": "^5.5.7",
@@ -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
- ...plugin.configs.recommended.rules,
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: { cssConfigPath: DEFAULT_CSS_CONFIG_PATH, ...settings },
44
+ tailwindcss: {
45
+ ...recommended.settings?.tailwindcss,
46
+ cssConfigPath: DEFAULT_CSS_CONFIG_PATH,
47
+ ...settings,
48
+ },
42
49
  },
43
50
  },
44
51
  ]);
@@ -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
- ...config,
17
- ignores: [...(config.ignores ?? []), ...DATA_FILES],
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,