@flarian/frontend-preset 1.6.1 → 2.0.0

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.
Files changed (89) hide show
  1. package/README.md +269 -129
  2. package/dist/eslint/config/imports.cjs +8 -3
  3. package/dist/eslint/config/imports.d.cts +5 -3
  4. package/dist/eslint/config/imports.d.mts +5 -3
  5. package/dist/eslint/config/imports.d.ts +5 -3
  6. package/dist/eslint/config/imports.mjs +7 -3
  7. package/dist/eslint/config/javascript.cjs +72 -0
  8. package/dist/eslint/config/javascript.d.cts +7 -0
  9. package/dist/eslint/config/javascript.d.mts +7 -0
  10. package/dist/eslint/config/javascript.d.ts +7 -0
  11. package/dist/eslint/config/javascript.mjs +64 -0
  12. package/dist/eslint/config/json.cjs +31 -9
  13. package/dist/eslint/config/json.d.cts +12 -3
  14. package/dist/eslint/config/json.d.mts +12 -3
  15. package/dist/eslint/config/json.d.ts +12 -3
  16. package/dist/eslint/config/json.mjs +26 -9
  17. package/dist/eslint/config/jsx.cjs +34 -20
  18. package/dist/eslint/config/jsx.d.cts +5 -3
  19. package/dist/eslint/config/jsx.d.mts +5 -3
  20. package/dist/eslint/config/jsx.d.ts +5 -3
  21. package/dist/eslint/config/jsx.mjs +33 -20
  22. package/dist/eslint/config/prettier.cjs +50 -11
  23. package/dist/eslint/config/prettier.d.cts +5 -3
  24. package/dist/eslint/config/prettier.d.mts +5 -3
  25. package/dist/eslint/config/prettier.d.ts +5 -3
  26. package/dist/eslint/config/prettier.mjs +46 -9
  27. package/dist/eslint/config/react.cjs +12 -7
  28. package/dist/eslint/config/react.d.cts +5 -3
  29. package/dist/eslint/config/react.d.mts +5 -3
  30. package/dist/eslint/config/react.d.ts +5 -3
  31. package/dist/eslint/config/react.mjs +11 -7
  32. package/dist/eslint/config/{base.cjs → stylistic.cjs} +292 -186
  33. package/dist/eslint/config/stylistic.d.cts +7 -0
  34. package/dist/eslint/config/stylistic.d.mts +7 -0
  35. package/dist/eslint/config/stylistic.d.ts +7 -0
  36. package/dist/eslint/config/{base.mjs → stylistic.mjs} +291 -182
  37. package/dist/eslint/config/typescript.cjs +43 -0
  38. package/dist/eslint/config/typescript.d.cts +7 -0
  39. package/dist/eslint/config/typescript.d.mts +7 -0
  40. package/dist/eslint/config/typescript.d.ts +7 -0
  41. package/dist/eslint/config/typescript.mjs +36 -0
  42. package/dist/eslint/config/vue.cjs +24 -13
  43. package/dist/eslint/config/vue.d.cts +5 -6
  44. package/dist/eslint/config/vue.d.mts +5 -6
  45. package/dist/eslint/config/vue.d.ts +5 -6
  46. package/dist/eslint/config/vue.mjs +23 -13
  47. package/dist/eslint/index.cjs +37 -21
  48. package/dist/eslint/index.d.cts +10 -8
  49. package/dist/eslint/index.d.mts +10 -8
  50. package/dist/eslint/index.d.ts +10 -8
  51. package/dist/eslint/index.mjs +19 -14
  52. package/dist/index.cjs +13 -12
  53. package/dist/index.d.cts +9 -7
  54. package/dist/index.d.mts +9 -7
  55. package/dist/index.d.ts +9 -7
  56. package/dist/index.mjs +13 -12
  57. package/dist/prettier/config/base.cjs +1 -1
  58. package/dist/prettier/config/base.mjs +1 -1
  59. package/dist/shared/frontend-preset.B9JjGTzu.d.mts +60 -0
  60. package/dist/shared/frontend-preset.BUXYewoh.d.ts +60 -0
  61. package/dist/shared/frontend-preset.CADA8VXw.mjs +37 -0
  62. package/dist/shared/frontend-preset.Cco7BHYd.cjs +5 -0
  63. package/dist/shared/frontend-preset.CnYH3mAs.d.cts +60 -0
  64. package/dist/shared/frontend-preset.CtslHPdG.mjs +3 -0
  65. package/dist/shared/frontend-preset.DEAWyl_Y.d.cts +8 -0
  66. package/dist/shared/frontend-preset.DEAWyl_Y.d.mts +8 -0
  67. package/dist/shared/frontend-preset.DEAWyl_Y.d.ts +8 -0
  68. package/dist/shared/frontend-preset.GULoLGRF.cjs +39 -0
  69. package/dist/stylelint/config/all.d.cts +4 -2
  70. package/dist/stylelint/config/all.d.mts +4 -2
  71. package/dist/stylelint/config/all.d.ts +4 -2
  72. package/dist/stylelint/config/less.cjs +5 -1
  73. package/dist/stylelint/config/less.mjs +5 -1
  74. package/dist/stylelint/config/scss.cjs +5 -1
  75. package/dist/stylelint/config/scss.mjs +5 -1
  76. package/package.json +74 -24
  77. package/dist/eslint/config/all.cjs +0 -36
  78. package/dist/eslint/config/all.d.cts +0 -14
  79. package/dist/eslint/config/all.d.mts +0 -14
  80. package/dist/eslint/config/all.d.ts +0 -14
  81. package/dist/eslint/config/all.mjs +0 -33
  82. package/dist/eslint/config/base.d.cts +0 -8
  83. package/dist/eslint/config/base.d.mts +0 -8
  84. package/dist/eslint/config/base.d.ts +0 -8
  85. package/dist/shared/frontend-preset.BXVU99PK.d.mts +0 -37
  86. package/dist/shared/frontend-preset.Bfc_XKcp.d.cts +0 -37
  87. package/dist/shared/frontend-preset.CbViwkJz.cjs +0 -27
  88. package/dist/shared/frontend-preset.CiCuZ-UD.d.ts +0 -37
  89. package/dist/shared/frontend-preset.DbH8phB0.mjs +0 -25
