@luxass/eslint-config 4.0.0-beta.8 → 4.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 (149) hide show
  1. package/README.md +351 -48
  2. package/dist/{chunk-TQ476NL2.mjs → chunk-4YBQZLPS.mjs} +13 -2
  3. package/dist/{chunk-NDNDG7BH.mjs → chunk-5NK24IKQ.mjs} +2 -5
  4. package/dist/{chunk-2SW2E3TH.mjs → chunk-5SDSWPKR.mjs} +14 -4
  5. package/dist/chunk-6T7MXPCT.mjs +17 -0
  6. package/dist/{chunk-ADP4MYOS.mjs → chunk-ANUYBAYV.mjs} +1 -1
  7. package/dist/{chunk-R4NSLRAE.mjs → chunk-ATRL3UZP.mjs} +14 -8
  8. package/dist/{chunk-P3N5WLFL.mjs → chunk-BXBN56WI.mjs} +11 -7
  9. package/dist/chunk-CJ3ZUYUJ.mjs +183 -0
  10. package/dist/chunk-DAJA5AV3.mjs +29 -0
  11. package/dist/{chunk-FK567E7G.mjs → chunk-DVQQVCGF.mjs} +7 -3
  12. package/dist/chunk-DZCXT6HT.mjs +288 -0
  13. package/dist/chunk-FU5SRKZU.mjs +104 -0
  14. package/dist/{chunk-LQLF2CMA.mjs → chunk-GBLPCM3X.mjs} +14 -17
  15. package/dist/chunk-KJ7ZCBK4.mjs +48 -0
  16. package/dist/{chunk-BAKUP7QM.mjs → chunk-P3QUAOFO.mjs} +36 -34
  17. package/dist/{chunk-I2ECCPNN.mjs → chunk-PYS26PF3.mjs} +15 -10
  18. package/dist/chunk-Q57BF3CR.mjs +63 -0
  19. package/dist/{chunk-SPQZTV4E.mjs → chunk-QK56GX3F.mjs} +12 -14
  20. package/dist/{chunk-3QHLEAXK.mjs → chunk-RDZJT36Z.mjs} +22 -8
  21. package/dist/{chunk-HE56XDG6.mjs → chunk-RVSUTDCE.mjs} +15 -5
  22. package/dist/chunk-UMUUVFB7.mjs +69 -0
  23. package/dist/{chunk-NUG6FLHN.mjs → chunk-VZ2YFMWH.mjs} +54 -11
  24. package/dist/chunk-WDSV2EFG.mjs +7 -0
  25. package/dist/{chunk-M5WNLLBT.mjs → chunk-WOYZWHPM.mjs} +20 -7
  26. package/dist/chunk-WRURTO5T.mjs +144 -0
  27. package/dist/configs/astro.cjs +11 -21
  28. package/dist/configs/astro.d.cts +3 -6
  29. package/dist/configs/astro.d.ts +3 -6
  30. package/dist/configs/astro.mjs +3 -3
  31. package/dist/configs/comments.cjs +9 -12
  32. package/dist/configs/comments.d.cts +3 -2
  33. package/dist/configs/comments.d.ts +3 -2
  34. package/dist/configs/comments.mjs +1 -2
  35. package/dist/configs/formatters.cjs +274 -0
  36. package/dist/configs/formatters.d.cts +11 -0
  37. package/dist/configs/formatters.d.ts +11 -0
  38. package/dist/configs/formatters.mjs +9 -0
  39. package/dist/configs/ignores.cjs +1 -8
  40. package/dist/configs/ignores.d.cts +3 -2
  41. package/dist/configs/ignores.d.ts +3 -2
  42. package/dist/configs/ignores.mjs +2 -2
  43. package/dist/configs/imports.cjs +35 -9
  44. package/dist/configs/imports.d.cts +13 -4
  45. package/dist/configs/imports.d.ts +13 -4
  46. package/dist/configs/imports.mjs +2 -2
  47. package/dist/configs/index.cjs +1116 -707
  48. package/dist/configs/index.d.cts +7 -18
  49. package/dist/configs/index.d.ts +7 -18
  50. package/dist/configs/index.mjs +40 -36
  51. package/dist/configs/javascript.cjs +9 -23
  52. package/dist/configs/javascript.d.cts +3 -6
  53. package/dist/configs/javascript.d.ts +3 -6
  54. package/dist/configs/javascript.mjs +2 -3
  55. package/dist/configs/jsdoc.cjs +6 -2
  56. package/dist/configs/jsdoc.d.cts +17 -4
  57. package/dist/configs/jsdoc.d.ts +17 -4
  58. package/dist/configs/jsdoc.mjs +2 -2
  59. package/dist/configs/jsonc.cjs +8 -11
  60. package/dist/configs/jsonc.d.cts +3 -6
  61. package/dist/configs/jsonc.d.ts +3 -6
  62. package/dist/configs/jsonc.mjs +3 -3
  63. package/dist/configs/markdown.cjs +46 -35
  64. package/dist/configs/markdown.d.cts +25 -4
  65. package/dist/configs/markdown.d.ts +25 -4
  66. package/dist/configs/markdown.mjs +3 -3
  67. package/dist/configs/nextjs.cjs +15 -12
  68. package/dist/configs/nextjs.d.cts +3 -6
  69. package/dist/configs/nextjs.d.ts +3 -6
  70. package/dist/configs/nextjs.mjs +3 -3
  71. package/dist/configs/node.cjs +0 -10
  72. package/dist/configs/node.d.cts +3 -2
  73. package/dist/configs/node.d.ts +3 -2
  74. package/dist/configs/node.mjs +1 -2
  75. package/dist/configs/perfectionist.cjs +2 -20
  76. package/dist/configs/perfectionist.d.cts +4 -3
  77. package/dist/configs/perfectionist.d.ts +4 -3
  78. package/dist/configs/perfectionist.mjs +1 -2
  79. package/dist/configs/react.cjs +201 -203
  80. package/dist/configs/react.d.cts +3 -6
  81. package/dist/configs/react.d.ts +3 -6
  82. package/dist/configs/react.mjs +3 -3
  83. package/dist/configs/sort.cjs +6 -6
  84. package/dist/configs/sort.d.cts +3 -2
  85. package/dist/configs/sort.d.ts +3 -2
  86. package/dist/configs/sort.mjs +1 -1
  87. package/dist/configs/stylistic.cjs +20 -11
  88. package/dist/configs/stylistic.d.cts +4 -7
  89. package/dist/configs/stylistic.d.ts +4 -7
  90. package/dist/configs/stylistic.mjs +4 -3
  91. package/dist/configs/tailwindcss.cjs +34 -45
  92. package/dist/configs/tailwindcss.d.cts +3 -6
  93. package/dist/configs/tailwindcss.d.ts +3 -6
  94. package/dist/configs/tailwindcss.mjs +3 -3
  95. package/dist/configs/test.cjs +103 -16
  96. package/dist/configs/test.d.cts +3 -6
  97. package/dist/configs/test.d.ts +3 -6
  98. package/dist/configs/test.mjs +4 -3
  99. package/dist/configs/toml.cjs +131 -0
  100. package/dist/configs/toml.d.cts +11 -0
  101. package/dist/configs/toml.d.ts +11 -0
  102. package/dist/configs/toml.mjs +8 -0
  103. package/dist/configs/typescript.cjs +32 -43
  104. package/dist/configs/typescript.d.cts +3 -6
  105. package/dist/configs/typescript.d.ts +3 -6
  106. package/dist/configs/typescript.mjs +3 -4
  107. package/dist/configs/unicorn.cjs +13 -10
  108. package/dist/configs/unicorn.d.cts +3 -2
  109. package/dist/configs/unicorn.d.ts +3 -2
  110. package/dist/configs/unicorn.mjs +1 -2
  111. package/dist/configs/unocss.cjs +74 -4
  112. package/dist/configs/unocss.d.cts +3 -6
  113. package/dist/configs/unocss.d.ts +3 -6
  114. package/dist/configs/unocss.mjs +3 -2
  115. package/dist/configs/vue.cjs +51 -15
  116. package/dist/configs/vue.d.cts +3 -6
  117. package/dist/configs/vue.d.ts +3 -6
  118. package/dist/configs/vue.mjs +3 -3
  119. package/dist/configs/yaml.cjs +17 -11
  120. package/dist/configs/yaml.d.cts +3 -6
  121. package/dist/configs/yaml.d.ts +3 -6
  122. package/dist/configs/yaml.mjs +3 -3
  123. package/dist/custom-rules/utils.cjs +31 -0
  124. package/dist/custom-rules/utils.d.cts +6 -0
  125. package/dist/custom-rules/utils.d.ts +6 -0
  126. package/dist/custom-rules/utils.mjs +6 -0
  127. package/dist/globs.cjs +157 -0
  128. package/dist/globs.d.cts +28 -0
  129. package/dist/globs.d.ts +28 -0
  130. package/dist/globs.mjs +56 -0
  131. package/dist/index.cjs +1470 -1040
  132. package/dist/index.d.cts +10 -44
  133. package/dist/index.d.ts +10 -44
  134. package/dist/index.mjs +106 -140
  135. package/dist/types-spTEGSaV.d.cts +632 -0
  136. package/dist/types-spTEGSaV.d.ts +632 -0
  137. package/package.json +69 -37
  138. package/dist/chunk-24KJPXII.mjs +0 -51
  139. package/dist/chunk-4HH6LYJ6.mjs +0 -25
  140. package/dist/chunk-4JKENKIP.mjs +0 -67
  141. package/dist/chunk-C5VMTRKT.mjs +0 -18
  142. package/dist/chunk-CFSYEIE4.mjs +0 -23
  143. package/dist/chunk-ERFDRAGW.mjs +0 -86
  144. package/dist/chunk-HLDEUDLN.mjs +0 -28
  145. package/dist/chunk-UBPIYSHC.mjs +0 -284
  146. package/dist/types-fxhbVLKI.d.cts +0 -235
  147. package/dist/types-fxhbVLKI.d.ts +0 -235
  148. package/dist/{chunk-FKAOMYGL.mjs → chunk-ME2OAMS3.mjs} +0 -0
  149. package/dist/{chunk-FOIFEV73.mjs → chunk-XBASVDU6.mjs} +6 -6
