@wildpastry/eslint-config 1.7.9 → 1.8.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 (5) hide show
  1. package/.eslintrc +230 -228
  2. package/.prettierrc +19 -0
  3. package/README.md +121 -29
  4. package/index.js +294 -305
  5. package/package.json +1 -1
package/index.js CHANGED
@@ -36,315 +36,304 @@ export default [
36
36
  prettier: pluginPrettier,
37
37
  },
38
38
  rules: {
39
- // Code
40
- "no-inferrable-types": 0, // disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean // DONE - OFF
41
- "no-unsafe-assignment": 0, // disallow assigning a value with type any to variables and properties // DONE - OFF
42
- "no-unsafe-member-access": 0, //disallow member access on a value with type any // DONE - OFF
43
- "array-callback-return": 0, // enforce `return` statements in callbacks of array methods // DONE - OFF
44
- "no-await-in-loop": 0, // disallow `await` inside of loops // DONE - OFF
45
- "no-constructor-return": 0, // disallow returning value from constructor // DONE - OFF
46
- "no-duplicate-imports": 1, // disallow duplicate module imports // DONE
47
- "no-promise-executor-return": 0, // disallow returning values from Promise executor functions // DONE - OFF
48
- "no-self-compare": 1, // disallow comparisons where both sides are exactly the same // DONE
49
- "no-template-curly-in-string": 0, // disallow template literal placeholder syntax in regular strings // DONE - OFF
50
- "no-unmodified-loop-condition": 1, // disallow unmodified loop conditions // DONE
51
- "no-unreachable-loop": 1, // disallow loops with a body that allows only one iteration // DONE
52
- "no-use-before-define": 0, // disallow the use of variables before they are defined // DONE - OFF
53
- "require-atomic-updates": 1, // disallow assignments that can lead to race conditions due to usage of `await` or `yield` // DONE
54
- "accessor-pairs": 0, // enforce getter and setter pairs in objects and classes // DONE - OFF
55
- "arrow-body-style": 0, // require braces around arrow function bodies // DONE - OFF
56
- "block-scoped-var": 1, // enforce the use of variables within the scope they are defined // DONE
57
- "camelcase": 1, // enforce camelcase naming convention // DONE
58
- "capitalized-comments": 1, // enforce or disallow capitalization of the first letter of a comment // DONE
59
- "class-methods-use-this": 0, // enforce that class methods utilize `this` // DONE - OFF
60
- "complexity": 0, // enforce a maximum cyclomatic complexity allowed in a program // DONE - OFF
61
- "consistent-return": 1, // require `return` statements to either always or never specify values // DONE
62
- "consistent-this": 1, // enforce consistent naming when capturing the current execution context // DONE
63
- "default-case": 1, // require `default` cases in `switch` statements // DONE
64
- "default-case-last": 1, // enforce default clauses in switch statements to be last // DONE
65
- "default-param-last": 0, // enforce default parameters to be last // DONE - OFF
66
- "dot-notation": 1, // enforce dot notation whenever possible // DONE
67
- "eqeqeq": 1, // require the use of `===` and `!==` // DONE
68
- "func-name-matching": 1, // require function names to match the name of the variable or property to which they are assigned // DONE
69
- "func-names": 1, // require or disallow named `function` expressions // DONE
70
- "func-style": 0, // enforce the consistent use of either `function` declarations or expressions // DONE - OFF
71
- "grouped-accessor-pairs": 1, // require grouped accessor pairs in object literals and classes // DONE
72
- "guard-for-in": 1, // require `for-in` loops to include an `if` statement // DONE
73
- "id-denylist": 1, // disallow specified identifiers // DONE
74
- "id-length": 0, // enforce minimum and maximum identifier lengths // DONE - OFF
75
- "id-match": 1, // require identifiers to match a specified regular expression // DONE
76
- "init-declarations": 0, // require or disallow initialization in variable declarations // DONE - OFF
77
- "max-classes-per-file": 1, // enforce a maximum number of classes per file // DONE
78
- "max-depth": [1, 3], // enforce a maximum depth that blocks can be nested // DONE
79
- "max-lines": [1, { "max": 800, "skipBlankLines": true }], // enforce a maximum number of lines per file // DONE - CUSTOMISED
80
- "max-lines-per-function": [1, { "max": 200 }], // enforce a maximum number of lines of code in a function // DONE - CUSTOMISED
81
- "max-nested-callbacks": 1, // enforce a maximum depth that callbacks can be nested // DONE
82
- "max-params": [1, { "max": 7 }], // enforce a maximum number of parameters in function definitions // DONE - CUSTOMISED
83
- "max-statements": [1, { "max": 20 }], // enforce a maximum number of statements allowed in function blocks // DONE - CUSTOMISED
84
- "multiline-comment-style": 1, // enforce a particular style for multiline comments // DONE
85
- "new-cap": 0, // require constructor names to begin with a capital letter // DONE - OFF
86
- "no-alert": 1, // disallow the use of `alert`, `confirm`, and `prompt` // DONE
87
- "no-array-constructor": 1, // disallow `Array` constructors // DONE
88
- "no-bitwise": 1, // disallow bitwise operators // DONE
89
- "no-caller": 1, // disallow the use of `arguments.caller` or `arguments.callee` // DONE
90
- "no-case-declarations": 1, // disallow lexical declarations in case clauses // DONE
91
- "no-console": 1, // disallow the use of `console` // DONE
92
- "no-continue": 1, // disallow `continue` statements // DONE
93
- "no-delete-var": 1, // disallow deleting variables // DONE
94
- "no-div-regex": 1, // disallow division operators explicitly at the beginning of regular expressions // DONE
95
- "no-else-return": 1, // disallow `else` blocks after `return` statements in `if` statements // DONE
96
- "no-empty": 1, // disallow empty block statements // DONE
97
- "no-empty-function": [1, { "allow": ["constructors"] }], // disallow empty functions // DONE - CUSTOMISED
98
- "no-eq-null": 1, // disallow `null` comparisons without type-checking operators // DONE
99
- "no-eval": 1, // disallow the use of `eval()` // DONE
100
- "no-extend-native": 1, // disallow extending native types // DONE
101
- "no-extra-bind": 1, // disallow unnecessary calls to `.bind()` // DONE
102
- "no-extra-boolean-cast": 1, // disallow unnecessary boolean casts // DONE
103
- "no-extra-label": 1, // disallow unnecessary labels // DONE
104
- "no-global-assign": 1, // disallow assignments to native objects or read-only global variables // DONE
105
- "no-implicit-coercion": 1, // disallow shorthand type conversions // DONE
106
- "no-implicit-globals": 1, // disallow declarations in the global scope // DONE
107
- "no-implied-eval": 1, // disallow the use of `eval()`-like methods // DONE
108
- "no-inline-comments": 1, // disallow inline comments after code // DONE
109
- "no-invalid-this": 1, // disallow `this` keywords outside of classes or class-like objects // DONE
110
- "no-iterator": 1, // disallow the use of the `__iterator__` property // DONE
111
- "no-label-var": 1, // disallow labels that share a name with a variable // DONE
112
- "no-labels": 1, // disallow labeled statements // DONE
113
- "no-lone-blocks": 1, // disallow unnecessary nested blocks // DONE
114
- "no-lonely-if": 1, // disallow `if` statements as the only statement in `else` blocks // DONE
115
- "no-loop-func": 1, // disallow function declarations that contain unsafe references inside loop statements // DONE
116
- "no-magic-numbers": 0, // disallow magic numbers // Comment, this rule seems to be hard to satisfy. // DONE - OFF
117
- "no-multi-assign": 1, // disallow use of chained assignment expressions // DONE
118
- "no-multi-str": 1, // disallow multiline strings // DONE
119
- "no-negated-condition": 1, // disallow negated conditions // DONE
120
- "no-nested-ternary": 1, // disallow nested ternary expressions // DONE
121
- "no-new": 1, // disallow `new` operators outside of assignments or comparisons // DONE
122
- "no-new-func": 1, // disallow `new` operators with the `Function` object // DONE
123
- "no-new-object": 1, // disallow `Object` constructors // DONE
124
- "no-new-wrappers": 1, // disallow `new` operators with the `String`, `Number`, and `Boolean` objects // DONE
125
- "no-nonoctal-decimal-escape": 1, // disallow `\8` and `\9` escape sequences in string literals // DONE
126
- "no-octal": 1, // disallow octal literals // DONE
127
- "no-octal-escape": 1, // disallow octal escape sequences in string literals // DONE
128
- "no-param-reassign": 1, // disallow reassigning `function` parameters // DONE
129
- "no-plusplus": 0, // disallow the unary operators `++` and `--` // DONE - OFF
130
- "no-proto": 1, // disallow the use of the `__proto__` property // DONE
131
- "no-redeclare": 1, // disallow variable redeclaration // DONE
132
- "no-regex-spaces": 1, // disallow multiple spaces in regular expressions // DONE
133
- "no-restricted-exports": 1, // disallow specified names in exports // DONE
134
- "no-restricted-globals": 1, // disallow specified global variables // DONE
135
- "no-restricted-imports": 1, // disallow specified modules when loaded by `import` // DONE
136
- "no-restricted-properties": 1, // disallow certain properties on certain objects // DONE
137
- "no-restricted-syntax": 1, // disallow specified syntax // DONE
138
- "no-return-assign": 1, // disallow assignment operators in `return` statements // DONE
139
- "no-return-await": 1, // disallow unnecessary `return await` // DONE
140
- "no-script-url": 1, // disallow `javascript:` urls // DONE
141
- "no-sequences": 1, // disallow comma operators // DONE
142
- "no-shadow": 0, // disallow variable declarations from shadowing variables declared in the outer scope // DONE - OFF
143
- "no-shadow-restricted-names": 1, // disallow identifiers from shadowing restricted names // DONE
144
- "no-ternary": 0, // disallow ternary operators // DONE - OFF
145
- "no-throw-literal": 1, // disallow throwing literals as exceptions // DONE
146
- "no-undef-init": 1, // disallow initializing variables to `undefined` // DONE
147
- "no-undefined": 0, // disallow the use of `undefined` as an identifier // DONE - OFF
148
- "no-underscore-dangle": 0, // disallow dangling underscores in identifiers // DONE - OFF
149
- "no-unneeded-ternary": 0, // disallow ternary operators when simpler alternatives exist // DONE - OFF
150
- "no-unused-expressions": 0, // disallow unused expressions // DONE - OFF
151
- "no-unused-labels": 1, // disallow unused labels // DONE
152
- "no-useless-call": 1, // disallow unnecessary calls to `.call()` and `.apply()` // DONE
153
- "no-useless-catch": 1, // disallow unnecessary `catch` clauses // DONE
154
- "no-useless-computed-key": 1, // disallow unnecessary computed property keys in objects and classes // DONE
155
- "no-useless-concat": 1, // disallow unnecessary concatenation of literals or template literals // DONE
156
- "no-useless-constructor": 0, // disallow unnecessary constructors // DONE - OFF
157
- "no-useless-escape": 1, // disallow unnecessary escape characters // DONE
158
- "no-useless-rename": 1, // disallow renaming import, export, and destructured assignments to the same name // DONE
159
- "no-useless-return": 1, // disallow redundant return statements // DONE
160
- "no-var": 1, // require `let` or `const` instead of `var` // DONE
161
- "no-void": [1, { "allowAsStatement": true }], // disallow `void` operators // DONE - CUSTOMISED
162
- "no-warning-comments": 1, // disallow specified warning terms in comments // DONE
163
- "no-with": 1, // disallow `with` statements // DONE
164
- "object-shorthand": 0, // require or disallow method and property shorthand syntax for object literals // DONE - OFF
165
- "one-var": 0, // enforce variables to be declared either together or separately in functions // DONE - OFF
166
- "operator-assignment": 1, // require or disallow assignment operator shorthand where possible // DONE
167
- "prefer-arrow-callback": 1, // require using arrow functions for callbacks // DONE
168
- "prefer-const": 1, // require `const` declarations for variables that are never reassigned after declared // DONE
169
- "prefer-destructuring": 0, // require destructuring from arrays and/or objects // DONE - OFF
170
- "prefer-exponentiation-operator": 1, // disallow the use of `Math.pow` in favor of the `**` operator // DONE
171
- "prefer-named-capture-group": 1, // enforce using named capture group in regular expression // DONE
172
- "prefer-numeric-literals": 1, // disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals // DONE
173
- "prefer-object-spread": 1, // disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. // DONE
174
- "prefer-promise-reject-errors": 1, // require using Error objects as Promise rejection reasons // DONE
175
- "prefer-regex-literals": 1, // disallow use of the `RegExp` constructor in favor of regular expression literals // DONE
176
- "prefer-rest-params": 1, // require rest parameters instead of `arguments` // DONE
177
- "prefer-spread": 1, // require spread operators instead of `.apply()` // DONE
178
- "prefer-template": 1, // require template literals instead of string concatenation // DONE
179
- "radix": 1, // enforce the consistent use of the radix argument when using `parseInt()` // DONE
180
- "require-await": 1, // disallow async functions which have no `await` expression // DONE
181
- "require-unicode-regexp": 1, // enforce the use of `u` flag on RegExp // DONE
182
- "require-yield": 1, // require generator functions to contain `yield` // DONE
183
- "sort-imports": 1, // enforce sorted import declarations within modules // DONE
184
- "sort-keys": 0, // require object keys to be sorted // DONE - OFF
185
- "sort-vars": 1, // require variables within the same declaration block to be sorted // DONE
186
- "spaced-comment": 1, // enforce consistent spacing after the `//` or `/*` in a comment // DONE
187
- "strict": 0, // require or disallow strict mode directives // DONE - OFF
188
- "symbol-description": 1, // require symbol descriptions // DONE
189
- "vars-on-top": 1, // require `var` declarations be placed at the top of their containing scope // DONE
190
- "yoda": 1, // require or disallow "Yoda" conditions // DONE
39
+ // Modern Code Quality Rules
40
+ "array-callback-return": 1, // enforce `return` statements in callbacks of array methods - ENABLED for better code quality
41
+ "no-await-in-loop": 1, // disallow `await` inside of loops - ENABLED to prevent performance issues
42
+ "no-constructor-return": 1, // disallow returning value from constructor - ENABLED for correctness
43
+ "no-duplicate-imports": 1, // disallow duplicate module imports
44
+ "no-promise-executor-return": 1, // disallow returning values from Promise executor functions - ENABLED for correctness
45
+ "no-self-compare": 1, // disallow comparisons where both sides are exactly the same
46
+ "no-template-curly-in-string": 1, // disallow template literal placeholder syntax in regular strings - ENABLED to catch common mistakes
47
+ "no-unmodified-loop-condition": 1, // disallow unmodified loop conditions
48
+ "no-unreachable-loop": 1, // disallow loops with a body that allows only one iteration
49
+ "no-use-before-define": 0, // disallow the use of variables before they are defined - OFF for hoisting flexibility
50
+ "require-atomic-updates": 1, // disallow assignments that can lead to race conditions due to usage of `await` or `yield`
51
+ "accessor-pairs": 0, // enforce getter and setter pairs in objects and classes - OFF
52
+ "arrow-body-style": 0, // require braces around arrow function bodies - OFF
53
+ "block-scoped-var": 1, // enforce the use of variables within the scope they are defined
54
+ "camelcase": 1, // enforce camelcase naming convention
55
+ "capitalized-comments": 0, // enforce or disallow capitalization of the first letter of a comment - OFF for flexibility
56
+ "class-methods-use-this": 0, // enforce that class methods utilize `this` - OFF
57
+ "complexity": 0, // enforce a maximum cyclomatic complexity allowed in a program - OFF
58
+ "consistent-return": 1, // require `return` statements to either always or never specify values
59
+ "consistent-this": 1, // enforce consistent naming when capturing the current execution context
60
+ "default-case": 1, // require `default` cases in `switch` statements
61
+ "default-case-last": 1, // enforce default clauses in switch statements to be last
62
+ "default-param-last": 1, // enforce default parameters to be last - ENABLED for modern practices
63
+ "dot-notation": 1, // enforce dot notation whenever possible
64
+ "eqeqeq": 1, // require the use of `===` and `!==`
65
+ "func-name-matching": 1, // require function names to match the name of the variable or property to which they are assigned
66
+ "func-names": 0, // require or disallow named `function` expressions - OFF for flexibility
67
+ "func-style": 0, // enforce the consistent use of either `function` declarations or expressions - OFF
68
+ "grouped-accessor-pairs": 1, // require grouped accessor pairs in object literals and classes
69
+ "guard-for-in": 1, // require `for-in` loops to include an `if` statement
70
+ "id-denylist": 0, // disallow specified identifiers - OFF
71
+ "id-length": 0, // enforce minimum and maximum identifier lengths - OFF
72
+ "id-match": 0, // require identifiers to match a specified regular expression - OFF
73
+ "init-declarations": 0, // require or disallow initialization in variable declarations - OFF
74
+ "max-classes-per-file": 1, // enforce a maximum number of classes per file
75
+ "max-depth": [1, 4], // enforce a maximum depth that blocks can be nested - UPDATED to 4 for modern practices
76
+ "max-lines": [1, { "max": 1000, "skipBlankLines": true }], // enforce a maximum number of lines per file - UPDATED to 1000
77
+ "max-lines-per-function": [1, { "max": 300 }], // enforce a maximum number of lines of code in a function - UPDATED to 300
78
+ "max-nested-callbacks": [1, 4], // enforce a maximum depth that callbacks can be nested - UPDATED to 4
79
+ "max-params": [1, { "max": 5 }], // enforce a maximum number of parameters in function definitions - UPDATED to 5
80
+ "max-statements": [1, { "max": 30 }], // enforce a maximum number of statements allowed in function blocks - UPDATED to 30
81
+ "multiline-comment-style": 0, // enforce a particular style for multiline comments - OFF
82
+ "new-cap": 0, // require constructor names to begin with a capital letter - OFF
83
+ "no-alert": 1, // disallow the use of `alert`, `confirm`, and `prompt`
84
+ "no-array-constructor": 1, // disallow `Array` constructors
85
+ "no-bitwise": 0, // disallow bitwise operators - OFF for flexibility
86
+ "no-caller": 1, // disallow the use of `arguments.caller` or `arguments.callee`
87
+ "no-case-declarations": 1, // disallow lexical declarations in case clauses
88
+ "no-console": 1, // disallow the use of `console`
89
+ "no-continue": 0, // disallow `continue` statements - OFF for flexibility
90
+ "no-delete-var": 1, // disallow deleting variables
91
+ "no-div-regex": 1, // disallow division operators explicitly at the beginning of regular expressions
92
+ "no-else-return": 1, // disallow `else` blocks after `return` statements in `if` statements
93
+ "no-empty": 1, // disallow empty block statements
94
+ "no-empty-function": [1, { "allow": ["constructors"] }], // disallow empty functions
95
+ "no-eq-null": 1, // disallow `null` comparisons without type-checking operators
96
+ "no-eval": 1, // disallow the use of `eval()`
97
+ "no-extend-native": 1, // disallow extending native types
98
+ "no-extra-bind": 1, // disallow unnecessary calls to `.bind()`
99
+ "no-extra-boolean-cast": 1, // disallow unnecessary boolean casts
100
+ "no-extra-label": 1, // disallow unnecessary labels
101
+ "no-global-assign": 1, // disallow assignments to native objects or read-only global variables
102
+ "no-implicit-coercion": 1, // disallow shorthand type conversions
103
+ "no-implicit-globals": 1, // disallow declarations in the global scope
104
+ "no-implied-eval": 1, // disallow the use of `eval()`-like methods
105
+ "no-inline-comments": 0, // disallow inline comments after code - OFF for flexibility
106
+ "no-invalid-this": 1, // disallow `this` keywords outside of classes or class-like objects
107
+ "no-iterator": 1, // disallow the use of the `__iterator__` property
108
+ "no-label-var": 1, // disallow labels that share a name with a variable
109
+ "no-labels": 1, // disallow labeled statements
110
+ "no-lone-blocks": 1, // disallow unnecessary nested blocks
111
+ "no-lonely-if": 1, // disallow `if` statements as the only statement in `else` blocks
112
+ "no-loop-func": 1, // disallow function declarations that contain unsafe references inside loop statements
113
+ "no-magic-numbers": 0, // disallow magic numbers - OFF as it's often too restrictive
114
+ "no-multi-assign": 1, // disallow use of chained assignment expressions
115
+ "no-multi-str": 1, // disallow multiline strings
116
+ "no-negated-condition": 0, // disallow negated conditions - OFF for flexibility
117
+ "no-nested-ternary": 1, // disallow nested ternary expressions
118
+ "no-new": 1, // disallow `new` operators outside of assignments or comparisons
119
+ "no-new-func": 1, // disallow `new` operators with the `Function` object
120
+ "no-new-object": 1, // disallow `Object` constructors
121
+ "no-new-wrappers": 1, // disallow `new` operators with the `String`, `Number`, and `Boolean` objects
122
+ "no-nonoctal-decimal-escape": 1, // disallow `\8` and `\9` escape sequences in string literals
123
+ "no-octal": 1, // disallow octal literals
124
+ "no-octal-escape": 1, // disallow octal escape sequences in string literals
125
+ "no-param-reassign": 1, // disallow reassigning `function` parameters
126
+ "no-plusplus": 0, // disallow the unary operators `++` and `--` - OFF "no-proto": 1, // disallow the use of the `__proto__` property
127
+ "no-redeclare": 1, // disallow variable redeclaration
128
+ "no-regex-spaces": 1, // disallow multiple spaces in regular expressions
129
+ "no-restricted-exports": 0, // disallow specified names in exports - OFF
130
+ "no-restricted-globals": 0, // disallow specified global variables - OFF
131
+ "no-restricted-imports": 0, // disallow specified modules when loaded by `import` - OFF
132
+ "no-restricted-properties": 0, // disallow certain properties on certain objects - OFF
133
+ "no-restricted-syntax": 0, // disallow specified syntax - OFF
134
+ "no-return-assign": 1, // disallow assignment operators in `return` statements
135
+ "no-return-await": 1, // disallow unnecessary `return await`
136
+ "no-script-url": 1, // disallow `javascript:` urls
137
+ "no-sequences": 1, // disallow comma operators
138
+ "no-shadow": 0, // disallow variable declarations from shadowing variables declared in the outer scope - OFF
139
+ "no-shadow-restricted-names": 1, // disallow identifiers from shadowing restricted names
140
+ "no-ternary": 0, // disallow ternary operators - OFF
141
+ "no-throw-literal": 1, // disallow throwing literals as exceptions
142
+ "no-undef-init": 1, // disallow initializing variables to `undefined`
143
+ "no-undefined": 0, // disallow the use of `undefined` as an identifier - OFF
144
+ "no-underscore-dangle": 0, // disallow dangling underscores in identifiers - OFF
145
+ "no-unneeded-ternary": 1, // disallow ternary operators when simpler alternatives exist - ENABLED
146
+ "no-unused-expressions": 0, // disallow unused expressions - OFF
147
+ "no-unused-labels": 1, // disallow unused labels
148
+ "no-useless-call": 1, // disallow unnecessary calls to `.call()` and `.apply()`
149
+ "no-useless-catch": 1, // disallow unnecessary `catch` clauses
150
+ "no-useless-computed-key": 1, // disallow unnecessary computed property keys in objects and classes
151
+ "no-useless-concat": 1, // disallow unnecessary concatenation of literals or template literals
152
+ "no-useless-constructor": 1, // disallow unnecessary constructors - ENABLED
153
+ "no-useless-escape": 1, // disallow unnecessary escape characters
154
+ "no-useless-rename": 1, // disallow renaming import, export, and destructured assignments to the same name
155
+ "no-useless-return": 1, // disallow redundant return statements
156
+ "no-var": 1, // require `let` or `const` instead of `var`
157
+ "no-void": [1, { "allowAsStatement": true }], // disallow `void` operators
158
+ "no-warning-comments": 0, // disallow specified warning terms in comments - OFF
159
+ "no-with": 1, // disallow `with` statements
160
+ "object-shorthand": 1, // require or disallow method and property shorthand syntax for object literals - ENABLED
161
+ "one-var": 0, // enforce variables to be declared either together or separately in functions - OFF
162
+ "operator-assignment": 1, // require or disallow assignment operator shorthand where possible
163
+ "prefer-arrow-callback": 1, // require using arrow functions for callbacks
164
+ "prefer-const": 1, // require `const` declarations for variables that are never reassigned after declared
165
+ "prefer-destructuring": 0, // require destructuring from arrays and/or objects - OFF
166
+ "prefer-exponentiation-operator": 1, // disallow the use of `Math.pow` in favor of the `**` operator
167
+ "prefer-named-capture-group": 0, // enforce using named capture group in regular expression - OFF for flexibility
168
+ "prefer-numeric-literals": 1, // disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals
169
+ "prefer-object-spread": 1, // disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead
170
+ "prefer-promise-reject-errors": 1, // require using Error objects as Promise rejection reasons
171
+ "prefer-regex-literals": 1, // disallow use of the `RegExp` constructor in favor of regular expression literals
172
+ "prefer-rest-params": 1, // require rest parameters instead of `arguments`
173
+ "prefer-spread": 1, // require spread operators instead of `.apply()`
174
+ "prefer-template": 1, // require template literals instead of string concatenation
175
+ "radix": 1, // enforce the consistent use of the radix argument when using `parseInt()`
176
+ "require-await": 1, // disallow async functions which have no `await` expression
177
+ "require-unicode-regexp": 0, // enforce the use of `u` flag on RegExp - OFF for compatibility
178
+ "require-yield": 1, // require generator functions to contain `yield`
179
+ "sort-imports": 0, // enforce sorted import declarations within modules - OFF for flexibility
180
+ "sort-keys": 0, // require object keys to be sorted - OFF
181
+ "sort-vars": 0, // require variables within the same declaration block to be sorted - OFF
182
+ "spaced-comment": 1, // enforce consistent spacing after the `//` or `/*` in a comment
183
+ "strict": 0, // require or disallow strict mode directives - OFF
184
+ "symbol-description": 1, // require symbol descriptions
185
+ "vars-on-top": 0, // require `var` declarations be placed at the top of their containing scope - OFF
186
+ "yoda": 1, // require or disallow "Yoda" conditions
191
187
 
192
- // Top level formatting (These rules are turned off in eslint because they are still being applied using [prettier/prettier])
193
- "curly": 0, // enforce consistent brace style for all control statements // DONE - OFF
194
- "lines-around-comment": 0, // require empty lines around comments // DONE - OFF
195
- "no-confusing-arrow": 0, // disallowarrow functions where they could be confused with comparisons // DONE - OFF
196
- "no-mixed-operators": 0, // disallow mixed binary operators // DONE - OFF
197
- "no-tabs": 0, // disallow all tabs // DONE - OFF
198
- "no-unexpected-multiline": 0, // disallow confusing multiline expressions // DONE - OFF
199
- "quotes": 0, // enforce the consistent use of either backticks, double, or single quotes // DONE - OFF
188
+ // Formatting Rules (Disabled - handled by Prettier)
189
+ "curly": 0, // enforce consistent brace style for all control statements - OFF
190
+ "lines-around-comment": 0, // require empty lines around comments - OFF
191
+ "no-confusing-arrow": 0, // disallow arrow functions where they could be confused with comparisons - OFF
192
+ "no-mixed-operators": 0, // disallow mixed binary operators - OFF
193
+ "no-tabs": 0, // disallow all tabs - OFF
194
+ "no-unexpected-multiline": 0, // disallow confusing multiline expressions - OFF
195
+ "quotes": 0, // enforce the consistent use of either backticks, double, or single quotes - OFF
196
+ "array-bracket-newline": 0, // enforce linebreaks after opening and before closing array brackets - OFF
197
+ "array-element-newline": 0, // enforce line breaks after each array element - OFF
198
+ "arrow-parens": 0, // require parentheses around arrow function arguments - OFF
199
+ "arrow-spacing": 0, // enforce consistent spacing before and after the arrow in arrow functions - OFF
200
+ "block-spacing": 0, // disallow or enforce spaces inside of blocks after opening block and before closing block - OFF
201
+ "brace-style": 0, // enforce consistent brace style for blocks - OFF
202
+ "comma-dangle": 0, // require or disallow trailing commas - OFF
203
+ "comma-spacing": 0, // enforce consistent spacing before and after commas - OFF
204
+ "comma-style": 0, // enforce consistent comma style - OFF
205
+ "computed-property-spacing": 0, // enforce consistent spacing inside computed property brackets - OFF
206
+ "dot-location": 0, // enforce consistent newlines before and after dots - OFF
207
+ "eol-last": 0, // require or disallow newline at the end of files - OFF
208
+ "func-call-spacing": 0, // require or disallow spacing between function identifiers and their invocations - OFF
209
+ "function-call-argument-newline": 0, // enforce line breaks between arguments of a function call - OFF
210
+ "function-paren-newline": 0, // enforce consistent line breaks inside function parentheses - OFF
211
+ "generator-star-spacing": 0, // enforce consistent spacing around `*` operators in generator functions - OFF
212
+ "implicit-arrow-linebreak": 0, // enforce the location of arrow function bodies - OFF
213
+ "indent": 0, // enforce consistent indentation - OFF
214
+ "jsx-quotes": 0, // enforce the consistent use of either double or single quotes in JSX attributes - OFF
215
+ "key-spacing": 0, // enforce consistent spacing between keys and values in object literal properties - OFF
216
+ "keyword-spacing": 0, // enforce consistent spacing around keywords and keyword-like tokens - OFF
217
+ "linebreak-style": 0, // enforce consistent linebreak style - OFF
218
+ "multiline-ternary": 0, // enforce newlines between operands of ternary expressions - OFF
219
+ "newline-per-chained-call": 0, // require a newline after each call in a method chain - OFF
220
+ "new-parens": 0, // enforce or disallow parentheses when invoking a constructor with no arguments - OFF
221
+ "no-extra-parens": 0, // disallow unnecessary parentheses - OFF
222
+ "no-extra-semi": 0, // disallow unnecessary semicolons - OFF
223
+ "no-floating-decimal": 0, // disallow leading or trailing decimal points in numeric literals - OFF
224
+ "no-mixed-spaces-and-tabs": 0, // disallow mixed spaces and tabs for indentation - OFF
225
+ "no-multi-spaces": 0, // disallow multiple spaces - OFF
226
+ "no-multiple-empty-lines": 0, // disallow multiple empty lines - OFF
227
+ "no-trailing-spaces": 0, // disallow trailing whitespace at the end of lines - OFF
228
+ "no-whitespace-before-property": 0, // disallow whitespace before properties - OFF
229
+ "nonblock-statement-body-position": 0, // enforce the location of single-line statements - OFF
230
+ "object-curly-newline": 0, // enforce consistent line breaks after opening and before closing braces - OFF
231
+ "object-curly-spacing": 0, // enforce consistent spacing inside braces - OFF
232
+ "object-property-newline": 0, // enforce placing object properties on separate lines - OFF
233
+ "one-var-declaration-per-line": 0, // require or disallow newlines around variable declarations - OFF
234
+ "operator-linebreak": 0, // enforce consistent linebreak style for operators - OFF
235
+ "padded-blocks": 0, // require or disallow padding within blocks - OFF
236
+ "quote-props": 0, // require quotes around object literal property names - OFF
237
+ "rest-spread-spacing": 0, // enforce spacing between rest and spread operators and their expressions - OFF
238
+ "semi": 0, // require or disallow semicolons instead of ASI - OFF
239
+ "semi-spacing": 0, // enforce consistent spacing before and after semicolons - OFF
240
+ "semi-style": 0, // enforce location of semicolons - OFF
241
+ "space-before-blocks": 0, // enforce consistent spacing before blocks - OFF
242
+ "space-before-function-paren": 0, // enforce consistent spacing before `function` definition opening parenthesis - OFF
243
+ "space-in-parens": 0, // enforce consistent spacing inside parentheses - OFF
244
+ "space-infix-ops": 0, // require spacing around infix operators - OFF
245
+ "space-unary-ops": 0, // enforce consistent spacing before or after unary operators - OFF
246
+ "switch-colon-spacing": 0, // enforce spacing around colons of switch statements - OFF
247
+ "template-curly-spacing": 0, // require or disallow spacing around embedded expressions of template strings - OFF
248
+ "template-tag-spacing": 0, // require or disallow spacing between template tags and their literals - OFF
249
+ "unicode-bom": 0, // require or disallow Unicode byte order mark (BOM) - OFF
250
+ "wrap-iife": 0, // require parentheses around immediate `function` invocations - OFF
251
+ "wrap-regex": 0, // require parenthesis around regex literals - OFF
252
+ "yield-star-spacing": 0, // require or disallow spacing around the `*` in `yield*` expressions - OFF
200
253
 
201
- // Formatting (These rules are turned off in eslint because they are still being applied using [prettier/prettier])
202
- "array-bracket-newline": 0, // enforce linebreaks after opening and before closing array brackets // DONE - OFF
203
- "array-element-newline": 0, // enforce line breaks after each array element // DONE - OFF
204
- "arrow-parens": 0, // require parentheses around arrow function arguments // DONE - OFF
205
- "arrow-spacing": 0, // enforce consistent spacing before and after the arrow in arrow functions // DONE - OFF
206
- "block-spacing": 0, // disallow or enforce spaces inside of blocks after opening block and before closing block // DONE - OFF
207
- "brace-style": 0, // enforce consistent brace style for blocks // DONE - OFF
208
- "comma-dangle": 0, // require or disallow trailing commas // DONE - OFF
209
- "comma-spacing": 0, // enforce consistent spacing before and after commas // DONE - OFF
210
- "comma-style": 0, // enforce consistent comma style // DONE - OFF
211
- "computed-property-spacing": 0, // enforce consistent spacing inside computed property brackets // DONE - OFF
212
- "dot-location": 0, // enforce consistent newlines before and after dots // DONE - OFF
213
- "eol-last": 0, // require or disallow newline at the end of files // DONE - OFF
214
- "func-call-spacing": 0, // require or disallow spacing between function identifiers and their invocations // DONE - OFF
215
- "function-call-argument-newline": 0, // enforce line breaks between arguments of a function call // DONE - OFF
216
- "function-paren-newline": 0, // enforce consistent line breaks inside function parentheses // DONE - OFF
217
- "generator-star": 0, // enforce consistent spacing around `*` operators in generator functions // DONE - OFF
218
- "generator-star-spacing": 0, // enforce consistent spacing around `*` operators in generator functions // DONE - OFF
219
- "implicit-arrow-linebreak": 0, // enforce the location of arrow function bodies // DONE - OFF
220
- "indent": 0, // enforce consistent indentation. second value is number of spaces // DONE - OFF
221
- "jsx-quotes": 0, // enforce the consistent use of either double or single quotes in JSX attributes // DONE - OFF
222
- "key-spacing": 0, // enforce consistent spacing between keys and values in object literal properties // DONE - OFF
223
- "keyword-spacing": 0, // This rule enforces consistent spacing around keywords and keyword-like tokens // DONE - OFF
224
- "linebreak-style": 0, // enforce consistent linebreak style // OFF - OFF
225
- "multiline-ternary": 0, // enforce newlines between operands of ternary expressions // DONE - OFF
226
- "newline-per-chained-call": 0, // require a newline after each call in a method chain // DONE - OFF
227
- "new-parens": 0, // enforce or disallow parentheses when invoking a constructor with no arguments // DONE - OFF
228
- "no-arrow-condition": 0, // disallows arrow functions where test conditions are expected // DONE - OFF
229
- "no-comma-dangle": 0, // disallows trailing commas in object and array literals // DONE - OFF
230
- "no-extra-parens": 0, // disallow unnecessary parentheses // DONE - OFF
231
- "no-extra-semi": 1, // disallow unnecessary semicolons // DONE - OFF
232
- "no-floating-decimal": 0, // disallow leading or trailing decimal points in numeric literals // DONE - OFF
233
- "no-mixed-spaces-and-tabs": 0, // disallow mixed spaces and tabs for indentation // DONE - OFF
234
- "no-multi-spaces": 0, // disallow multiple spaces // DONE - OFF
235
- "no-multiple-empty-lines": 0, // disallow multiple empty lines // DONE - OFF
236
- "no-reserved-keys": 0, // disallows unquoted reserved words as property names in object literals // DONE - OFF
237
- "no-space-before-semi": 0, // disallows spaces before semicolons // DONE - OFF
238
- "no-trailing-spaces": 0, // disallow trailing whitespace at the end of lines // DONE - OFF
239
- "no-whitespace-before-property": 0, // disallow whitespace before properties // DONE - OFF
240
- "no-wrap-func": 0, // disallows unnecessary parentheses around function expressions // DONE - OFF
241
- "nonblock-statement-body-position": 0, // enforce the location of single-line statements // DONE - OFF
242
- "object-curly-newline": 0, // enforce consistent line breaks after opening and before closing braces // DONE - OFF
243
- "object-curly-spacing": 0, // enforce consistent spacing inside braces // DONE - OFF
244
- "object-property-newline": 0, // enforce placing object properties on separate lines // DONE - OFF
245
- "one-var-declaration-per-line": 0, // require or disallow newlines around variable declarations // DONE - OFF
246
- "operator-linebreak": 0, // enforce consistent linebreak style for operators // DONE - OFF
247
- "padded-blocks": 0, // require or disallow padding within blocks // DONE - OFF
248
- "quote-props": 0, // require quotes around object literal property names // DONE - OFF
249
- "rest-spread-spacing": 0, // enforce spacing between rest and spread operators and their expressions // DONE - OFF
250
- "semi": 0, // require or disallow semicolons instead of ASI // DONE - OFF
251
- "semi-spacing": 0, // enforce consistent spacing before and after semicolons // DONE - OFF
252
- "semi-style": 0, // enforce location of semicolons // DONE - OFF
253
- "space-after-function-name": 0, // enforces consistent spacing after name in function definitions // DONE - OFF
254
- "space-after-keywords": 0, // enforces consistent spacing after keywords // DONE - OFF
255
- "space-before-blocks": 0, // enforce consistent spacing before blocks // DONE - OFF
256
- "space-before-function-paren": 0, // enforce consistent spacing before `function` definition opening parenthesis // DONE - OFF
257
- "space-before-keywords": 0, // enforces consistent spacing before keywords // DONE - OFF
258
- "space-in-brackets": 0, // enforces consistent spacing inside braces of object literals and brackets of array literals // DONE - OFF
259
- "space-in-parens": 0, // enforce consistent spacing inside parentheses // DONE - OFF
260
- "space-infix-ops": 0, // require spacing around infix operators // DONE - OFF
261
- "space-return-throw-case": 0, // requires spaces after return, throw, and case keywords // DONE - OFF
262
- "space-unary-ops": 0, // enforce consistent spacing before or after unary operators // DONE - OFF
263
- "switch-colon-spacing": 0, // enforce spacing around colons of switch statements // DONE - OFF
264
- "template-curly-spacing": 0, // require or disallow spacing around embedded expressions of template strings // DONE - OFF
265
- "template-tag-spacing": 0, // require or disallow spacing between template tags and their literals // DONE - OFF
266
- "unicode-bom": 0, // require or disallow Unicode byte order mark (BOM) // DONE - OFF
267
- "wrap-iife": 0, // require parentheses around immediate `function` invocations // DONE - OFF
268
- "wrap-regex": 0, // require parenthesis around regex literals // DONE - OFF
269
- "yield-star-spacing": 0, // require or disallow spacing around the `*` in `yield*` expressions // DONE - OFF
254
+ // Core ESLint Rules
255
+ "line-comment-position": 0, // enforce position of line comments - OFF
256
+ "lines-between-class-members": 0, // require or disallow an empty line between class members - OFF
257
+ "max-len": [1, { "code": 100, "ignoreUrls": true, "ignoreComments": true, "ignorePattern": "^.*['\"].{10,}['\"].*$" }], // enforce a maximum line length - UPDATED to 100
258
+ "max-statements-per-line": 1, // enforce a maximum number of statements allowed per line
259
+ "padding-line-between-statements": 0, // require or disallow padding lines between statements - OFF
260
+ "no-cond-assign": 1, // disallow assignment in conditional expressions
261
+ "no-constant-condition": 1, // disallow use of constant expressions in conditions
262
+ "no-control-regex": 1, // disallow control characters in regular expressions
263
+ "no-debugger": 1, // disallow use of debugger - ENABLED for production
264
+ "no-dupe-args": 1, // disallow duplicate arguments in functions
265
+ "no-dupe-keys": 1, // disallow duplicate keys when creating object literals
266
+ "no-duplicate-case": 1, // disallow a duplicate case label
267
+ "no-ex-assign": 1, // disallow assigning to the exception in a catch block
268
+ "no-func-assign": 1, // disallow overwriting functions written as function declarations
269
+ "no-inner-declarations": 1, // disallow function or variable declarations in nested blocks
270
+ "no-invalid-regexp": 1, // disallow invalid regular expression strings in the RegExp constructor
271
+ "no-irregular-whitespace": 1, // disallow irregular whitespace outside of strings and comments
272
+ "no-obj-calls": 1, // disallow the use of object properties of the global object (Math and JSON) as functions
273
+ "no-sparse-arrays": 1, // disallow sparse arrays
274
+ "no-unreachable": 1, // disallow unreachable statements after a return, throw, continue, or break statement
275
+ "use-isnan": 1, // disallow comparisons with the value NaN
276
+ "valid-typeof": 1, // ensure that the results of typeof are compared against a valid string
277
+ "no-unused-vars": 1, // disallow declaration of variables that are not used in the code
278
+ "array-bracket-spacing": 0, // enforce consistent spacing inside array brackets - OFF
270
279
 
271
- // Other
272
- "line-comment-position": 1, // enforce position of line comments // DONE
273
- "lines-between-class-members": 0, // require or disallow an empty line between class members // DONE - OFF
274
- "max-len": [1, { "code": 80, "ignoreUrls": true, "ignoreComments": true, "ignorePattern": "^.*['\"].{10,}['\"].*$" }], // enforce a maximum line length // DONE - CUSTOMISED
275
- "max-statements-per-line": 1, // enforce a maximum number of statements allowed per line // DONE
276
- "padding-line-between-statements": 1, // require or disallow padding lines between statements // DONE
277
- "no-cond-assign": 1, // disallow assignment in conditional expressions // DONE
278
- "no-constant-condition": 1, // disallow use of constant expressions in conditions // DONE
279
- "no-control-regex": 1, // disallow control characters in regular expressions // DONE
280
- "no-debugger": 0, // disallow use of debugger // DONE - OFF
281
- "no-dupe-args": 1, // disallow duplicate arguments in functions // DONE
282
- "no-dupe-keys": 1, // disallow duplicate keys when creating object literals // DONE
283
- "no-duplicate-case": 1, // disallow a duplicate case label // DONE
284
- "no-ex-assign": 1, // disallow assigning to the exception in a catch block // DONE
285
- "no-func-assign": 1, // disallow overwriting functions written as function declarations // DONE
286
- "no-inner-declarations": 1, // disallow function or variable declarations in nested blocks // DONE
287
- "no-invalid-regexp": 1, // disallow invalid regular expression strings in the RegExp constructor // DONE
288
- "no-irregular-whitespace": 1, // disallow irregular whitespace outside of strings and comments // DONE
289
- "no-negated-in-lhs": 1, // disallow negation of the left operand of an in expression // DONE
290
- "no-obj-calls": 1, // disallow the use of object properties of the global object (Math and JSON) as functions // DONE
291
- "no-sparse-arrays": 1, // disallow sparse arrays // DONE
292
- "no-unreachable": 1, // disallow unreachable statements after a return, throw, continue, or break statement // DONE
293
- "use-isnan": 1, // disallow comparisons with the value NaN // DONE
294
- "valid-typeof": 1, // ensure that the results of typeof are compared against a valid string // DONE
295
- "no-catch-shadow": 1, // disallow the catch clause parameter name being the same as a variable in the outer scope // DONE
296
- "no-unused-vars": 1, // disallow declaration of variables that are not used in the code // DONE
297
- "newline-after-var": 0, // allow/disallow an empty newline after var statement // DONE - OFF
298
- "no-spaced-func": 1, // disallow space between function identifier and application // DONE
299
- "array-bracket-spacing": [0, "always"], // enforces consistent spacing inside array brackets // DONE - CUSTOMISED
280
+ // TypeScript ESLint Rules
281
+ "@typescript-eslint/no-unused-vars": [1, { "argsIgnorePattern": "^_" }], // disallow unused variables with underscore prefix exception
282
+ "@typescript-eslint/no-explicit-any": 1, // disallow usage of the any type - ENABLED for better type safety
283
+ "@typescript-eslint/prefer-nullish-coalescing": 1, // prefer nullish coalescing operator - ENABLED for modern practices
284
+ "@typescript-eslint/prefer-optional-chain": 1, // prefer optional chaining - ENABLED for modern practices
285
+ "@typescript-eslint/no-non-null-assertion": 1, // disallow non-null assertions - ENABLED for safety
286
+ "@typescript-eslint/consistent-type-imports": 1, // enforce consistent usage of type imports - ENABLED
287
+ // TypeScript formatting rules (disabled - handled by Prettier)
288
+ "@typescript-eslint/brace-style": 0, // OFF
289
+ "@typescript-eslint/comma-dangle": 0, // OFF
290
+ "@typescript-eslint/comma-spacing": 0, // OFF
291
+ "@typescript-eslint/func-call-spacing": 0, // OFF
292
+ "@typescript-eslint/indent": 0, // OFF
293
+ "@typescript-eslint/keyword-spacing": 0, // OFF
294
+ "@typescript-eslint/member-delimiter-style": 0, // OFF
295
+ "@typescript-eslint/no-extra-parens": 0, // OFF
296
+ "@typescript-eslint/no-extra-semi": 0, // OFF
297
+ "@typescript-eslint/object-curly-spacing": 0, // OFF
298
+ "@typescript-eslint/semi": 0, // OFF
299
+ "@typescript-eslint/space-before-blocks": 0, // OFF
300
+ "@typescript-eslint/space-before-function-paren": 0, // OFF
301
+ "@typescript-eslint/space-infix-ops": 0, // OFF
302
+ "@typescript-eslint/type-annotation-spacing": 0, // OFF
303
+ "@typescript-eslint/quotes": 0, // OFF
300
304
 
301
- // @Typescript specific
302
- "@typescript-eslint/no-unused-vars": [1, { "argsIgnorePattern": "^_" }], // DONE - CUSTOMISED
303
- "@typescript-eslint/brace-style": 0, // DONE - OFF
304
- "@typescript-eslint/comma-dangle": 0, // DONE - OFF
305
- "@typescript-eslint/comma-spacing": 0, // DONE - OFF
306
- "@typescript-eslint/func-call-spacing": 0, // DONE - OFF
307
- "@typescript-eslint/indent": 0, // DONE - OFF
308
- "@typescript-eslint/keyword-spacing": 0, // DONE - OFF
309
- "@typescript-eslint/member-delimiter-style": 0, // DONE - OFF
310
- "@typescript-eslint/no-extra-parens": 0, // DONE - OFF
311
- "@typescript-eslint/no-extra-semi": 0, // DONE - OFF
312
- "@typescript-eslint/object-curly-spacing": 0, // DONE - OFF
313
- "@typescript-eslint/semi": 0, // DONE - OFF
314
- "@typescript-eslint/space-before-blocks": 0, // DONE - OFF
315
- "@typescript-eslint/space-before-function-paren": 0, // DONE - OFF
316
- "@typescript-eslint/space-infix-ops": 0, // DONE - OFF
317
- "@typescript-eslint/type-annotation-spacing": 0, // DONE - OFF
318
- "@typescript-eslint/quotes": 0, // DONE - OFF
319
-
320
- // React specific
321
- "react/display-name": 0, // prevent missing displayName in a React component definition // DONE - OFF
322
- "react/jsx-no-undef": 1, // disallow undeclared variables in JSX // DONE
323
- "react/jsx-sort-props": 0, // enforce props alphabetical sorting // DONE - OFF
324
- "react/jsx-uses-react": 1, // prevent React to be incorrectly marked as unused // DONE
325
- "react/jsx-uses-vars": 1, // prevent variables used in JSX to be incorrectly marked as unused // DONE
326
- "react/no-did-mount-set-state": 1, // prevent usage of setState in componentDidMount // DONE
327
- "react/no-did-update-set-state": 1, // prevent usage of setState in componentDidUpdate // DONE
328
- "react/no-multi-comp": 0, // prevent multiple component definition per file // DONE - OFF
329
- "react/no-unknown-property": 1, // prevent usage of unknown DOM property // DONE
330
- "react/prop-types": 1, // prevent missing props validation in a React component definition // DONE
331
- "react/react-in-jsx-scope": 0, // prevent missing React when using JSX // DONE - OFF
332
- "react/self-closing-comp": 1, // prevent extra closing tags for components without children // DONE
333
- "react/jsx-child-element-spacing": 0, // // DONE - OFF
334
- "react/jsx-closing-bracket-location": 0, // // DONE - OFF
335
- "react/jsx-closing-tag-location": 0, // // DONE - OFF
336
- "react/jsx-curly-newline": 0, // // DONE - OFF
337
- "react/jsx-curly-spacing": 0, // // DONE - OFF
338
- "react/jsx-equals-spacing": 0, // // DONE - OFF
339
- "react/jsx-first-prop-new-line": 0, // // DONE - OFF
340
- "react/jsx-indent": 0, // // DONE - OFF
341
- "react/jsx-indent-props": 0, // // DONE - OFF
342
- "react/jsx-max-props-per-line": 0, // // DONE - OFF
343
- "react/jsx-newline": 0, // // DONE - OFF
344
- "react/jsx-one-expression-per-line": 0, // // DONE - OFF
345
- "react/jsx-props-no-multi-spaces": 0, // // DONE - OFF
346
- "react/jsx-tag-spacing": 0, // // DONE - OFF
347
- "react/jsx-wrap-multilines": 0, // // DONE - OFF
305
+ // React Rules
306
+ "react/display-name": 0, // prevent missing displayName in a React component definition - OFF
307
+ "react/jsx-no-undef": 1, // disallow undeclared variables in JSX
308
+ "react/jsx-sort-props": 0, // enforce props alphabetical sorting - OFF
309
+ "react/jsx-uses-react": 0, // prevent React to be incorrectly marked as unused - OFF for React 17+
310
+ "react/jsx-uses-vars": 1, // prevent variables used in JSX to be incorrectly marked as unused
311
+ "react/no-did-mount-set-state": 0, // prevent usage of setState in componentDidMount - OFF (deprecated)
312
+ "react/no-did-update-set-state": 0, // prevent usage of setState in componentDidUpdate - OFF (deprecated)
313
+ "react/no-multi-comp": 0, // prevent multiple component definition per file - OFF
314
+ "react/no-unknown-property": 1, // prevent usage of unknown DOM property
315
+ "react/prop-types": 0, // prevent missing props validation in a React component definition - OFF for TypeScript projects
316
+ "react/react-in-jsx-scope": 0, // prevent missing React when using JSX - OFF for React 17+
317
+ "react/self-closing-comp": 1, // prevent extra closing tags for components without children
318
+ "react/hook-use-state": 1, // enforce destructuring and symmetric naming of useState hook value and setter variables - ENABLED
319
+ "react/jsx-no-leaked-render": 1, // prevent problematic leaked values from being rendered - ENABLED
320
+ "react/jsx-no-useless-fragment": 1, // disallow unnecessary fragments - ENABLED
321
+ // React formatting rules (disabled - handled by Prettier)
322
+ "react/jsx-child-element-spacing": 0, // OFF
323
+ "react/jsx-closing-bracket-location": 0, // OFF
324
+ "react/jsx-closing-tag-location": 0, // OFF
325
+ "react/jsx-curly-newline": 0, // OFF
326
+ "react/jsx-curly-spacing": 0, // OFF
327
+ "react/jsx-equals-spacing": 0, // OFF
328
+ "react/jsx-first-prop-new-line": 0, // OFF
329
+ "react/jsx-indent": 0, // OFF
330
+ "react/jsx-indent-props": 0, // OFF
331
+ "react/jsx-max-props-per-line": 0, // OFF
332
+ "react/jsx-newline": 0, // OFF
333
+ "react/jsx-one-expression-per-line": 0, // OFF
334
+ "react/jsx-props-no-multi-spaces": 0, // OFF
335
+ "react/jsx-tag-spacing": 0, // OFF
336
+ "react/jsx-wrap-multilines": 0, // OFF
348
337
 
349
338
  // Prettier specific
350
339
  "prettier/prettier": 1