package/README.md CHANGED
@@ -1,176 +1,295 @@
1
- # frontend-preset
2
-
3
- ## Поддерживаемые форматы:
4
- - .js
5
- - .jsx
6
- - .ts
7
- - .tsx
8
- - .json
9
- - .css
10
- - .less
11
- - .scss
12
- - .vue
13
- - .pug
14
- - .yml
15
- - .yaml
16
-
17
- ## Установка
1
+ # @flarian/frontend-preset
2
+
3
+ Preset for ESLint, Prettier and Stylelint with flat config support.
4
+
5
+ ## Supported formats
6
+
7
+ `.js` `.jsx` `.ts` `.tsx` `.json` `.jsonc` `.css` `.less` `.scss` `.vue` `.pug` `.yml` `.yaml`
8
+
9
+ ---
10
+
11
+ ## ESLint
12
+
13
+ ### JavaScript
14
+
18
15
  ```sh
19
- pnpm add @flarian/frontend-preset eslint prettier stylelint -D
16
+ pnpm add -D eslint @eslint/js globals @flarian/frontend-preset
20
17
  ```
21
18
 
22
- ## tsconfig.json
23
- ```json
24
- {
25
- "compilerOptions": {
26
- "target": "esnext",
27
- "module": "esnext",
28
- "moduleResolution": "node",
29
- "esModuleInterop": true,
30
- "strict": true,
31
- "strictNullChecks": true,
32
- "noUnusedLocals": true,
33
- "jsx": "preserve",
34
- "resolveJsonModule": true,
35
- "outDir": "dist",
36
- "baseUrl": ".",
37
- "declaration": true,
38
- "declarationMap": true,
39
- },
40
- }
19
+ ```ts
20
+ // eslint.config.ts
21
+ import { javascript } from '@flarian/frontend-preset/eslint';
22
+
23
+ export default [
24
+ ...javascript,
25
+ { ignores: ['dist/**', 'node_modules/**'] },
26
+ ];
41
27
  ```
42
28
 
43
- ## Для поддержки PUG синтаксиса в .vue:
29
+ ---
30
+
31
+ ### TypeScript
32
+
33
+ Requires JavaScript config.
34
+
44
35
  ```sh
