@luxass/eslint-config 4.1.0 → 4.2.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 (62) hide show
  1. package/README.md +0 -3
  2. package/dist/chunk-C5YCKPY4.mjs +274 -0
  3. package/dist/configs/astro.d.cts +1 -1
  4. package/dist/configs/astro.d.ts +1 -1
  5. package/dist/configs/comments.d.cts +1 -1
  6. package/dist/configs/comments.d.ts +1 -1
  7. package/dist/configs/formatters.d.cts +1 -1
  8. package/dist/configs/formatters.d.ts +1 -1
  9. package/dist/configs/ignores.d.cts +1 -1
  10. package/dist/configs/ignores.d.ts +1 -1
  11. package/dist/configs/imports.d.cts +1 -1
  12. package/dist/configs/imports.d.ts +1 -1
  13. package/dist/configs/index.d.cts +1 -1
  14. package/dist/configs/index.d.ts +1 -1
  15. package/dist/configs/index.mjs +3 -3
  16. package/dist/configs/javascript.d.cts +1 -1
  17. package/dist/configs/javascript.d.ts +1 -1
  18. package/dist/configs/jsdoc.d.cts +1 -1
  19. package/dist/configs/jsdoc.d.ts +1 -1
  20. package/dist/configs/jsonc.d.cts +1 -1
  21. package/dist/configs/jsonc.d.ts +1 -1
  22. package/dist/configs/markdown.d.cts +1 -1
  23. package/dist/configs/markdown.d.ts +1 -1
  24. package/dist/configs/nextjs.d.cts +1 -1
  25. package/dist/configs/nextjs.d.ts +1 -1
  26. package/dist/configs/node.d.cts +1 -1
  27. package/dist/configs/node.d.ts +1 -1
  28. package/dist/configs/perfectionist.d.cts +1 -1
  29. package/dist/configs/perfectionist.d.ts +1 -1
  30. package/dist/configs/react.d.cts +1 -1
  31. package/dist/configs/react.d.ts +1 -1
  32. package/dist/configs/solid.cjs +360 -0
  33. package/dist/configs/solid.d.cts +11 -0
  34. package/dist/configs/solid.d.ts +11 -0
  35. package/dist/configs/solid.mjs +8 -0
  36. package/dist/configs/sort.d.cts +1 -1
  37. package/dist/configs/sort.d.ts +1 -1
  38. package/dist/configs/stylistic.d.cts +1 -1
  39. package/dist/configs/stylistic.d.ts +1 -1
  40. package/dist/configs/tailwindcss.d.cts +1 -1
  41. package/dist/configs/tailwindcss.d.ts +1 -1
  42. package/dist/configs/test.d.cts +1 -1
  43. package/dist/configs/test.d.ts +1 -1
  44. package/dist/configs/toml.d.cts +1 -1
  45. package/dist/configs/toml.d.ts +1 -1
  46. package/dist/configs/typescript.d.cts +1 -1
  47. package/dist/configs/typescript.d.ts +1 -1
  48. package/dist/configs/unicorn.d.cts +1 -1
  49. package/dist/configs/unicorn.d.ts +1 -1
  50. package/dist/configs/unocss.d.cts +1 -1
  51. package/dist/configs/unocss.d.ts +1 -1
  52. package/dist/configs/vue.d.cts +1 -1
  53. package/dist/configs/vue.d.ts +1 -1
  54. package/dist/configs/yaml.d.cts +1 -1
  55. package/dist/configs/yaml.d.ts +1 -1
  56. package/dist/index.cjs +278 -0
  57. package/dist/index.d.cts +2 -2
  58. package/dist/index.d.ts +2 -2
  59. package/dist/index.mjs +22 -3
  60. package/dist/{types-kS9TgR8_.d.cts → types-A-NO9UF1.d.cts} +40 -4
  61. package/dist/{types-kS9TgR8_.d.ts → types-A-NO9UF1.d.ts} +40 -4
  62. package/package.json +6 -1
package/dist/index.cjs CHANGED
@@ -2447,6 +2447,268 @@ async function toml(options = {}) {
2447
2447
  ];
2448
2448
  }
2449
2449
 
