@ethang/eslint-config 19.2.5 → 19.2.7-beta.NaN

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
@@ -5,7 +5,7 @@
5
5
  > [!CAUTION]
6
6
  > Do not use this with Prettier! Styling rules are included.
7
7
 
8
- - 883 errored rules.
8
+ - 884 errored rules.
9
9
  - 289 rules from [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md)
10
10
  - 144 rules from [@eslint/js](https://github.com/eslint/eslint/tree/main/packages/js)
11
11
  - 113 rules from [sindresorhus/eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
@@ -22,6 +22,7 @@
22
22
  - 2 rules from [@eslint/json](https://github.com/eslint/json)
23
23
  - 1 rule from [eslint-plugin-depend](https://github.com/es-tooling/eslint-plugin-depend/tree/main)
24
24
  - 1 rule from [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat)
25
+ - 1 rule from [@ethang/eslint-plugin](https://github.com/eglove/eslint-plugin)
25
26
 
26
27
  # Add Even More!
27
28
 
@@ -20,6 +20,7 @@ import { jsonRules } from "../setup/json.js";
20
20
  import { astroRules } from "../setup/astro.js";
21
21
  import { reactRules } from "../setup/react.js";
22
22
  import { solidRules } from "../setup/solid.js";
23
+ import { ethangRules } from "../setup/ethang.js";
23
24
 
24
25
  export const updateReadme = () => {
25
26
  const md = new MarkdownGenerator();
@@ -123,6 +124,11 @@ export const updateReadme = () => {
123
124
  name: "@eslint/json",
124
125
  url: "https://github.com/eslint/json",
125
126
  },
127
+ {
128
+ list: ethangRules,
129
+ name: "@ethang/eslint-plugin",
130
+ url: "https://github.com/eglove/eslint-plugin",
131
+ },
126
132
  ];
127
133
 
128
134
  let total = 0;
@@ -18,6 +18,7 @@ import { deprecatedRules } from "../setup/deprecated.js";
18
18
  import { markdownRules } from "../setup/markdown.js";
19
19
  import { jsonRules } from "../setup/json.js";
20
20
  import { getLatestReact } from "./get-react-version.mjs";
21
+ import { ethangRules } from "../setup/ethang.js";
21
22
 
22
23
  export const updateRules = async () => {
23
24
  let configFile = "";
@@ -36,6 +37,7 @@ export const updateRules = async () => {
36
37
  ...unicornRules,
37
38
  ...lodashRules,
38
39
  ...sonarRules,
40
+ ...ethangRules,
39
41
  ...tanstackQueryRules,
40
42
  ...tailwindRules,
41
43
  ...stylisticRules,
@@ -66,6 +68,7 @@ export const updateRules = async () => {
66
68
  'import markdown from "@eslint/markdown";',
67
69
  'import json from "@eslint/json";',
68
70
  'import { ignores } from "./constants.js";',
71
+ 'import ethang from "@ethang/eslint-plugin";',
69
72
  ].sort((a, b) => {
70
73
  return a.localeCompare(b);
71
74
  });
@@ -97,6 +100,7 @@ export default tseslint.config(
97
100
  barrel,
98
101
  compat,
99
102
  depend,
103
+ ethang,
100
104
  lodash: lodashConfig,
101
105
  n,
102
106
  perfectionist,
package/eslint.config.js CHANGED
@@ -3,6 +3,7 @@ import a11y from "eslint-plugin-jsx-a11y/lib/index.js";
3
3
  import barrel from "eslint-plugin-barrel-files";
4
4
  import compat from "eslint-plugin-compat";
5
5
  import depend from "eslint-plugin-depend";
6
+ import ethang from "@ethang/eslint-plugin";
6
7
  import json from "@eslint/json";
7
8
  import lodashConfig from "eslint-plugin-lodash";
8
9
  import markdown from "@eslint/markdown";
@@ -39,6 +40,7 @@ export default tseslint.config(
39
40
  barrel,
40
41
  compat,
41
42
  depend,
43
+ ethang,
42
44
  lodash: lodashConfig,
43
45
  n,
44
46
  perfectionist,
@@ -612,441 +614,6 @@ export default tseslint.config(
612
614
  "lodash/preferred-alias": "error",
613
615
  "lodash/prop-shorthand": ["error", "always"],
614
616
  "lodash/unwrap": "error",
615
- "sonar/S100": "off",
616
- "sonar/S101": "off",
617
- "sonar/S103": "off",
618
- "sonar/S104": "off",
619
- "sonar/S105": "off",
620
- "sonar/S106": "off",
621
- "sonar/S1066": "off",
622
- "sonar/S1067": "off",
623
- "sonar/S1068": "off",
624
- "sonar/S107": "off",
625
- "sonar/S1077": "off",
626
- "sonar/S108": "off",
627
- "sonar/S1082": "off",
628
- "sonar/S109": "off",
629
- "sonar/S1090": "off",
630
- "sonar/S1105": "off",
631
- "sonar/S1110": "off",
632
- "sonar/S1116": "off",
633
- "sonar/S1117": "off",
634
- "sonar/S1119": "off",
635
- "sonar/S1121": "off",
636
- "sonar/S1125": "off",
637
- "sonar/S1126": "off",
638
- "sonar/S1128": "off",
639
- "sonar/S113": "off",
640
- "sonar/S1131": "off",
641
- "sonar/S1134": "off",
642
- "sonar/S1135": "off",
643
- "sonar/S1143": "off",
644
- "sonar/S1154": "off",
645
- "sonar/S117": "off",
646
- "sonar/S1172": "off",
647
- "sonar/S1186": "off",
648
- "sonar/S1192": "off",
649
- "sonar/S1199": "off",
650
- "sonar/S121": "off",
651
- "sonar/S1219": "off",
652
- "sonar/S122": "off",
653
- "sonar/S1226": "off",
654
- "sonar/S124": "off",
655
- "sonar/S125": "off",
656
- "sonar/S126": "off",
657
- "sonar/S1264": "off",
658
- "sonar/S128": "off",
659
- "sonar/S1301": "off",
660
- "sonar/S131": "off",
661
- "sonar/S1313": "off",
662
- "sonar/S1314": "off",
663
- "sonar/S1321": "off",
664
- "sonar/S134": "off",
665
- "sonar/S135": "off",
666
- "sonar/S138": "off",
667
- "sonar/S139": "off",
668
- "sonar/S1438": "off",
669
- "sonar/S1439": "off",
670
- "sonar/S1440": "off",
671
- "sonar/S1441": "off",
672
- "sonar/S1442": "off",
673
- "sonar/S1444": "off",
674
- "sonar/S1451": "off",
675
- "sonar/S1472": "off",
676
- "sonar/S1479": "off",
677
- "sonar/S1481": "off",
678
- "sonar/S1488": "off",
679
- "sonar/S1515": "off",
680
- "sonar/S1516": "off",
681
- "sonar/S1523": "off",
682
- "sonar/S1525": "off",
683
- "sonar/S1526": "off",
684
- "sonar/S1527": "off",
685
- "sonar/S1528": "off",
686
- "sonar/S1529": "off",
687
- "sonar/S1530": "off",
688
- "sonar/S1533": "off",
689
- "sonar/S1534": "off",
690
- "sonar/S1535": "off",
691
- "sonar/S1536": "off",
692
- "sonar/S1537": "off",
693
- "sonar/S1539": "off",
694
- "sonar/S1541": "off",
695
- "sonar/S1656": "off",
696
- "sonar/S1751": "off",
697
- "sonar/S1763": "off",
698
- "sonar/S1764": "off",
699
- "sonar/S1774": "off",
700
- "sonar/S1788": "off",
701
- "sonar/S1821": "off",
702
- "sonar/S1848": "off",
703
- "sonar/S1854": "off",
704
- "sonar/S1862": "off",
705
- "sonar/S1871": "off",
706
- "sonar/S1874": "off",
707
- "sonar/S1940": "off",
708
- "sonar/S1994": "off",
709
- "sonar/S2004": "off",
710
- "sonar/S2068": "off",
711
- "sonar/S2077": "off",
712
- "sonar/S2092": "off",
713
- "sonar/S2094": "off",
714
- "sonar/S2123": "off",
715
- "sonar/S2137": "off",
716
- "sonar/S2138": "off",
717
- "sonar/S2187": "off",
718
- "sonar/S2189": "off",
719
- "sonar/S2201": "off",
720
- "sonar/S2208": "off",
721
- "sonar/S2234": "off",
722
- "sonar/S2245": "off",
723
- "sonar/S2251": "off",
724
- "sonar/S2255": "off",
725
- "sonar/S2259": "off",
726
- "sonar/S2310": "off",
727
- "sonar/S2376": "off",
728
- "sonar/S2392": "off",
729
- "sonar/S2424": "off",
730
- "sonar/S2427": "off",
731
- "sonar/S2430": "off",
732
- "sonar/S2432": "off",
733
- "sonar/S2428": "off",
734
- "sonar/S2486": "off",
735
- "sonar/S2589": "off",
736
- "sonar/S2598": "off",
737
- "sonar/S2612": "off",
738
- "sonar/S2639": "off",
739
- "sonar/S2681": "off",
740
- "sonar/S2685": "off",
741
- "sonar/S2688": "off",
742
- "sonar/S2692": "off",
743
- "sonar/S2699": "off",
744
- "sonar/S2703": "off",
745
- "sonar/S2737": "off",
746
- "sonar/S2755": "off",
747
- "sonar/S2757": "off",
748
- "sonar/S2814": "off",
749
- "sonar/S2817": "off",
750
- "sonar/S2819": "off",
751
- "sonar/S2870": "off",
752
- "sonar/S2871": "off",
753
- "sonar/S2933": "off",
754
- "sonar/S2966": "off",
755
- "sonar/S2970": "off",
756
- "sonar/S2990": "off",
757
- "sonar/S2999": "off",
758
- "sonar/S3001": "off",
759
- "sonar/S3003": "off",
760
- "sonar/S3257": "off",
761
- "sonar/S3317": "off",
762
- "sonar/S3330": "off",
763
- "sonar/S3353": "off",
764
- "sonar/S3358": "off",
765
- "sonar/S3402": "off",
766
- "sonar/S3403": "off",
767
- "sonar/S3415": "off",
768
- "sonar/S3498": "off",
769
- "sonar/S3499": "off",
770
- "sonar/S3500": "off",
771
- "sonar/S3504": "off",
772
- "sonar/S3512": "off",
773
- "sonar/S3513": "off",
774
- "sonar/S3514": "off",
775
- "sonar/S3516": "off",
776
- "sonar/S3523": "off",
777
- "sonar/S3524": "off",
778
- "sonar/S3525": "off",
779
- "sonar/S3531": "off",
780
- "sonar/S3533": "off",
781
- "sonar/S3579": "off",
782
- "sonar/S3616": "off",
783
- "sonar/S3626": "off",
784
- "sonar/S3686": "off",
785
- "sonar/S3696": "off",
786
- "sonar/S3699": "off",
787
- "sonar/S3758": "off",
788
- "sonar/S3723": "off",
789
- "sonar/S3735": "off",
790
- "sonar/S3757": "off",
791
- "sonar/S3760": "off",
792
- "sonar/S3776": "off",
793
- "sonar/S3782": "off",
794
- "sonar/S3785": "off",
795
- "sonar/S3786": "off",
796
- "sonar/S3796": "off",
797
- "sonar/S3798": "off",
798
- "sonar/S3799": "off",
799
- "sonar/S3800": "off",
800
- "sonar/S3801": "off",
801
- "sonar/S3812": "off",
802
- "sonar/S3827": "off",
803
- "sonar/S3834": "off",
804
- "sonar/S3854": "off",
805
- "sonar/S3863": "off",
806
- "sonar/S3923": "off",
807
- "sonar/S3972": "off",
808
- "sonar/S3973": "off",
809
- "sonar/S3981": "off",
810
- "sonar/S3984": "off",
811
- "sonar/S4023": "off",
812
- "sonar/S4030": "off",
813
- "sonar/S4036": "off",
814
- "sonar/S4043": "off",
815
- "sonar/S4084": "off",
816
- "sonar/S4123": "off",
817
- "sonar/S4124": "off",
818
- "sonar/S4125": "off",
819
- "sonar/S4136": "off",
820
- "sonar/S4137": "off",
821
- "sonar/S4138": "off",
822
- "sonar/S4139": "off",
823
- "sonar/S4140": "off",
824
- "sonar/S4143": "off",
825
- "sonar/S4144": "off",
826
- "sonar/S4156": "off",
827
- "sonar/S4157": "off",
828
- "sonar/S4158": "off",
829
- "sonar/S4165": "off",
830
- "sonar/S4204": "off",
831
- "sonar/S4275": "off",
832
- "sonar/S4322": "off",
833
- "sonar/S4323": "off",
834
- "sonar/S4324": "off",
835
- "sonar/S4325": "off",
836
- "sonar/S4326": "off",
837
- "sonar/S4327": "off",
838
- "sonar/S4328": "off",
839
- "sonar/S4335": "off",
840
- "sonar/S4423": "off",
841
- "sonar/S4426": "off",
842
- "sonar/S4502": "off",
843
- "sonar/S4507": "off",
844
- "sonar/S4524": "off",
845
- "sonar/S4619": "off",
846
- "sonar/S4621": "off",
847
- "sonar/S4622": "off",
848
- "sonar/S4623": "off",
849
- "sonar/S4624": "off",
850
- "sonar/S4634": "off",
851
- "sonar/S4721": "off",
852
- "sonar/S4782": "off",
853
- "sonar/S4784": "off",
854
- "sonar/S4787": "off",
855
- "sonar/S4790": "off",
856
- "sonar/S4798": "off",
857
- "sonar/S4817": "off",
858
- "sonar/S4818": "off",
859
- "sonar/S4822": "off",
860
- "sonar/S4823": "off",
861
- "sonar/S4829": "off",
862
- "sonar/S4830": "off",
863
- "sonar/S5042": "off",
864
- "sonar/S5122": "off",
865
- "sonar/S5148": "off",
866
- "sonar/S5247": "off",
867
- "sonar/S5254": "off",
868
- "sonar/S5256": "off",
869
- "sonar/S5257": "off",
870
- "sonar/S5260": "off",
871
- "sonar/S5264": "off",
872
- "sonar/S5332": "off",
873
- "sonar/S5443": "off",
874
- "sonar/S5527": "off",
875
- "sonar/S5542": "off",
876
- "sonar/S5547": "off",
877
- "sonar/S5604": "off",
878
- "sonar/S5659": "off",
879
- "sonar/S5689": "off",
880
- "sonar/S5691": "off",
881
- "sonar/S5693": "off",
882
- "sonar/S5725": "off",
883
- "sonar/S5728": "off",
884
- "sonar/S5730": "off",
885
- "sonar/S5732": "off",
886
- "sonar/S5734": "off",
887
- "sonar/S5736": "off",
888
- "sonar/S5739": "off",
889
- "sonar/S5742": "off",
890
- "sonar/S5743": "off",
891
- "sonar/S5757": "off",
892
- "sonar/S5759": "off",
893
- "sonar/S5842": "off",
894
- "sonar/S5843": "off",
895
- "sonar/S5850": "off",
896
- "sonar/S5852": "off",
897
- "sonar/S5856": "off",
898
- "sonar/S5860": "off",
899
- "sonar/S5863": "off",
900
- "sonar/S5867": "off",
901
- "sonar/S5868": "off",
902
- "sonar/S5869": "off",
903
- "sonar/S5876": "off",
904
- "sonar/S5958": "off",
905
- "sonar/S5973": "off",
906
- "sonar/S6019": "off",
907
- "sonar/S6035": "off",
908
- "sonar/S6079": "off",
909
- "sonar/S6080": "off",
910
- "sonar/S6092": "off",
911
- "sonar/S6245": "off",
912
- "sonar/S6249": "off",
913
- "sonar/S6252": "off",
914
- "sonar/S6265": "off",
915
- "sonar/S6268": "off",
916
- "sonar/S6270": "off",
917
- "sonar/S6275": "off",
918
- "sonar/S6281": "off",
919
- "sonar/S6299": "off",
920
- "sonar/S6302": "off",
921
- "sonar/S6303": "off",
922
- "sonar/S6304": "off",
923
- "sonar/S6308": "off",
924
- "sonar/S6317": "off",
925
- "sonar/S6319": "off",
926
- "sonar/S6321": "off",
927
- "sonar/S6323": "off",
928
- "sonar/S6324": "off",
929
- "sonar/S6325": "off",
930
- "sonar/S6326": "off",
931
- "sonar/S6327": "off",
932
- "sonar/S6328": "off",
933
- "sonar/S6329": "off",
934
- "sonar/S6330": "off",
935
- "sonar/S6331": "off",
936
- "sonar/S6332": "off",
937
- "sonar/S6333": "off",
938
- "sonar/S6351": "off",
939
- "sonar/S6353": "off",
940
- "sonar/S6397": "off",
941
- "sonar/S6426": "off",
942
- "sonar/S6435": "off",
943
- "sonar/S6438": "off",
944
- "sonar/S6439": "off",
945
- "sonar/S6440": "off",
946
- "sonar/S6441": "off",
947
- "sonar/S6442": "off",
948
- "sonar/S6443": "off",
949
- "sonar/S6477": "off",
950
- "sonar/S6478": "off",
951
- "sonar/S6479": "off",
952
- "sonar/S6480": "off",
953
- "sonar/S6481": "off",
954
- "sonar/S6486": "off",
955
- "sonar/S6509": "off",
956
- "sonar/S6522": "off",
957
- "sonar/S6523": "off",
958
- "sonar/S6534": "off",
959
- "sonar/S6535": "off",
960
- "sonar/S6544": "off",
961
- "sonar/S6550": "off",
962
- "sonar/S6551": "off",
963
- "sonar/S6557": "off",
964
- "sonar/S6564": "off",
965
- "sonar/S6565": "off",
966
- "sonar/S6568": "off",
967
- "sonar/S6569": "off",
968
- "sonar/S6571": "off",
969
- "sonar/S6572": "off",
970
- "sonar/S6578": "off",
971
- "sonar/S6582": "off",
972
- "sonar/S6583": "off",
973
- "sonar/S6590": "off",
974
- "sonar/S6594": "off",
975
- "sonar/S6598": "off",
976
- "sonar/S6606": "off",
977
- "sonar/S6635": "off",
978
- "sonar/S6637": "off",
979
- "sonar/S6638": "off",
980
- "sonar/S6643": "off",
981
- "sonar/S6644": "off",
982
- "sonar/S6645": "off",
983
- "sonar/S6647": "off",
984
- "sonar/S6650": "off",
985
- "sonar/S6653": "off",
986
- "sonar/S6654": "off",
987
- "sonar/S6657": "off",
988
- "sonar/S6660": "off",
989
- "sonar/S6661": "off",
990
- "sonar/S6666": "off",
991
- "sonar/S6671": "off",
992
- "sonar/S6676": "off",
993
- "sonar/S6679": "off",
994
- "sonar/S6746": "off",
995
- "sonar/S6747": "off",
996
- "sonar/S6748": "off",
997
- "sonar/S6749": "off",
998
- "sonar/S6750": "off",
999
- "sonar/S6754": "off",
1000
- "sonar/S6756": "off",
1001
- "sonar/S6757": "off",
1002
- "sonar/S6759": "off",
1003
- "sonar/S6761": "off",
1004
- "sonar/S6763": "off",
1005
- "sonar/S6766": "off",
1006
- "sonar/S6767": "off",
1007
- "sonar/S6770": "off",
1008
- "sonar/S6772": "off",
1009
- "sonar/S6774": "off",
1010
- "sonar/S6775": "off",
1011
- "sonar/S6788": "off",
1012
- "sonar/S6789": "off",
1013
- "sonar/S6790": "off",
1014
- "sonar/S6791": "off",
1015
- "sonar/S6793": "off",
1016
- "sonar/S6807": "off",
1017
- "sonar/S6811": "off",
1018
- "sonar/S6819": "off",
1019
- "sonar/S6821": "off",
1020
- "sonar/S6822": "off",
1021
- "sonar/S6823": "off",
1022
- "sonar/S6824": "off",
1023
- "sonar/S6825": "off",
1024
- "sonar/S6827": "off",
1025
- "sonar/S6836": "off",
1026
- "sonar/S6840": "off",
1027
- "sonar/S6841": "off",
1028
- "sonar/S6842": "off",
1029
- "sonar/S6843": "off",
1030
- "sonar/S6844": "off",
1031
- "sonar/S6845": "off",
1032
- "sonar/S6846": "off",
1033
- "sonar/S6847": "off",
1034
- "sonar/S6848": "off",
1035
- "sonar/S6850": "off",
1036
- "sonar/S6851": "off",
1037
- "sonar/S6852": "off",
1038
- "sonar/S6853": "off",
1039
- "sonar/S6859": "off",
1040
- "sonar/S6861": "off",
1041
- "sonar/S6957": "off",
1042
- "sonar/S6958": "off",
1043
- "sonar/S6959": "off",
1044
- "sonar/S878": "off",
1045
- "sonar/S881": "off",
1046
- "sonar/S888": "off",
1047
- "sonar/S905": "off",
1048
- "sonar/S909": "off",
1049
- "sonar/S930": "off",
1050
617
  "sonar/accessor-pairs": "error",
1051
618
  "sonar/alt-text": "error",
1052
619
  "sonar/anchor-has-content": "error",
@@ -1373,6 +940,7 @@ export default tseslint.config(
1373
940
  "sonar/x-powered-by": "error",
1374
941
  "sonar/xml-parser-xxe": "error",
1375
942
  "sonar/xpath": "off",
943
+ "ethang/handle-native-error": "error",
1376
944
  "@tanstack/query/exhaustive-deps": "error",
1377
945
  "@tanstack/query/stable-query-client": "error",
1378
946
  "@tanstack/query/no-rest-destructuring": "error",
@@ -1405,7 +973,31 @@ export default tseslint.config(
1405
973
  "stylistic/generator-star-spacing": "error",
1406
974
  "stylistic/implicit-arrow-linebreak": "error",
1407
975
  "stylistic/indent": ["error", 2],
976
+ "stylistic/indent-binary-ops": "error",
977
+ "stylistic/jsx-child-element-spacing": "error",
978
+ "stylistic/jsx-closing-bracket-location": "error",
979
+ "stylistic/jsx-closing-tag-location": "error",
980
+ "stylistic/jsx-curly-brace-presence": "error",
981
+ "stylistic/jsx-curly-newline": "error",
982
+ "stylistic/jsx-curly-spacing": "error",
983
+ "stylistic/jsx-equals-spacing": "error",
984
+ "stylistic/jsx-first-prop-new-line": "error",
985
+ "stylistic/jsx-function-call-newline": "error",
986
+ "stylistic/jsx-indent": "off",
987
+ "stylistic/jsx-indent-props": ["error", 2],
988
+ "stylistic/jsx-max-props-per-line": "error",
989
+ "stylistic/jsx-newline": ["error", { prevent: true }],
990
+ "stylistic/jsx-one-expression-per-line": "error",
991
+ "stylistic/jsx-pascal-case": "error",
992
+ "stylistic/jsx-props-no-multi-spaces": "error",
1408
993
  "stylistic/jsx-quotes": "error",
994
+ "stylistic/jsx-self-closing-comp": "error",
995
+ "stylistic/jsx-sort-props": "off",
996
+ "stylistic/jsx-tag-spacing": "error",
997
+ "stylistic/jsx-wrap-multilines": [
998
+ "error",
999
+ { declaration: "parens-new-line" },
1000
+ ],
1409
1001
  "stylistic/key-spacing": "error",
1410
1002
  "stylistic/keyword-spacing": "error",
1411
1003
  "stylistic/line-comment-position": "off",
@@ -1424,6 +1016,7 @@ export default tseslint.config(
1424
1016
  },
1425
1017
  ],
1426
1018
  "stylistic/max-statements-per-line": "error",
1019
+ "stylistic/member-delimiter-style": "error",
1427
1020
  "stylistic/multiline-comment-style": "off",
1428
1021
  "stylistic/multiline-ternary": "error",
1429
1022
  "stylistic/new-parens": "error",
@@ -1472,37 +1065,12 @@ export default tseslint.config(
1472
1065
  "stylistic/switch-colon-spacing": "error",
1473
1066
  "stylistic/template-curly-spacing": "error",
1474
1067
  "stylistic/template-tag-spacing": "error",
1475
- "stylistic/wrap-iife": "error",
1476
- "stylistic/wrap-regex": "error",
1477
- "stylistic/yield-star-spacing": "error",
1478
- "stylistic/jsx-child-element-spacing": "error",
1479
- "stylistic/jsx-closing-bracket-location": "error",
1480
- "stylistic/jsx-closing-tag-location": "error",
1481
- "stylistic/jsx-curly-brace-presence": "error",
1482
- "stylistic/jsx-curly-newline": "error",
1483
- "stylistic/jsx-curly-spacing": "error",
1484
- "stylistic/jsx-equals-spacing": "error",
1485
- "stylistic/jsx-first-prop-new-line": "error",
1486
- "stylistic/jsx-function-call-newline": "error",
1487
- "stylistic/jsx-indent": "off",
1488
- "stylistic/jsx-indent-props": ["error", 2],
1489
- "stylistic/jsx-max-props-per-line": "error",
1490
- "stylistic/jsx-newline": ["error", { prevent: true }],
1491
- "stylistic/jsx-one-expression-per-line": "error",
1492
- "stylistic/jsx-pascal-case": "error",
1493
- "stylistic/jsx-props-no-multi-spaces": "error",
1494
- "stylistic/jsx-self-closing-comp": "error",
1495
- "stylistic/jsx-sort-props": "off",
1496
- "stylistic/jsx-tag-spacing": "error",
1497
- "stylistic/jsx-wrap-multilines": [
1498
- "error",
1499
- { declaration: "parens-new-line" },
1500
- ],
1501
- "stylistic/member-delimiter-style": "error",
1502
1068
  "stylistic/type-annotation-spacing": "error",
1503
- "stylistic/indent-binary-ops": "error",
1504
1069
  "stylistic/type-generic-spacing": "error",
1505
1070
  "stylistic/type-named-tuple-spacing": "error",
1071
+ "stylistic/wrap-iife": "error",
1072
+ "stylistic/wrap-regex": "error",
1073
+ "stylistic/yield-star-spacing": "error",
1506
1074
  "perfectionist/sort-variable-declarations": [
1507
1075
  "error",
1508
1076
  { order: "asc", type: "alphabetical" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethang/eslint-config",
3
- "version": "19.2.5",
3
+ "version": "19.2.7-beta.NaN",
4
4
  "repository": {
5
5
  "url": "git+https://github.com/eglove/eslint-config-ethang.git"
6
6
  },
@@ -13,12 +13,13 @@
13
13
  "lint": "prettier . -w"
14
14
  },
15
15
  "dependencies": {
16
- "@eslint-react/eslint-plugin": "^1.12.3",
16
+ "@eslint-react/eslint-plugin": "^1.12.4",
17
17
  "@eslint/js": "^9.9.1",
18
18
  "@eslint/json": "^0.4.0",
19
19
  "@eslint/markdown": "^6.0.0",
20
- "@stylistic/eslint-plugin": "^2.7.1",
21
- "@tanstack/eslint-plugin-query": "^5.52.0",
20
+ "@ethang/eslint-plugin": "^0.0.3",
21
+ "@stylistic/eslint-plugin": "^2.7.2",
22
+ "@tanstack/eslint-plugin-query": "^5.53.0",
22
23
  "@typescript-eslint/parser": "^8.3.0",
23
24
  "eslint": "^9.9.1",
24
25
  "eslint-plugin-astro": "^1.2.3",
@@ -31,7 +32,7 @@
31
32
  "eslint-plugin-perfectionist": "^3.3.0",
32
33
  "eslint-plugin-react-hooks": "^4.6.2",
33
34
  "eslint-plugin-solid": "^0.14.2",
34
- "eslint-plugin-sonarjs": "2.0.1",
35
+ "eslint-plugin-sonarjs": "2.0.2",
35
36
  "eslint-plugin-tailwindcss": "^3.17.4",
36
37
  "eslint-plugin-unicorn": "^55.0.0",
37
38
  "typescript": "^5.5.4",
@@ -39,18 +40,19 @@
39
40
  },
40
41
  "devDependencies": {
41
42
  "@ethang/markdown-generator": "^1.1.1",
42
- "@ethang/project-builder": "^2.5.1",
43
+ "@ethang/project-builder": "^2.5.3",
43
44
  "@tsconfig/node-lts": "^20.1.3",
44
45
  "@tsconfig/strictest": "^2.0.5",
45
46
  "prettier": "^3.3.3"
46
47
  },
47
48
  "peerDependencies": {
48
- "@eslint-react/eslint-plugin": "^1.12.3",
49
+ "@eslint-react/eslint-plugin": "^1.12.4",
49
50
  "@eslint/js": "^9.9.1",
50
51
  "@eslint/json": "^0.4.0",
51
52
  "@eslint/markdown": "^6.0.0",
52
- "@stylistic/eslint-plugin": "^2.7.1",
53
- "@tanstack/eslint-plugin-query": "^5.52.0",
53
+ "@ethang/eslint-plugin": "^0.0.3",
54
+ "@stylistic/eslint-plugin": "^2.7.2",
55
+ "@tanstack/eslint-plugin-query": "^5.53.0",
54
56
  "@typescript-eslint/parser": "^8.3.0",
55
57
  "eslint": "^9.9.1",
56
58
  "eslint-plugin-astro": "^1.2.3",
@@ -63,7 +65,7 @@
63
65
  "eslint-plugin-perfectionist": "^3.3.0",
64
66
  "eslint-plugin-react-hooks": "^4.6.2",
65
67
  "eslint-plugin-solid": "^0.14.2",
66
- "eslint-plugin-sonarjs": "2.0.1",
68
+ "eslint-plugin-sonarjs": "2.0.2",
67
69
  "eslint-plugin-tailwindcss": "^3.17.4",
68
70
  "eslint-plugin-unicorn": "^55.0.0",
69
71
  "typescript": "^5.5.4",
@@ -0,0 +1,6 @@
1
+ import ethang from "@ethang/eslint-plugin";
2
+ import { genRules } from "./gen-rules.js";
3
+
4
+ const ruleNames = Object.keys(ethang.rules);
5
+
6
+ export const ethangRules = genRules(ruleNames, [], "ethang");
@@ -31,5 +31,9 @@ export const genRules = (ruleNames, customRules, prefix, defaultOverride) => {
31
31
  }
32
32
  }
33
33
 
34
- return rules;
34
+ return Object.fromEntries(
35
+ Object.entries(rules).sort(([a], [b]) => {
36
+ a.localeCompare(b);
37
+ }),
38
+ );
35
39
  };