45
- pnpm add pug @vue/language-plugin-pug -D
36
+ pnpm add -D typescript-eslint
46
37
  ```
47
- Добавить в tsconfig.json:
48
- ```json
49
- {
50
- "vueCompilerOptions": {
51
- "plugins": ["@vue/language-plugin-pug"]
52
- },
53
- }
38
+
39
+ ```ts
40
+ // eslint.config.ts
41
+ import { javascript, typescript } from '@flarian/frontend-preset/eslint';
42
+
43
+ export default [
44
+ ...javascript,
45
+ ...typescript,
46
+ { ignores: ['dist/**', 'node_modules/**'] },
47
+ ];
54
48
  ```
55
49
 
56
- ## Расширения vsCode:
57
- - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
58
- - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
59
- - [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint)
60
- - [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)
50
+ ---
51
+
52
+ ### Stylistic
53
+
54
+ Formatting rules via `@stylistic/eslint-plugin`. Use together with Prettier or standalone.
55
+
56
+ ```sh
57
+ pnpm add -D @stylistic/eslint-plugin
58
+ ```
61
59
 
62
- ## Примеры конфигураций:
63
- ### Настройка ESLint
64
- #### eslint.config.ts
65
60
  ```ts
66
- import { all } from '@flarian/frontend-preset/eslint';
61
+ // eslint.config.ts
62
+ import { javascript, typescript, stylistic } from '@flarian/frontend-preset/eslint';
67
63
 
68
64
  export default [
69
- ...all.withApp,
65
+ ...javascript,
66
+ ...typescript,
67
+ ...stylistic,
68
+ { ignores: ['dist/**', 'node_modules/**'] },
69
+ ];
70
+ ```
70
71
 
71
- {
72
- ignores: ['dist/**', 'node_modules/**', 'pnpm-lock.yaml'],
73
- },
72
+ ---
73
+
74
+ ### Imports
75
+
76
+ Sorts and validates imports via `eslint-plugin-simple-import-sort`.
77
+
78
+ ```sh
79
+ pnpm add -D eslint-plugin-simple-import-sort
80
+ ```
81
+
82
+ ```ts
83
+ // eslint.config.ts
84
+ import { javascript, typescript, imports } from '@flarian/frontend-preset/eslint';
85
+
86
+ export default [
87
+ ...javascript,
88
+ ...typescript,
89
+ ...imports,
90
+ { ignores: ['dist/**', 'node_modules/**'] },
74
91
  ];
75
92
  ```
76
93
 
77
94
  ---
78
95
 
79
- ### Настройка prettier
80
- - Если вы не используете синтаксис pug в вашем vue проекте то вы можете пропустить этот шаг.
81
- - Если вы используете Pug в Vue проекте, то необходимо добавить зависимость @prettier/plugin-pug в ваш проект и определить конфигурацию prettier.config.mjs:
96
+ ### JSON / package.json / tsconfig.json
97
+
82
98
  ```sh
83
- pnpm add @prettier/plugin-pug -D
99
+ pnpm add -D eslint-plugin-jsonc
84
100
  ```
85
101
 