2450
+ // src/configs/solid.ts
2451
+ async function solid(options = {}) {
2452
+ const {
2453
+ a11y = false,
2454
+ files = [GLOB_JSX, GLOB_TSX],
2455
+ overrides = {},
2456
+ typescript: typescript2 = true
2457
+ } = options;
2458
+ await ensure([
2459
+ "eslint-plugin-solid"
2460
+ ]);
2461
+ const [
2462
+ pluginSolid
2463
+ ] = await Promise.all([
2464
+ interop(import("eslint-plugin-solid"))
2465
+ ]);
2466
+ return [
2467
+ {
2468
+ name: "luxass:solid:setup",
2469
+ plugins: {
2470
+ solid: pluginSolid
2471
+ }
2472
+ },
2473
+ {
2474
+ name: "luxass:solid:rules",
2475
+ files,
2476
+ languageOptions: {
2477
+ parserOptions: {
2478
+ ecmaFeatures: {
2479
+ jsx: true
2480
+ }
2481
+ },
2482
+ sourceType: "module"
2483
+ },
2484
+ rules: {
2485
+ ...a11y ? {
2486
+ // recommended rules for jsx-a11y
2487
+ "jsx-a11y/alt-text": "error",
2488
+ "jsx-a11y/anchor-ambiguous-text": "off",
2489
+ "jsx-a11y/anchor-has-content": "error",
2490
+ "jsx-a11y/anchor-is-valid": "error",
2491
+ "jsx-a11y/aria-activedescendant-has-tabindex": "error",
2492
+ "jsx-a11y/aria-props": "error",
2493
+ "jsx-a11y/aria-proptypes": "error",
2494
+ "jsx-a11y/aria-role": "error",
2495
+ "jsx-a11y/aria-unsupported-elements": "error",
2496
+ "jsx-a11y/autocomplete-valid": "error",
2497
+ "jsx-a11y/click-events-have-key-events": "error",
2498
+ "jsx-a11y/control-has-associated-label": [
2499
+ "off",
2500
+ {
2501
+ ignoreElements: [
2502
+ "audio",
2503
+ "canvas",
2504
+ "embed",
2505
+ "input",
2506
+ "textarea",
2507
+ "tr",
2508
+ "video"
2509
+ ],
2510
+ ignoreRoles: [
2511
+ "grid",
2512
+ "listbox",
2513
+ "menu",
2514
+ "menubar",
2515
+ "radiogroup",
2516
+ "row",
2517
+ "tablist",
2518
+ "toolbar",
2519
+ "tree",
2520
+ "treegrid"
2521
+ ],
2522
+ includeRoles: [
2523
+ "alert",
2524
+ "dialog"
2525
+ ]
2526
+ }
2527
+ ],
2528
+ "jsx-a11y/heading-has-content": "error",
2529
+ "jsx-a11y/html-has-lang": "error",
2530
+ "jsx-a11y/iframe-has-title": "error",
2531
+ "jsx-a11y/img-redundant-alt": "error",
2532
+ "jsx-a11y/interactive-supports-focus": [
2533
+ "error",
2534
+ {
2535
+ tabbable: [
2536
+ "button",
2537
+ "checkbox",
2538
+ "link",
2539
+ "searchbox",
2540
+ "spinbutton",
2541
+ "switch",
2542
+ "textbox"
2543
+ ]
2544
+ }
2545
+ ],
2546
+ "jsx-a11y/label-has-associated-control": "error",
2547
+ "jsx-a11y/label-has-for": "off",
2548
+ "jsx-a11y/media-has-caption": "error",
2549
+ "jsx-a11y/mouse-events-have-key-events": "error",
2550
+ "jsx-a11y/no-access-key": "error",
2551
+ "jsx-a11y/no-autofocus": "error",
2552
+ "jsx-a11y/no-distracting-elements": "error",
2553
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": [
2554
+ "error",
2555
+ {
2556
+ canvas: [
2557
+ "img"
2558
+ ],
2559
+ tr: [
2560
+ "none",
2561
+ "presentation"
2562
+ ]
2563
+ }
2564
+ ],
2565
+ "jsx-a11y/no-noninteractive-element-interactions": [
2566
+ "error",
2567
+ {
2568
+ alert: [
2569
+ "onKeyUp",
2570
+ "onKeyDown",
2571
+ "onKeyPress"
2572
+ ],
2573
+ body: [
2574
+ "onError",
2575
+ "onLoad"
2576
+ ],
2577
+ dialog: [
2578
+ "onKeyUp",
2579
+ "onKeyDown",
2580
+ "onKeyPress"
2581
+ ],
2582
+ handlers: [
2583
+ "onClick",
2584
+ "onError",
2585
+ "onLoad",
2586
+ "onMouseDown",
2587
+ "onMouseUp",
2588
+ "onKeyPress",
2589
+ "onKeyDown",
2590
+ "onKeyUp"
2591
+ ],
2592
+ iframe: [
2593
+ "onError",
2594
+ "onLoad"
2595
+ ],
2596
+ img: [
2597
+ "onError",
2598
+ "onLoad"
2599
+ ]
2600
+ }
2601
+ ],
2602
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": [
2603
+ "error",
2604
+ {
2605
+ fieldset: [
2606
+ "radiogroup",
2607
+ "presentation"
2608
+ ],
2609
+ li: [
2610
+ "menuitem",
2611
+ "option",
2612
+ "row",
2613
+ "tab",
2614
+ "treeitem"
2615
+ ],
2616
+ ol: [
2617
+ "listbox",
2618
+ "menu",
2619
+ "menubar",
2620
+ "radiogroup",
2621
+ "tablist",
2622
+ "tree",
2623
+ "treegrid"
2624
+ ],
2625
+ table: [
2626
+ "grid"
2627
+ ],
2628
+ td: [
2629
+ "gridcell"
2630
+ ],
2631
+ ul: [
2632
+ "listbox",
2633
+ "menu",
2634
+ "menubar",
2635
+ "radiogroup",
2636
+ "tablist",
2637
+ "tree",
2638
+ "treegrid"
2639
+ ]
2640
+ }
2641
+ ],
2642
+ "jsx-a11y/no-noninteractive-tabindex": [
2643
+ "error",
2644
+ {
2645
+ allowExpressionValues: true,
2646
+ roles: [
2647
+ "tabpanel"
2648
+ ],
2649
+ tags: []
2650
+ }
2651
+ ],
2652
+ "jsx-a11y/no-redundant-roles": "error",
2653
+ "jsx-a11y/no-static-element-interactions": [
2654
+ "error",
2655
+ {
2656
+ allowExpressionValues: true,
2657
+ handlers: [
2658
+ "onClick",
2659
+ "onMouseDown",
2660
+ "onMouseUp",
2661
+ "onKeyPress",
2662
+ "onKeyDown",
2663
+ "onKeyUp"
2664
+ ]
2665
+ }
2666
+ ],
2667
+ "jsx-a11y/role-has-required-aria-props": "error",
2668
+ "jsx-a11y/role-supports-aria-props": "error",
2669
+ "jsx-a11y/scope": "error",
2670
+ "jsx-a11y/tabindex-no-positive": "error"
2671
+ } : {},
2672
+ // solid recommended rules
2673
+ // reactivity
2674
+ "solid/components-return-once": 1,
2675
+ "solid/event-handlers": 1,
2676
+ // these rules are mostly style suggestions
2677
+ "solid/imports": 1,
2678
+ // identifier usage is important
2679
+ "solid/jsx-no-duplicate-props": 2,
2680
+ "solid/jsx-no-script-url": 2,
2681
+ "solid/jsx-no-undef": 2,
2682
+ "solid/jsx-uses-vars": 2,
2683
+ "solid/no-array-handlers": 0,
2684
+ "solid/no-destructure": 2,
2685
+ // security problems
2686
+ "solid/no-innerhtml": 2,
2687
+ // only necessary for resource-constrained environments
2688
+ "solid/no-proxy-apis": 0,
2689
+ "solid/no-react-deps": 1,
2690
+ "solid/no-react-specific-props": 1,
2691
+ "solid/no-unknown-namespaces": 2,
2692
+ // deprecated
2693
+ "solid/prefer-classlist": 0,
2694
+ "solid/prefer-for": 2,
2695
+ // handled by Solid compiler, opt-in style suggestion
2696
+ "solid/prefer-show": 0,
2697
+ "solid/reactivity": 1,
2698
+ "solid/self-closing-comp": 1,
2699
+ "solid/style-prop": 1,
2700
+ ...typescript2 ? {
2701
+ "solid/jsx-no-undef": [2, { typescriptEnabled: true }],
2702
+ // namespaces taken care of by TS
2703
+ "solid/no-unknown-namespaces": 0
2704
+ } : {},
2705
+ // overrides
2706
+ ...overrides
2707
+ }
2708
+ }
2709
+ ];
2710
+ }
2711
+
2450
2712
  // src/factory.ts