@@ -1,284 +0,0 @@
1
- import {
2
- GLOB_JSX
3
- } from "./chunk-R4NSLRAE.mjs";
4
- import {
5
- ensure,
6
- interop
7
- } from "./chunk-TQ476NL2.mjs";
8
-
9
- // src/configs/react.ts
10
- async function react(options) {
11
- const {
12
- a11y = false,
13
- overrides = {},
14
- typescript = true
15
- } = options;
16
- await ensure([
17
- "eslint-plugin-react",
18
- "eslint-plugin-react-hooks",
19
- "eslint-plugin-react-refresh",
20
- ...options.a11y ? ["eslint-plugin-jsx-a11y"] : []
21
- ]);
22
- const [
23
- pluginReact,
24
- pluginReactHooks,
25
- pluginReactRefresh,
26
- pluginA11y
27
- ] = await Promise.all([
28
- interop(import("eslint-plugin-react")),
29
- interop(import("eslint-plugin-react-hooks")),
30
- interop(import("eslint-plugin-react-refresh")),
31
- ...options.a11y ? [interop(import("eslint-plugin-jsx-a11y"))] : []
32
- ]);
33
- return [
34
- {
35
- name: "luxass:react:setup",
36
- plugins: {
37
- "react": pluginReact,
38
- "react-hooks": pluginReactHooks,
39
- "react-refresh": pluginReactRefresh,
40
- ...a11y ? { "jsx-a11y": pluginA11y } : {}
41
- }
42
- },
43
- {
44
- files: [GLOB_JSX],
45
- languageOptions: {
46
- parserOptions: {
47
- ecmaFeatures: {
48
- jsx: true
49
- }
50
- }
51
- },
52
- name: "luxass:react:rules",
53
- rules: {
54
- // recommended rules for jsx-a11y
55
- "jsx-a11y/alt-text": "error",
56
- "jsx-a11y/anchor-ambiguous-text": "off",
57
- "jsx-a11y/anchor-has-content": "error",
58
- "jsx-a11y/anchor-is-valid": "error",
59
- "jsx-a11y/aria-activedescendant-has-tabindex": "error",
60
- "jsx-a11y/aria-props": "error",
61
- "jsx-a11y/aria-proptypes": "error",
62
- "jsx-a11y/aria-role": "error",
63
- "jsx-a11y/aria-unsupported-elements": "error",
64
- "jsx-a11y/autocomplete-valid": "error",
65
- "jsx-a11y/click-events-have-key-events": "error",
66
- "jsx-a11y/control-has-associated-label": [
67
- "off",
68
- {
69
- ignoreElements: [
70
- "audio",
71
- "canvas",
72
- "embed",
73
- "input",
74
- "textarea",
75
- "tr",
76
- "video"
77
- ],
78
- ignoreRoles: [
79
- "grid",
80
- "listbox",
81
- "menu",
82
- "menubar",
83
- "radiogroup",
84
- "row",
85
- "tablist",
86
- "toolbar",
87
- "tree",
88
- "treegrid"
89
- ],
90
- includeRoles: [
91
- "alert",
92
- "dialog"
93
- ]
94
- }
95
- ],
96
- "jsx-a11y/heading-has-content": "error",
97
- "jsx-a11y/html-has-lang": "error",
98
- "jsx-a11y/iframe-has-title": "error",
99
- "jsx-a11y/img-redundant-alt": "error",
100
- "jsx-a11y/interactive-supports-focus": [
101
- "error",
102
- {
103
- tabbable: [
104
- "button",
105
- "checkbox",
106
- "link",
107
- "searchbox",
108
- "spinbutton",
109
- "switch",
110
- "textbox"
111
- ]
112
- }
113
- ],
114
- "jsx-a11y/label-has-associated-control": "error",
115
- "jsx-a11y/label-has-for": "off",
116
- "jsx-a11y/media-has-caption": "error",
117
- "jsx-a11y/mouse-events-have-key-events": "error",
118
- "jsx-a11y/no-access-key": "error",
119
- "jsx-a11y/no-autofocus": "error",
120
- "jsx-a11y/no-distracting-elements": "error",
121
- "jsx-a11y/no-interactive-element-to-noninteractive-role": [
122
- "error",
123
- {
124
- canvas: [
125
- "img"
126
- ],
127
- tr: [
128
- "none",
129
- "presentation"
130
- ]
131
- }
132
- ],
133
- "jsx-a11y/no-noninteractive-element-interactions": [
134
- "error",
135
- {
136
- alert: [
137
- "onKeyUp",
138
- "onKeyDown",
139
- "onKeyPress"
140
- ],
141
- body: [
142
- "onError",
143
- "onLoad"
144
- ],
145
- dialog: [
146
- "onKeyUp",
147
- "onKeyDown",
148
- "onKeyPress"
149
- ],
150
- handlers: [
151
- "onClick",
152
- "onError",
153
- "onLoad",
154
- "onMouseDown",
155
- "onMouseUp",
156
- "onKeyPress",
157
- "onKeyDown",
158
- "onKeyUp"
159
- ],
160
- iframe: [
161
- "onError",
162
- "onLoad"
163
- ],
164
- img: [
165
- "onError",
166
- "onLoad"
167
- ]
168
- }
169
- ],
170
- "jsx-a11y/no-noninteractive-element-to-interactive-role": [
171
- "error",
172
- {
173
- fieldset: [
174
- "radiogroup",
175
- "presentation"
176
- ],
177
- li: [
178
- "menuitem",
179
- "option",
180
- "row",
181
- "tab",
182
- "treeitem"
183
- ],
184
- ol: [
185
- "listbox",
186
- "menu",
187
- "menubar",
188
- "radiogroup",
189
- "tablist",
190
- "tree",
191
- "treegrid"
192
- ],
193
- table: [
194
- "grid"
195
- ],
196
- td: [
197
- "gridcell"
198
- ],
199
- ul: [
200
- "listbox",
201
- "menu",
202
- "menubar",
203
- "radiogroup",
204
- "tablist",
205
- "tree",
206
- "treegrid"
207
- ]
208
- }
209
- ],
210
- "jsx-a11y/no-noninteractive-tabindex": [
211
- "error",
212
- {
213
- allowExpressionValues: true,
214
- roles: [
215
- "tabpanel"
216
- ],
217
- tags: []
218
- }
219
- ],
220
- "jsx-a11y/no-redundant-roles": "error",
221
- "jsx-a11y/no-static-element-interactions": [
222
- "error",
223
- {
224
- allowExpressionValues: true,
225
- handlers: [
226
- "onClick",
227
- "onMouseDown",
228
- "onMouseUp",
229
- "onKeyPress",
230
- "onKeyDown",
231
- "onKeyUp"
232
- ]
233
- }
234
- ],
235
- "jsx-a11y/role-has-required-aria-props": "error",
236
- "jsx-a11y/role-supports-aria-props": "error",
237
- "jsx-a11y/scope": "error",
238
- "jsx-a11y/tabindex-no-positive": "error",
239
- // recommended rules react-hooks
240
- "react-hooks/exhaustive-deps": "warn",
241
- "react-hooks/rules-of-hooks": "error",
242
- // react refresh
243
- "react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
244
- // recommended rules react
245
- "react/display-name": "error",
246
- "react/jsx-key": "error",
247
- "react/jsx-no-comment-textnodes": "error",
248
- "react/jsx-no-duplicate-props": "error",
249
- "react/jsx-no-target-blank": "error",
250
- "react/jsx-no-undef": "error",
251
- "react/jsx-uses-react": "error",
252
- "react/jsx-uses-vars": "error",
253
- "react/no-children-prop": "error",
254
- "react/no-danger-with-children": "error",
255
- "react/no-deprecated": "error",
256
- "react/no-direct-mutation-state": "error",
257
- "react/no-find-dom-node": "error",
258
- "react/no-is-mounted": "error",
259
- "react/no-render-return-value": "error",
260
- "react/no-string-refs": "error",
261
- "react/no-unescaped-entities": "error",
262
- "react/no-unknown-property": "error",
263
- "react/no-unsafe": "off",
264
- "react/prop-types": "error",
265
- "react/react-in-jsx-scope": "off",
266
- "react/require-render-return": "error",
267
- ...typescript ? {
268
- "react/prop-type": "off"
269
- } : {},
270
- // overrides
271
- ...overrides
272
- },
273
- settings: {
274
- react: {
275
- version: "detect"
276
- }
277
- }
278
- }
279
- ];
280
- }
281
-
282
- export {
283
- react
284
- };
@@ -1,235 +0,0 @@
1
- import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
2
- import { ParserOptions } from '@typescript-eslint/parser';
3
- import { FlatESLintConfigItem, MergeIntersection, RenamePrefix, VitestRules, YmlRules, NRules, Prefix, ImportRules, EslintRules, JsoncRules, VueRules, EslintCommentsRules, RuleConfig } from '@antfu/eslint-define-config';
4
- import { RuleOptions as RuleOptions$1 } from '@eslint-types/jsdoc/types';
5
- import { RuleOptions } from '@eslint-types/typescript-eslint/types';
6
- import { RuleOptions as RuleOptions$2 } from '@eslint-types/unicorn/types';
7
- import { Rules as Rules$1 } from 'eslint-plugin-antfu';
8
- import { StylisticCustomizeOptions, UnprefixedRuleOptions } from '@stylistic/eslint-plugin';
9
- import { Linter } from 'eslint';
10
-
11
- type WrapRuleConfig<T extends {
12
- [key: string]: any;
13
- }> = {
14
- [K in keyof T]: T[K] extends RuleConfig ? T[K] : RuleConfig<T[K]>;
15
- };
16
- type Awaitable<T> = T | Promise<T>;
17
- type Rules = WrapRuleConfig<MergeIntersection<RenamePrefix<RuleOptions, "@typescript-eslint/", "ts/"> & RenamePrefix<VitestRules, "vitest/", "test/"> & RenamePrefix<YmlRules, "yml/", "yaml/"> & RenamePrefix<NRules, "n/", "node/"> & Prefix<UnprefixedRuleOptions, "style/"> & Prefix<Rules$1, "antfu/"> & RuleOptions$1 & ImportRules & EslintRules & JsoncRules & VueRules & RuleOptions$2 & EslintCommentsRules & {
18
- "test/no-only-tests": RuleConfig<any[]>;
19
- }>>;
20
- type FlatConfigItem = Omit<FlatESLintConfigItem<Rules, false>, "plugins"> & {
21
- /**
22
- * Custom name of each config item
23
- */
24
- name?: string;
25
- /**
26
- * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files.
27
- *
28
- * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
29
- */
30
- plugins?: Record<string, any>;
31
- };
32
- type UserConfigItem = FlatConfigItem | Linter.FlatConfig;
33
- interface OptionsComponentExts {
34
- /**
35
- * Additional extensions for components.
36
- *
37
- * @example ["vue"]
38
- * @default []
39
- */
40
- componentExts?: string[];
41
- }
42
- interface OptionsTypeScriptParserOptions {
43
- /**
44
- * Additional parser options for TypeScript.
45
- */
46
- parserOptions?: Partial<ParserOptions>;
47
- }
48
- interface OptionsTypeScriptWithTypes {
49
- /**
50
- * When this options is provided, type aware rules will be enabled.
51
- * @see https://typescript-eslint.io/linting/typed-linting/
52
- */
53
- tsconfigPath?: string | string[];
54
- }
55
- type ConfigurationOptions<TConfigs extends keyof OptionsConfig> = {
56
- [K in TConfigs]?: boolean;
57
- };
58
- interface NextJSOptions {
59
- /**
60
- * Tell the plugin where the root directory is.
61
- * @see https://nextjs.org/docs/app/building-your-application/configuring/eslint#rootdir
62
- *
63
- * @default true
64
- */
65
- rootDir?: boolean | string;
66
- }
67
- interface ReactOptions {
68
- a11y?: boolean;
69
- }
70
- interface AstroOptions {
71
- a11y?: boolean;
72
- }
73
- interface OptionsTailwindCSS {
74
- /**
75
- * Tell the plugin where the config file is located.
76
- * If not provided, the plugin will try to find the config file automatically.
77
- */
78
- config?: string;
79
- /**
80
- * Tell the plugin to remove duplicate classes.
81
- *
82
- * @default true
83
- */
84
- removeDuplicates?: boolean;
85
- /**
86
- * Tell the plugin which function names to look for.
87
- * @default ["classnames", "clsx", "cx", "cn"]
88
- *
89
- * If NextJS is enabled, the default value will also include `tw`
90
- * to support NextJS's Image Response.
91
- */
92
- callees?: string[];
93
- /**
94
- * Tell the plugin which class regex to look for.
95
- *
96
- * @default "^class(Name)?$"
97
- */
98
- classRegex?: string;
99
- }
100
- type StylisticOptions = Pick<OptionsConfig, "stylistic">;
101
- type StylisticConfig = Pick<StylisticCustomizeOptions, "jsx" | "indent" | "quotes" | "semi">;
102
- interface OverrideOptions {
103
- overrides?: FlatConfigItem["rules"];
104
- }
105
- interface InEditorOptions {
106
- isEditor?: boolean;
107
- }
108
- interface PerfectionistOptions {
109
- enableAllRules?: boolean;
110
- }
111
- interface OptionsConfig extends OptionsComponentExts {
112
- /**
113
- * Enable gitignore support.
114
- *
115
- * Passing an object to configure the options.
116
- *
117
- * @see https://github.com/antfu/eslint-config-flat-gitignore
118
- * @default true
119
- */
120
- gitignore?: FlatGitignoreOptions | boolean;
121
- /**
122
- * Control to disable some rules in editors.
123
- * @default auto-detect based on the process.env
124
- */
125
- isEditor?: boolean;
126
- /**
127
- * Enable JSONC support.
128
- *
129
- * @default true
130
- */
131
- jsonc?: boolean;
132
- /**
133
- * Enable JSX related rules.
134
- *
135
- * Currently only stylistic rules are included.
136
- *
137
- * @default true
138
- */
139
- jsx?: boolean;
140
- /**
141
- * Enable Markdown support.
142
- *
143
- * @default true
144
- */
145
- markdown?: boolean;
146
- /**
147
- * Enable Perfectionist rules.
148
- *
149
- * @default false
150
- *
151
- * NOTE: This plugin has some very opinionated rules, use with caution.
152
- */
153
- perfectionist?: boolean;
154
- /**
155
- * Enable NextJS support.
156
- *
157
- * @default false
158
- */
159
- nextjs?: boolean | NextJSOptions;
160
- /**
161
- * Enable React support.
162
- *
163
- * @default false
164
- */
165
- react?: boolean | ReactOptions;
166
- /**
167
- * Provide overrides for rules for each integration.
168
- */
169
- overrides?: {
170
- javascript?: FlatConfigItem["rules"];
171
- jsonc?: FlatConfigItem["rules"];
172
- markdown?: FlatConfigItem["rules"];
173
- test?: FlatConfigItem["rules"];
174
- typescript?: FlatConfigItem["rules"];
175
- unocss?: FlatConfigItem["rules"];
176
- tailwind?: FlatConfigItem["rules"];
177
- vue?: FlatConfigItem["rules"];
178
- yaml?: FlatConfigItem["rules"];
179
- nextjs?: FlatConfigItem["rules"];
180
- react?: FlatConfigItem["rules"];
181
- astro?: FlatConfigItem["rules"];
182
- };
183
- /**
184
- * Enable stylistic rules.
185
- *
186
- * @default true
187
- */
188
- stylistic?: StylisticConfig | boolean;
189
- /**
190
- * Enable test support.
191
- *
192
- * @default true
193
- */
194
- test?: boolean;
195
- /**
196
- * Enable TypeScript support.
197
- *
198
- * Passing an object to enable TypeScript Language Server support.
199
- *
200
- * @default auto-detect based on the dependencies
201
- */
202
- typescript?: OptionsTypeScriptParserOptions | OptionsTypeScriptWithTypes | boolean;
203
- /**
204
- * Enable UnoCSS support.
205
- *
206
- * @default auto-detect based on the dependencies
207
- */
208
- unocss?: boolean;
209
- /**
210
- * Enable TailwindCSS support.
211
- *
212
- * @default false
213
- */
214
- tailwindcss?: boolean | OptionsTailwindCSS;
215
- /**
216
- * Enable Vue support.
217
- *
218
- * @default auto-detect based on the dependencies
219
- */
220
- vue?: boolean;
221
- /**
222
- * Enable Astro support.
223
- *
224
- * @default auto-detect based on the dependencies
225
- */
226
- astro?: boolean | AstroOptions;
227
- /**
228
- * Enable YAML support.
229
- *
230
- * @default true
231
- */
232
- yaml?: boolean;
233
- }
234
-
235
- export type { Awaitable as A, ConfigurationOptions as C, FlatConfigItem as F, InEditorOptions as I, NextJSOptions as N, OverrideOptions as O, PerfectionistOptions as P, ReactOptions as R, StylisticOptions as S, UserConfigItem as U, OptionsComponentExts as a, StylisticConfig as b, OptionsTailwindCSS as c, OptionsTypeScriptWithTypes as d, OptionsTypeScriptParserOptions as e, OptionsConfig as f };