@flarian/frontend-preset 2.0.1 → 2.0.3

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.
@@ -17,14 +17,27 @@ const esLintImportsRules = {
17
17
  "warn",
18
18
  {
19
19
  groups: [
20
- ["^", "^@"],
21
- ["^\\./"],
22
- ["^.+\\.(.(js|ts))$"],
23
- ["^~"],
24
- ["^.+\\.(.(vue|jsx|tsx))$"],
25
- ["^~/types"],
26
- ["^.+\\.(module.(less|sass|scss|css))$"],
27
- ["^.+\\.(gif|png|svg|jpg)$"],
20
+ // 1. Node.js built-ins
21
+ ["^node:"],
22
+ // 2. Внешние npm-пакеты (unscoped + @-scoped)
23
+ ["^[^.~@]", "^@(?!/)"],
24
+ // 3. Parent-relative (../xxx)
25
+ ["^\\.\\./"],
26
+ // 4. Same-dir relative (./xxx)
27
+ ["^\\.(?!\\.)"],
28
+ // 5. @/ global path aliases
29
+ ["^@/"],
30
+ // 6. ~/ src path aliases
31
+ ["^~/"],
32
+ // 7. Vue SFC / JSX / TSX компоненты
33
+ ["^.+\\.(vue|jsx|tsx)$"],
34
+ // 8. CSS modules
35
+ ["^.+\\.module\\.(less|sass|scss|css|pcss)$"],
36
+ // 9. Стили без module (plain import)
37
+ ["^.+\\.(less|sass|scss|css)$"],
38
+ // 10. Картинки и SVG
39
+ ["^.+\\.(gif|png|svg|jpg|jpeg|webp)$"],
40
+ // 11. Виртуальные модули и side-effects
28
41
  ["^\\u0000"]
29
42
  ]
30
43
  }
@@ -11,14 +11,27 @@ const esLintImportsRules = {
11
11
  "warn",
12
12
  {
13
13
  groups: [
14
- ["^", "^@"],
15
- ["^\\./"],
16
- ["^.+\\.(.(js|ts))$"],
17
- ["^~"],
18
- ["^.+\\.(.(vue|jsx|tsx))$"],
19
- ["^~/types"],
20
- ["^.+\\.(module.(less|sass|scss|css))$"],
21
- ["^.+\\.(gif|png|svg|jpg)$"],
14
+ // 1. Node.js built-ins
15
+ ["^node:"],
16
+ // 2. Внешние npm-пакеты (unscoped + @-scoped)
17
+ ["^[^.~@]", "^@(?!/)"],
18
+ // 3. Parent-relative (../xxx)
19
+ ["^\\.\\./"],
20
+ // 4. Same-dir relative (./xxx)
21
+ ["^\\.(?!\\.)"],
22
+ // 5. @/ global path aliases
23
+ ["^@/"],
24
+ // 6. ~/ src path aliases
25
+ ["^~/"],
26
+ // 7. Vue SFC / JSX / TSX компоненты
27
+ ["^.+\\.(vue|jsx|tsx)$"],
28
+ // 8. CSS modules
29
+ ["^.+\\.module\\.(less|sass|scss|css|pcss)$"],
30
+ // 9. Стили без module (plain import)
31
+ ["^.+\\.(less|sass|scss|css)$"],
32
+ // 10. Картинки и SVG
33
+ ["^.+\\.(gif|png|svg|jpg|jpeg|webp)$"],
34
+ // 11. Виртуальные модули и side-effects
22
35
  ["^\\u0000"]
23
36
  ]
24
37
  }
@@ -33,11 +33,11 @@ const esLintPrettierRules = {
33
33
 
34
34
  const createPrettierConfig = ({ registerPlugins = true } = {}) => {
35
35
  const config = {
36
- plugins: { prettier: prettierPlugin__default },
36
+ plugins: { prettier: prettierPlugin__default, ...esLintPrettierRules.plugins },
37
37
  rules: {
38
- "prettier/prettier": ["warn", prettier_config_base.baseConfig]
39
- },
40
- ...esLintPrettierRules
38
+ "prettier/prettier": ["warn", prettier_config_base.baseConfig],
39
+ ...esLintPrettierRules.rules
40
+ }
41
41
  };
42
42
  const vueOverride = {
43
43
  files: ["**/*.vue"],
@@ -47,7 +47,10 @@ const createPrettierConfig = ({ registerPlugins = true } = {}) => {
47
47
  },
48
48
  rules: {
49
49
  "vue/script-indent": "off",
50
- "prettier/prettier": ["warn", { ...prettier_config_base.baseConfig, ...prettier_config_vue.vueConfig, ...prettier_config_yml.ymlConfig, ...prettier_config_pug.pugConfig }]
50
+ "prettier/prettier": [
51
+ "warn",
52
+ { ...prettier_config_base.baseConfig, ...prettier_config_vue.vueConfig, ...prettier_config_yml.ymlConfig, ...prettier_config_pug.pugConfig }
53
+ ]
51
54
  }
52
55
  };
53
56
  return [
@@ -25,11 +25,11 @@ const esLintPrettierRules = {
25
25
 
26
26
  const createPrettierConfig = ({ registerPlugins = true } = {}) => {
27
27
  const config = {
28
- plugins: { prettier: prettierPlugin },
28
+ plugins: { prettier: prettierPlugin, ...esLintPrettierRules.plugins },
29
29
  rules: {
30
- "prettier/prettier": ["warn", baseConfig]
31
- },
32
- ...esLintPrettierRules
30
+ "prettier/prettier": ["warn", baseConfig],
31
+ ...esLintPrettierRules.rules
32
+ }
33
33
  };
34
34
  const vueOverride = {
35
35
  files: ["**/*.vue"],
@@ -39,7 +39,10 @@ const createPrettierConfig = ({ registerPlugins = true } = {}) => {
39
39
  },
40
40
  rules: {
41
41
  "vue/script-indent": "off",
42
- "prettier/prettier": ["warn", { ...baseConfig, ...vueConfig, ...ymlConfig, ...pugConfig }]
42
+ "prettier/prettier": [
43
+ "warn",
44
+ { ...baseConfig, ...vueConfig, ...ymlConfig, ...pugConfig }
45
+ ]
43
46
  }
44
47
  };
45
48
  return [
@@ -330,7 +330,7 @@ const esLintStylisticRules = {
330
330
  {
331
331
  max: 1,
332
332
  maxBOF: 0,
333
- maxEOF: 1
333
+ maxEOF: 0
334
334
  }
335
335
  ],
336
336
  /**
@@ -377,7 +377,11 @@ const esLintStylisticRules = {
377
377
  * Обеспечить единый стиль переноса строк для операторов
378
378
  * https://eslint.style/rules/default/operator-linebreak
379
379
  */
380
- "@stylistic/operator-linebreak": ["warn", "after", { overrides: { "?": "before", ":": "before", "|": "before" } }],
380
+ "@stylistic/operator-linebreak": [
381
+ "warn",
382
+ "after",
383
+ { overrides: { "?": "before", ":": "before", "|": "before" } }
384
+ ],
381
385
  /**
382
386
  * Требовать или запрещать отступы внутри блоков
383
387
  * https://eslint.style/rules/default/padded-blocks
@@ -324,7 +324,7 @@ const esLintStylisticRules = {
324
324
  {
325
325
  max: 1,
326
326
  maxBOF: 0,
327
- maxEOF: 1
327
+ maxEOF: 0
328
328
  }
329
329
  ],
330
330
  /**
@@ -371,7 +371,11 @@ const esLintStylisticRules = {
371
371
  * Обеспечить единый стиль переноса строк для операторов
372
372
  * https://eslint.style/rules/default/operator-linebreak
373
373
  */
374
- "@stylistic/operator-linebreak": ["warn", "after", { overrides: { "?": "before", ":": "before", "|": "before" } }],
374
+ "@stylistic/operator-linebreak": [
375
+ "warn",
376
+ "after",
377
+ { overrides: { "?": "before", ":": "before", "|": "before" } }
378
+ ],
375
379
  /**
376
380
  * Требовать или запрещать отступы внутри блоков
377
381
  * https://eslint.style/rules/default/padded-blocks
@@ -23,6 +23,7 @@ const esLintVueRules = {
23
23
  rules: {
24
24
  "vue/no-required-prop-with-default": "off",
25
25
  "vue/multi-word-component-names": "off",
26
+ "vue/singleline-html-element-content-newline": "off",
26
27
  "vue/html-indent": [
27
28
  "warn",
28
29
  "tab",
@@ -15,6 +15,7 @@ const esLintVueRules = {
15
15
  rules: {
16
16
  "vue/no-required-prop-with-default": "off",
17
17
  "vue/multi-word-component-names": "off",
18
+ "vue/singleline-html-element-content-newline": "off",
18
19
  "vue/html-indent": [
19
20
  "warn",
20
21
  "tab",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flarian/frontend-preset",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "license": "MIT",
5
5
  "description": "Frontend preset with ESLint 9 flat config and Stylelint",
6
6
  "author": "FlarianWeb",