2451
2713
  async function luxass(options = {}, ...userConfigs) {
2452
2714
  const {
@@ -2456,6 +2718,7 @@ async function luxass(options = {}, ...userConfigs) {
2456
2718
  gitignore: enableGitignore = true,
2457
2719
  nextjs: enableNextJS = false,
2458
2720
  react: enableReact = false,
2721
+ solid: enableSolid = false,
2459
2722
  tailwindcss: enableTailwindCSS = false,
2460
2723
  typescript: enableTypeScript = (0, import_local_pkg3.isPackageExists)("typescript"),
2461
2724
  unocss: enableUnoCSS = false,
@@ -2528,6 +2791,21 @@ async function luxass(options = {}, ...userConfigs) {
2528
2791
  })
2529
2792
  );
2530
2793
  }
2794
+ if (enableSolid) {
2795
+ configs.push(
2796
+ // TODO: Analyze if this way is better for performance
2797
+ // await interop(import("./configs/solid")).then((plugin) => plugin.solid({
2798
+ // ...resolveSubOptions(options, "solid"),
2799
+ // overrides: getOverrides(options, "solid"),
2800
+ // typescript: !!enableTypeScript,
2801
+ // })),
2802
+ solid({
2803
+ ...resolveSubOptions(options, "solid"),
2804
+ overrides: getOverrides(options, "solid"),
2805
+ typescript: !!enableTypeScript
2806
+ })
2807
+ );
2808
+ }
2531
2809
  if (enableVue) {
2532
2810
  configs.push(
2533
2811
  vue({
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as ConfigOptions, k as FlatConfigItem, l as Awaitable, m as UserConfigItem } from './types-kS9TgR8_.cjs';
2
- export { A as AstroOptions, F as FormattersOptions, b as JSONOptions, J as JavaScriptOptions, N as NextJSOptions, R as ReactOptions, S as StylisticConfig, c as StylisticOptions, h as TailwindCSSOptions, e as TestOptions, T as TypeScriptOptions, U as UnoCSSOptions, V as VueOptions, Y as YAMLOptions, f as astro, i as formatters, j as javascript, a as jsonc, n as nextjs, r as react, s as stylistic, g as tailwindcss, d as test, t as typescript, u as unocss, v as vue, y as yaml } from './types-kS9TgR8_.cjs';
1
+ import { C as ConfigOptions, k as FlatConfigItem, l as Awaitable, m as UserConfigItem } from './types-A-NO9UF1.cjs';
2
+ export { A as AstroOptions, F as FormattersOptions, b as JSONOptions, J as JavaScriptOptions, N as NextJSOptions, R as ReactOptions, S as StylisticConfig, c as StylisticOptions, h as TailwindCSSOptions, e as TestOptions, T as TypeScriptOptions, U as UnoCSSOptions, V as VueOptions, Y as YAMLOptions, f as astro, i as formatters, j as javascript, a as jsonc, n as nextjs, r as react, s as stylistic, g as tailwindcss, d as test, t as typescript, u as unocss, v as vue, y as yaml } from './types-A-NO9UF1.cjs';
3
3
  export { comments } from './configs/comments.cjs';
4
4
  export { unicorn } from './configs/unicorn.cjs';
5
5
  export { ignores } from './configs/ignores.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as ConfigOptions, k as FlatConfigItem, l as Awaitable, m as UserConfigItem } from './types-kS9TgR8_.js';
2
- export { A as AstroOptions, F as FormattersOptions, b as JSONOptions, J as JavaScriptOptions, N as NextJSOptions, R as ReactOptions, S as StylisticConfig, c as StylisticOptions, h as TailwindCSSOptions, e as TestOptions, T as TypeScriptOptions, U as UnoCSSOptions, V as VueOptions, Y as YAMLOptions, f as astro, i as formatters, j as javascript, a as jsonc, n as nextjs, r as react, s as stylistic, g as tailwindcss, d as test, t as typescript, u as unocss, v as vue, y as yaml } from './types-kS9TgR8_.js';
1
+ import { C as ConfigOptions, k as FlatConfigItem, l as Awaitable, m as UserConfigItem } from './types-A-NO9UF1.js';
2
+ export { A as AstroOptions, F as FormattersOptions, b as JSONOptions, J as JavaScriptOptions, N as NextJSOptions, R as ReactOptions, S as StylisticConfig, c as StylisticOptions, h as TailwindCSSOptions, e as TestOptions, T as TypeScriptOptions, U as UnoCSSOptions, V as VueOptions, Y as YAMLOptions, f as astro, i as formatters, j as javascript, a as jsonc, n as nextjs, r as react, s as stylistic, g as tailwindcss, d as test, t as typescript, u as unocss, v as vue, y as yaml } from './types-A-NO9UF1.js';
3
3
  export { comments } from './configs/comments.js';
4
4
  export { unicorn } from './configs/unicorn.js';
5
5
  export { ignores } from './configs/ignores.js';
package/dist/index.mjs CHANGED
@@ -1,7 +1,13 @@
1
+ import {
2
+ solid
3
+ } from "./chunk-C5YCKPY4.mjs";
1
4
  import {
2
5
  toml
3
6
  } from "./chunk-UMUUVFB7.mjs";
4
7
  import "./chunk-ME2OAMS3.mjs";
8
+ import {
9
+ unocss
10
+ } from "./chunk-KJ7ZCBK4.mjs";
5
11
  import {
6
12
  vue
7
13
  } from "./chunk-C67L5T23.mjs";
@@ -25,9 +31,6 @@ import {
25
31
  import {
26
32
  unicorn
27
33
  } from "./chunk-RVSUTDCE.mjs";
28
- import {
29
- unocss
30
- } from "./chunk-KJ7ZCBK4.mjs";
31
34
  import {
32
35
  javascript
33
36
  } from "./chunk-K6TLNQJF.mjs";
@@ -105,6 +108,7 @@ async function luxass(options = {}, ...userConfigs) {
105
108
  gitignore: enableGitignore = true,
106
109
  nextjs: enableNextJS = false,
107
110
  react: enableReact = false,
111
+ solid: enableSolid = false,
108
112
  tailwindcss: enableTailwindCSS = false,
109
113
  typescript: enableTypeScript = isPackageExists("typescript"),
110
114
  unocss: enableUnoCSS = false,
@@ -177,6 +181,21 @@ async function luxass(options = {}, ...userConfigs) {
177
181
  })
178
182
  );
179
183
  }
184
+ if (enableSolid) {
185
+ configs.push(
186
+ // TODO: Analyze if this way is better for performance
187
+ // await interop(import("./configs/solid")).then((plugin) => plugin.solid({
188
+ // ...resolveSubOptions(options, "solid"),
189
+ // overrides: getOverrides(options, "solid"),
190
+ // typescript: !!enableTypeScript,
191
+ // })),
192
+ solid({
193
+ ...resolveSubOptions(options, "solid"),
194
+ overrides: getOverrides(options, "solid"),
195
+ typescript: !!enableTypeScript
196
+ })
197
+ );
198
+ }
180
199
  if (enableVue) {
181
200
  configs.push(
182
201
  vue({
@@ -234,13 +234,13 @@ interface ReactOptions {
234
234
  /**
235
235
  * Enable TypeScript support.
236
236
  *
237
- * @default false
237
+ * @default true
238
238
  */
239
239
  typescript?: boolean;
240
240
  /**
241
- * Enable React A11y support.
241
+ * Enable JSX A11y support.
242
242
  *
243
- * @default true
243
+ * @default false
244
244
  */
245
245
  a11y?: boolean;
246
246
  /**
@@ -460,6 +460,33 @@ interface TOMLOptions {
460
460
  }
461
461
  declare function toml(options?: TOMLOptions): Promise<FlatConfigItem[]>;
462
462
 
463
+ interface SolidOptions {
464
+ /**
465
+ * Override rules.
466
+ */
467
+ overrides?: FlatConfigItem["rules"];
468
+ /**
469
+ * Enable TypeScript support.
470
+ *
471
+ * @default true
472
+ */
473
+ typescript?: boolean;
474
+ /**
475
+ * Enable JSX A11y support.
476
+ *
477
+ * @default false
478
+ */
479
+ a11y?: boolean;
480
+ /**
481
+ * Glob patterns for JSX & TSX files.
482
+ *
483
+ * @default [GLOB_JSX, GLOB_TSX]
484
+ * @see https://github.com/luxass/eslint-config/blob/main/src/globs.ts
485
+ */
486
+ files?: string[];
487
+ }
488
+ declare function solid(options?: SolidOptions): Promise<FlatConfigItem[]>;
489
+
463
490
  type WrapRuleConfig<T extends {
464
491
  [key: string]: any;
465
492
  }> = {
@@ -627,6 +654,15 @@ interface ConfigOptions {
627
654
  * @default []
628
655
  */
629
656
  exts?: string[];
657
+ /**
658
+ * Enable Solid support.
659
+ *
660
+ * Requires installing:
661
+ * - `eslint-plugin-solid`
662
+ *
663
+ * @default false
664
+ */
665
+ solid?: boolean | SolidOptions;
630
666
  }
631
667
 
632
- export { type AstroOptions as A, type ConfigOptions as C, type FormattersOptions as F, type JavaScriptOptions as J, type NextJSOptions as N, type ReactOptions as R, type StylisticConfig as S, type TypeScriptOptions as T, type UnoCSSOptions as U, type VueOptions as V, type YAMLOptions as Y, jsonc as a, type JSONOptions as b, type StylisticOptions as c, test as d, type TestOptions as e, astro as f, tailwindcss as g, type TailwindCSSOptions as h, formatters as i, javascript as j, type FlatConfigItem as k, type Awaitable as l, type UserConfigItem as m, nextjs as n, StylisticConfigDefaults as o, type TOMLOptions as p, toml as q, react as r, stylistic as s, typescript as t, unocss as u, vue as v, yaml as y };
668
+ export { type AstroOptions as A, type ConfigOptions as C, type FormattersOptions as F, type JavaScriptOptions as J, type NextJSOptions as N, type ReactOptions as R, type StylisticConfig as S, type TypeScriptOptions as T, type UnoCSSOptions as U, type VueOptions as V, type YAMLOptions as Y, jsonc as a, type JSONOptions as b, type StylisticOptions as c, test as d, type TestOptions as e, astro as f, tailwindcss as g, type TailwindCSSOptions as h, formatters as i, javascript as j, type FlatConfigItem as k, type Awaitable as l, type UserConfigItem as m, nextjs as n, StylisticConfigDefaults as o, type TOMLOptions as p, toml as q, react as r, stylistic as s, typescript as t, unocss as u, vue as v, type SolidOptions as w, solid as x, yaml as y };
@@ -234,13 +234,13 @@ interface ReactOptions {
234
234
  /**
235
235
  * Enable TypeScript support.
236
236
  *
237
- * @default false
237
+ * @default true
238
238
  */
239
239
  typescript?: boolean;
240
240
  /**
241
- * Enable React A11y support.
241
+ * Enable JSX A11y support.
242
242
  *
243
- * @default true
243
+ * @default false
244
244
  */
245
245
  a11y?: boolean;
246
246
  /**
@@ -460,6 +460,33 @@ interface TOMLOptions {
460
460
  }
461
461
  declare function toml(options?: TOMLOptions): Promise<FlatConfigItem[]>;
462
462
 
463
+ interface SolidOptions {
464
+ /**
465
+ * Override rules.
466
+ */
467
+ overrides?: FlatConfigItem["rules"];
468
+ /**
469
+ * Enable TypeScript support.
470
+ *
471
+ * @default true
472
+ */
473
+ typescript?: boolean;
474
+ /**
475
+ * Enable JSX A11y support.
476
+ *
477
+ * @default false
478
+ */
479
+ a11y?: boolean;
480
+ /**
481
+ * Glob patterns for JSX & TSX files.
482
+ *
483
+ * @default [GLOB_JSX, GLOB_TSX]
484
+ * @see https://github.com/luxass/eslint-config/blob/main/src/globs.ts
485
+ */
486
+ files?: string[];
487
+ }
488
+ declare function solid(options?: SolidOptions): Promise<FlatConfigItem[]>;
489
+
463
490
  type WrapRuleConfig<T extends {
464
491
  [key: string]: any;
465
492
  }> = {
@@ -627,6 +654,15 @@ interface ConfigOptions {
627
654
  * @default []
628
655
  */
629
656
  exts?: string[];
657
+ /**
658
+ * Enable Solid support.
659
+ *
660
+ * Requires installing:
661
+ * - `eslint-plugin-solid`
662
+ *
663
+ * @default false
664
+ */
665
+ solid?: boolean | SolidOptions;
630
666
  }
631
667
 
632
- export { type AstroOptions as A, type ConfigOptions as C, type FormattersOptions as F, type JavaScriptOptions as J, type NextJSOptions as N, type ReactOptions as R, type StylisticConfig as S, type TypeScriptOptions as T, type UnoCSSOptions as U, type VueOptions as V, type YAMLOptions as Y, jsonc as a, type JSONOptions as b, type StylisticOptions as c, test as d, type TestOptions as e, astro as f, tailwindcss as g, type TailwindCSSOptions as h, formatters as i, javascript as j, type FlatConfigItem as k, type Awaitable as l, type UserConfigItem as m, nextjs as n, StylisticConfigDefaults as o, type TOMLOptions as p, toml as q, react as r, stylistic as s, typescript as t, unocss as u, vue as v, yaml as y };
668
+ export { type AstroOptions as A, type ConfigOptions as C, type FormattersOptions as F, type JavaScriptOptions as J, type NextJSOptions as N, type ReactOptions as R, type StylisticConfig as S, type TypeScriptOptions as T, type UnoCSSOptions as U, type VueOptions as V, type YAMLOptions as Y, jsonc as a, type JSONOptions as b, type StylisticOptions as c, test as d, type TestOptions as e, astro as f, tailwindcss as g, type TailwindCSSOptions as h, formatters as i, javascript as j, type FlatConfigItem as k, type Awaitable as l, type UserConfigItem as m, nextjs as n, StylisticConfigDefaults as o, type TOMLOptions as p, toml as q, react as r, stylistic as s, typescript as t, unocss as u, vue as v, type SolidOptions as w, solid as x, yaml as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxass/eslint-config",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "ESLint config for @luxass",
5
5
  "type": "module",
6
6
  "author": {
@@ -89,6 +89,7 @@
89
89
  "eslint-plugin-react": ">=7.33.2",
90
90
  "eslint-plugin-react-hooks": ">=4.6.0",
91
91
  "eslint-plugin-react-refresh": ">=0.4",
92
+ "eslint-plugin-solid": ">=0.13.0",
92
93
  "eslint-plugin-tailwindcss": ">=3.13.0",
93
94
  "eslint-plugin-vuejs-accessibility": ">=2.2.0"
94
95
  },
@@ -116,6 +117,9 @@
116
117
  },
117
118
  "eslint-plugin-vuejs-accessibility": {
118
119
  "optional": true
120
+ },
121
+ "eslint-plugin-solid": {
122
+ "optional": true
119
123
  }
120
124
  },
121
125
  "dependencies": {
@@ -173,6 +177,7 @@
173
177
  "eslint-plugin-react": "^7.33.2",
174
178
  "eslint-plugin-react-hooks": "^4.6.0",
175
179
  "eslint-plugin-react-refresh": "^0.4.5",
180
+ "eslint-plugin-solid": "^0.13.1",
176
181
  "eslint-plugin-tailwindcss": "^3.13.1",
177
182
  "eslint-plugin-vuejs-accessibility": "^2.2.0",
178
183
  "lint-staged": "^15.2.0",