86
- #### prettier.config.mjs
87
- ```js
88
- import { all } from '@flarian/frontend-preset/prettier';
102
+ ```ts
103
+ // eslint.config.ts
104
+ import { json, packageJson, tsconfigJson } from '@flarian/frontend-preset/eslint';
105
+
106
+ export default [
107
+ ...json,
108
+ ...packageJson,
109
+ ...tsconfigJson,
110
+ { ignores: ['dist/**', 'node_modules/**'] },
111
+ ];
112
+ ```
113
+
114
+ ---
115
+
116
+ ### JSX
117
+
118
+ Stylistic rules for JSX. Requires `stylistic`.
119
+
120
+ No additional dependencies required.
121
+
122
+ ```ts
123
+ // eslint.config.ts
124
+ import { javascript, stylistic, jsx } from '@flarian/frontend-preset/eslint';
125
+
126
+ export default [
127
+ ...javascript,
128
+ ...stylistic,
129
+ ...jsx,
130
+ { ignores: ['dist/**', 'node_modules/**'] },
131
+ ];
132
+ ```
133
+
134
+ ---
135
+
136
+ ### Vue
137
+
138
+ ```sh
139
+ pnpm add -D eslint-plugin-vue vue-eslint-parser
140
+ ```
141
+
142
+ ```ts
143
+ // eslint.config.ts
144
+ import { javascript, typescript, stylistic, imports, vue } from '@flarian/frontend-preset/eslint';
89
145
 
90
- export default all;
146
+ export default [
147
+ ...javascript,
148
+ ...typescript,
149
+ ...stylistic,
150
+ ...imports,
151
+ ...vue,
152
+ { ignores: ['dist/**', 'node_modules/**'] },
153
+ ];
91
154
  ```
92
155
 
93
156
  ---
94
157
 
95
- ### Настройка stylelint
96
- В зависимости от используемого препроцессора (LESS или SCSS), необходимо установить дополнительные зависимости:
158
+ ### React
97
159
 
98
- #### Для LESS:
99
160
  ```sh
100
- pnpm add stylelint-order stylelint-less stylelint-config-standard stylelint-config-standard-less stylelint-config-recommended-vue -D
161
+ pnpm add -D eslint-plugin-react eslint-plugin-react-hooks
101
162
  ```
102
163
 
103
- #### Для SCSS:
164
+ ```ts
165
+ // eslint.config.ts
166
+ import { javascript, typescript, stylistic, imports, jsx, react } from '@flarian/frontend-preset/eslint';
167
+
168
+ export default [
169
+ ...javascript,
170
+ ...typescript,
171
+ ...stylistic,
172
+ ...imports,
173
+ ...jsx,
174
+ ...react,
175
+ { ignores: ['dist/**', 'node_modules/**'] },
176
+ ];
177
+ ```
178
+
179
+ ---
180
+
181
+ ### Prettier (ESLint integration)
182
+
183
+ Runs Prettier as an ESLint rule. Automatically applies Vue, Pug and YAML overrides for `.vue` files.
184
+
104
185
  ```sh
105
- pnpm add stylelint-order stylelint-scss stylelint-config-standard stylelint-config-standard-scss stylelint-config-recommended-vue -D
186
+ pnpm add -D prettier eslint-plugin-prettier
106
187
  ```
107
188
 
108
- #### stylelint.config.mjs
109
- ```js
110
- import { all } from '@flarian/frontend-preset/stylelint';
189
+ For Pug support in `.vue` files:
111
190
 
112
- export default {
113
- extends: [all.less, all.scss],
114
- };
191
+ ```sh
192
+ pnpm add -D @prettier/plugin-pug
115
193
  ```
116
194
 
117
- **Примечание:** Используйте только нужные пресеты в `extends`. Например, если работаете только с LESS:
118
- ```js
195
+ ```ts
196
+ // eslint.config.ts
197
+ import { javascript, typescript, stylistic, imports, vue, prettier } from '@flarian/frontend-preset/eslint';
198
+
199
+ export default [
200
+ ...javascript,
201
+ ...typescript,
202
+ ...stylistic,
203
+ ...imports,
204
+ ...vue,
205
+ ...prettier, // must be last
206
+ { ignores: ['dist/**', 'node_modules/**'] },
207
+ ];
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Prettier
213
+
214
+ ```sh
215
+ pnpm add -D prettier
216
+ ```
217
+
218
+ ```ts
219
+ // prettier.config.ts
220
+ import { baseConfig } from '@flarian/frontend-preset/prettier';
221
+
222
+ export default baseConfig;
223
+ ```
224
+
225
+ For Vue + Pug projects:
226
+
227
+ ```sh
228
+ pnpm add -D @prettier/plugin-pug
229
+ ```
230
+
231
+ ```ts
232
+ // prettier.config.ts
233
+ import { baseConfig, pugConfig, vueConfig, ymlConfig } from '@flarian/frontend-preset/prettier';
234
+
119
235
  export default {
120
- extends: [all.less],
236
+ ...baseConfig,
237
+ ...vueConfig,
238
+ ...ymlConfig,
239
+ ...pugConfig,
121
240
  };
122
241
  ```
