1
1
import globals from 'globals' ;
2
2
import stylistic from '@stylistic/eslint-plugin' ;
3
3
import json from '@eslint/json' ;
4
+ import css from '@eslint/css' ;
4
5
5
6
const rules = {
6
7
'@stylistic/comma-dangle' : [
@@ -733,6 +734,7 @@ const config = {
733
734
} ,
734
735
linterOptions : {
735
736
reportUnusedDisableDirectives : 'error' ,
737
+ reportUnusedInlineConfigs : 'error' ,
736
738
} ,
737
739
plugins : {
738
740
'@stylistic' : stylistic ,
@@ -746,6 +748,8 @@ const config = {
746
748
const jsonRules = {
747
749
'json/no-duplicate-keys' : 'error' ,
748
750
'json/no-empty-keys' : 'error' ,
751
+ 'json/no-unsafe-values' : 'error' ,
752
+ 'json/no-unnormalized-keys' : 'error' ,
749
753
} ;
750
754
751
755
const jsonConfig = {
@@ -765,9 +769,13 @@ const jsoncConfig = {
765
769
} ,
766
770
files : [
767
771
'**/*.jsonc' ,
772
+ '**/tsconfig.json' ,
768
773
'.vscode/*.json' ,
769
774
] ,
770
775
language : 'json/jsonc' ,
776
+ languageOptions : {
777
+ allowTrailingCommas : true ,
778
+ } ,
771
779
rules : jsonRules ,
772
780
} ;
773
781
@@ -782,9 +790,32 @@ const json5Config = {
782
790
rules : jsonRules ,
783
791
} ;
784
792
793
+ const cssRules = {
794
+ 'css/no-duplicate-imports' : 'error' ,
795
+ 'css/no-empty-blocks' : 'error' ,
796
+ 'css/no-invalid-at-rules' : 'error' ,
797
+ 'cs//no-invalid-at-rules' : 'error' ,
798
+ 'css/no-invalid-properties' : 'error' ,
799
+ } ;
800
+
801
+ // eslint-disable-next-line no-unused-vars
802
+ const cssConfig = {
803
+ plugins : {
804
+ css,
805
+ } ,
806
+ files : [
807
+ '**/*.css' ,
808
+ ] ,
809
+ language : 'css/css' ,
810
+ rules : cssRules ,
811
+ } ;
812
+
785
813
export default [
786
814
config ,
787
- jsonConfig ,
788
815
jsoncConfig ,
789
816
json5Config ,
817
+ jsonConfig , // Placed last so non-standard JSONs match first.
818
+
819
+ // Disabled for now until it becomes more stable.
820
+ // cssConfig,
790
821
] ;
0 commit comments