1414 * limitations under the License.
1515 */
1616
17- import js from '@eslint/js' ;
18- import tseslint from 'typescript-eslint' ;
17+ import js from "@eslint/js" ;
18+ import tseslint from "typescript-eslint" ;
19+ import eslintPluginSecurity from "eslint-plugin-security" ;
1920
2021export default [
2122 {
@@ -35,7 +36,8 @@ export default [
3536 {
3637 files : [ '**/*.ts' , '**/*.js' ] ,
3738 plugins : {
38- "@typescript-eslint" : tseslint . plugin
39+ "@typescript-eslint" : tseslint . plugin ,
40+ security : eslintPluginSecurity ,
3941 } ,
4042 languageOptions : {
4143 ecmaVersion : 9 ,
@@ -48,52 +50,27 @@ export default [
4850 }
4951 } ,
5052 rules : {
53+ // TypeScript-specific
5154 "@typescript-eslint/no-unused-vars" : [
5255 "warn" ,
5356 {
5457 "argsIgnorePattern" : "^_"
5558 }
5659 ] ,
57- "block-spacing" : [
58- "error" ,
59- "always"
60- ] ,
61- "brace-style" : [
62- "error" ,
63- "1tbs" ,
64- {
65- "allowSingleLine" : true
66- }
67- ] ,
68- "eol-last" : [
69- "error"
70- ] ,
71- "indent" : [
72- "error" ,
73- 4 ,
74- {
75- "SwitchCase" : 1
76- }
77- ] ,
78- "linebreak-style" : [
79- "error" ,
80- "unix"
81- ] ,
82- "no-trailing-spaces" : [
83- "error"
84- ] ,
85- "object-curly-spacing" : [
86- "error" ,
87- "always"
88- ] ,
89- "quotes" : [
90- "error" ,
91- "single"
92- ] ,
93- "semi" : [
94- "error" ,
95- "always"
96- ]
60+
61+ // Security rules
62+ ...eslintPluginSecurity . configs . recommended . rules ,
63+
64+ // Code style rules
65+ "block-spacing" : [ "error" , "always" ] ,
66+ "brace-style" : [ "error" , "1tbs" , { allowSingleLine : true } ] ,
67+ "eol-last" : [ "error" ] ,
68+ "indent" : [ "error" , 4 , { SwitchCase : 1 } ] ,
69+ "linebreak-style" : [ "error" , "unix" ] ,
70+ "no-trailing-spaces" : [ "error" ] ,
71+ "object-curly-spacing" : [ "error" , "always" ] ,
72+ "quotes" : [ "error" , "single" ] ,
73+ "semi" : [ "error" , "always" ] ,
9774 } ,
9875 }
9976] ;
0 commit comments