123
242
 
124
- ## .editorconfig
125
- ```ini
126
- root = true
243
+ ---
127
244
 
128
- # Блок настроек для всех типов файлов
129
- [*]
130
- charset = utf-8
131
- end_of_line = lf
132
- indent_size = 4
133
- indent_style = tab
134
- insert_final_newline = true
135
- trim_trailing_whitespace = true
245
+ ## Stylelint
136
246
 
137
- # Блок настроек для Markdown
138
- [*.{md,markdown}]
139
- trim_trailing_whitespace = false
247
+ ### LESS
140
248
 
141
- # Блок настроек для файлов JavaScript и TypeScript
142
- [*.{js,ts,jsx,tsx,cjs,mjs,vue}]
143
- indent_style = tab
144
- indent_size = 4
249
+ ```sh
250
+ pnpm add -D stylelint stylelint-order stylelint-less stylelint-config-standard stylelint-config-standard-less stylelint-config-recommended-vue
251
+ ```
145
252
 
146
- # Блок настроек для файлов css
147
- [*.{css,less}]
148
- indent_style = tab
149
- indent_size = 4
253
+ ```js
254
+ // stylelint.config.mjs
255
+ import { less } from '@flarian/frontend-preset/stylelint';
150
256
 
151
- # Блок настроек для файлов JSON
152
- [*.{json}]
153
- indent_style = tab
154
- indent_size = 4
257
+ export default { extends: [less] };
258
+ ```
155
259
 
156
- # Блок настроек для YAML
157
- [*.{yaml,yml}]
158
- indent_style = space
159
- indent_size = 2
260
+ ### SCSS
261
+
262
+ ```sh
263
+ pnpm add -D stylelint stylelint-order stylelint-scss stylelint-config-standard stylelint-config-standard-scss stylelint-config-recommended-vue
160
264
  ```
161
265
 
162
- ## Пример конфигурации для VSCode:
266
+ ```js
267
+ // stylelint.config.mjs
268
+ import { scss } from '@flarian/frontend-preset/stylelint';
269
+
270
+ export default { extends: [scss] };
271
+ ```
272
+
273
+ ---
274
+
275
+ ## VSCode extensions
276
+
277
+ - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
278
+ - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
279
+ - [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint)
280
+ - [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)
281
+
282
+ ## VSCode settings
283
+
163
284
  ```json
164
285
  {
165
- /* Language settings */
166
286
  "[css]": {
167
287
  "editor.defaultFormatter": "stylelint.vscode-stylelint",
168
288
  "editor.formatOnSave": true
169
289
  },
170
290
  "[javascript]": {
171
291
  "editor.defaultFormatter": "dbaeumer.vscode-eslint",
172
- "editor.formatOnSave": true,
173
- "editor.suggest.insertMode": "replace"
292
+ "editor.formatOnSave": true
174
293
  },
175
294
  "[json]": {
176
295
  "editor.defaultFormatter": "dbaeumer.vscode-eslint",
@@ -196,25 +315,46 @@ indent_size = 2
196
315
  "editor.defaultFormatter": "redhat.vscode-yaml",
197
316
  "editor.formatOnSave": true
198
317
  },
199
-
200
- /* Editor */
201
- "editor.accessibilitySupport": "off",
202
318
  "editor.codeActionsOnSave": {
203
319
  "source.fixAll.eslint": "explicit",
204
320
  "source.fixAll.stylelint": "always"
205
321
  },
206
-
207
- /* ESLint */
208
322
  "eslint.format.enable": true,
209
323
  "eslint.validate": ["json", "jsonc", "javascript", "typescript", "vue", "yaml", "yml"],
210
-
211
- /* JSON */
212
- "json.format.enable": true,
213
- "json.format.keepLines": false,
214
- "json.validate.enable": false,
215
-
216
- /* Stylelint */
217
324
  "stylelint.packageManager": "pnpm",
218
- "stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"],
325
+ "stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"]
219
326
  }
220
327
  ```
328
+
329
+ ## .editorconfig
330
+
331
+ ```ini
332
+ root = true
333
+
334
+ [*]
335
+ charset = utf-8
336
+ end_of_line = lf
337
+ indent_size = 4
338
+ indent_style = tab
339
+ insert_final_newline = true
340
+ trim_trailing_whitespace = true
341
+
342
+ [*.{md,markdown}]
343
+ trim_trailing_whitespace = false
344
+
345
+ [*.{js,ts,jsx,tsx,cjs,mjs,vue}]
346
+ indent_style = tab
347
+ indent_size = 4
348
+
349
+ [*.{css,less}]
350
+ indent_style = tab
351
+ indent_size = 4
352
+
353
+ [*.{json}]
354
+ indent_style = tab
355
+ indent_size = 4
356
+
357
+ [*.{yaml,yml}]
358
+ indent_style = space
359
+ indent_size = 2
360
+ ```
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ const stripPlugins = require('../../shared/frontend-preset.Cco7BHYd.cjs');
3
4
  const simpleImportSort = require('eslint-plugin-simple-import-sort');
4
5
 
5
6
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
6
7
 
7
8
  const simpleImportSort__default = /*#__PURE__*/_interopDefaultCompat(simpleImportSort);
8
9
 
9
- const esLintImportSortRules = {
10
+ const esLintImportsRules = {
10
11
  files: ["**/*.{js,ts,jsx,tsx,cjs,mjs,vue}"],
11
12
  plugins: {
12
13
  "@simple-import-sort": simpleImportSort__default
@@ -31,6 +32,10 @@ const esLintImportSortRules = {
31
32
  }
32
33
  };
33
34
 
34
- const importsConfig = [esLintImportSortRules];
35
+ const createImportsConfig = ({ registerPlugins = true } = {}) => [
36
+ registerPlugins ? esLintImportsRules : stripPlugins.stripPlugins(esLintImportsRules)
37
+ ];
38
+ const imports = createImportsConfig();
35
39
 
36
- exports.importsConfig = importsConfig;
40
+ exports.createImportsConfig = createImportsConfig;
41
+ exports.imports = imports;
@@ -1,5 +1,7 @@
1
- import { Linter } from 'eslint';
1
+ import { C as Config, a as CreateConfig } from '../../shared/frontend-preset.DEAWyl_Y.cjs';
2
+ import 'eslint';
2
3
 
3
- declare const importsConfig: Linter.Config[];
4
+ declare const createImportsConfig: CreateConfig;
5
+ declare const imports: Config;
4
6
 
5
- export { importsConfig };
7
+ export { createImportsConfig, imports };
@@ -1,5 +1,7 @@
1
- import { Linter } from 'eslint';
1
+ import { C as Config, a as CreateConfig } from '../../shared/frontend-preset.DEAWyl_Y.mjs';
2
+ import 'eslint';
2
3
 
3
- declare const importsConfig: Linter.Config[];
4
+ declare const createImportsConfig: CreateConfig;
5
+ declare const imports: Config;
4
6
 
5
- export { importsConfig };
7
+ export { createImportsConfig, imports };
@@ -1,5 +1,7 @@
1
- import { Linter } from 'eslint';
1
+ import { C as Config, a as CreateConfig } from '../../shared/frontend-preset.DEAWyl_Y.js';
2
+ import 'eslint';
2
3
 
3
- declare const importsConfig: Linter.Config[];
4
+ declare const createImportsConfig: CreateConfig;
5
+ declare const imports: Config;
4
6
 
5
- export { importsConfig };
7
+ export { createImportsConfig, imports };
@@ -1,6 +1,7 @@
1
+ import { s as stripPlugins } from '../../shared/frontend-preset.CtslHPdG.mjs';
1
2
  import simpleImportSort from 'eslint-plugin-simple-import-sort';
2
3
 
3
- const esLintImportSortRules = {
4
+ const esLintImportsRules = {
4
5
  files: ["**/*.{js,ts,jsx,tsx,cjs,mjs,vue}"],
5
6
  plugins: {
6
7
  "@simple-import-sort": simpleImportSort
@@ -25,6 +26,9 @@ const esLintImportSortRules = {
25
26
  }
26
27
  };
27
28
 
28
- const importsConfig = [esLintImportSortRules];
29
+ const createImportsConfig = ({ registerPlugins = true } = {}) => [
30
+ registerPlugins ? esLintImportsRules : stripPlugins(esLintImportsRules)
31
+ ];
32
+ const imports = createImportsConfig();
29
33
 
30
- export { importsConfig };
34
+ export { createImportsConfig, imports };
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ const globals = require('globals');
4
+ const jsPlugin = require('@eslint/js');
5
+
6
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
7
+
8
+ const globals__default = /*#__PURE__*/_interopDefaultCompat(globals);
9
+ const jsPlugin__default = /*#__PURE__*/_interopDefaultCompat(jsPlugin);
10
+
11
+ const esLintJavaScriptRules = {
12
+ rules: {
13
+ "arrow-body-style": ["error", "as-needed"],
14
+ curly: ["error", "all"],
15
+ "func-names": ["error", "always"],
16
+ "no-undef": "off",
17
+ "no-alert": "error",
18
+ "no-console": "error",
19
+ "no-var": "error",
20
+ "no-duplicate-imports": [
21
+ "error",
22
+ {
23
+ includeExports: true
24
+ }
25
+ ],
26
+ "no-magic-numbers": [
27
+ "error",
28
+ {
29
+ ignore: [-1, 0, 1],
30
+ ignoreArrayIndexes: true,
31
+ ignoreDefaultValues: true,
32
+ enforceConst: true
33
+ }
34
+ ],
35
+ "no-plusplus": "off",
36
+ "no-restricted-syntax": [
37
+ "error",
38
+ {
39
+ selector: "ForInStatement",
40
+ message: "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
41
+ },
42
+ {
43
+ selector: "LabeledStatement",
44
+ message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
45
+ },
46
+ {
47
+ selector: "WithStatement",
48
+ message: "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
49
+ }
50
+ ],
51
+ "no-unused-expressions": [
52
+ "error",
53
+ {
54
+ allowShortCircuit: true
55
+ }
56
+ ]
57
+ }
58
+ };
59
+
60
+ const createJavascriptConfig = () => [
61
+ {
62
+ languageOptions: {
63
+ globals: { ...globals__default.browser, ...globals__default.node }
64
+ }
65
+ },
66
+ jsPlugin__default.configs.recommended,
67
+ esLintJavaScriptRules
68
+ ];
69
+ const javascript = createJavascriptConfig();
70
+
71
+ exports.createJavascriptConfig = createJavascriptConfig;
72
+ exports.javascript = javascript;
@@ -0,0 +1,7 @@
1
+ import { C as Config } from '../../shared/frontend-preset.DEAWyl_Y.cjs';
2
+ import 'eslint';
3
+
4
+ declare const createJavascriptConfig: () => Config;
5
+ declare const javascript: Config;
6
+
7
+ export { createJavascriptConfig, javascript };
@@ -0,0 +1,7 @@
1
+ import { C as Config } from '../../shared/frontend-preset.DEAWyl_Y.mjs';
2
+ import 'eslint';
3
+
4
+ declare const createJavascriptConfig: () => Config;
5
+ declare const javascript: Config;
6
+
7
+ export { createJavascriptConfig, javascript };
@@ -0,0 +1,7 @@
1
+ import { C as Config } from '../../shared/frontend-preset.DEAWyl_Y.js';
2
+ import 'eslint';
3
+
4
+ declare const createJavascriptConfig: () => Config;
5
+ declare const javascript: Config;
6
+
7
+ export { createJavascriptConfig, javascript };