eslint-config-typed 4.2.1 → 4.3.1

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 (170) hide show
  1. package/README.md +4 -0
  2. package/dist/configs/immer.d.mts +3 -0
  3. package/dist/configs/immer.d.mts.map +1 -0
  4. package/dist/configs/immer.mjs +11 -0
  5. package/dist/configs/immer.mjs.map +1 -0
  6. package/dist/configs/index.d.mts +2 -0
  7. package/dist/configs/index.d.mts.map +1 -1
  8. package/dist/configs/index.mjs +2 -0
  9. package/dist/configs/index.mjs.map +1 -1
  10. package/dist/configs/plugins.d.mts +1 -1
  11. package/dist/configs/plugins.d.mts.map +1 -1
  12. package/dist/configs/plugins.mjs +2 -0
  13. package/dist/configs/plugins.mjs.map +1 -1
  14. package/dist/configs/ts-data-forge.d.mts +3 -0
  15. package/dist/configs/ts-data-forge.d.mts.map +1 -0
  16. package/dist/configs/ts-data-forge.mjs +11 -0
  17. package/dist/configs/ts-data-forge.mjs.map +1 -0
  18. package/dist/configs/typescript.d.mts.map +1 -1
  19. package/dist/configs/typescript.mjs +0 -2
  20. package/dist/configs/typescript.mjs.map +1 -1
  21. package/dist/entry-point.mjs +4 -0
  22. package/dist/entry-point.mjs.map +1 -1
  23. package/dist/index.mjs +4 -0
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/plugins/index.d.mts +1 -0
  26. package/dist/plugins/index.d.mts.map +1 -1
  27. package/dist/plugins/index.mjs +1 -0
  28. package/dist/plugins/index.mjs.map +1 -1
  29. package/dist/plugins/ts-data-forge/index.d.mts +2 -0
  30. package/dist/plugins/ts-data-forge/index.d.mts.map +1 -0
  31. package/dist/plugins/ts-data-forge/index.mjs +2 -0
  32. package/dist/plugins/ts-data-forge/index.mjs.map +1 -0
  33. package/dist/plugins/ts-data-forge/plugin.d.mts +3 -0
  34. package/dist/plugins/ts-data-forge/plugin.d.mts.map +1 -0
  35. package/dist/plugins/ts-data-forge/plugin.mjs +8 -0
  36. package/dist/plugins/ts-data-forge/plugin.mjs.map +1 -0
  37. package/dist/plugins/ts-data-forge/rules/branded-number-types.d.mts +5 -0
  38. package/dist/plugins/ts-data-forge/rules/branded-number-types.d.mts.map +1 -0
  39. package/dist/plugins/ts-data-forge/rules/branded-number-types.mjs +35 -0
  40. package/dist/plugins/ts-data-forge/rules/branded-number-types.mjs.map +1 -0
  41. package/dist/plugins/ts-data-forge/rules/constants.d.mts +2 -0
  42. package/dist/plugins/ts-data-forge/rules/constants.d.mts.map +1 -0
  43. package/dist/plugins/ts-data-forge/rules/constants.mjs +4 -0
  44. package/dist/plugins/ts-data-forge/rules/constants.mjs.map +1 -0
  45. package/dist/plugins/ts-data-forge/rules/import-utils.d.mts +5 -0
  46. package/dist/plugins/ts-data-forge/rules/import-utils.d.mts.map +1 -0
  47. package/dist/plugins/ts-data-forge/rules/import-utils.mjs +31 -0
  48. package/dist/plugins/ts-data-forge/rules/import-utils.mjs.map +1 -0
  49. package/dist/plugins/ts-data-forge/rules/index.d.mts +2 -0
  50. package/dist/plugins/ts-data-forge/rules/index.d.mts.map +1 -0
  51. package/dist/plugins/ts-data-forge/rules/index.mjs +2 -0
  52. package/dist/plugins/ts-data-forge/rules/index.mjs.map +1 -0
  53. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.d.mts +6 -0
  54. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.d.mts.map +1 -0
  55. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mjs +94 -0
  56. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mjs.map +1 -0
  57. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.d.mts +6 -0
  58. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.d.mts.map +1 -0
  59. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mjs +95 -0
  60. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mjs.map +1 -0
  61. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.d.mts +6 -0
  62. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.d.mts.map +1 -0
  63. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.mjs +72 -0
  64. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.mjs.map +1 -0
  65. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.d.mts +6 -0
  66. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.d.mts.map +1 -0
  67. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mjs +71 -0
  68. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mjs.map +1 -0
  69. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.d.mts +6 -0
  70. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.d.mts.map +1 -0
  71. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.mjs +183 -0
  72. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.mjs.map +1 -0
  73. package/dist/plugins/ts-data-forge/rules/prefer-as-int.d.mts +6 -0
  74. package/dist/plugins/ts-data-forge/rules/prefer-as-int.d.mts.map +1 -0
  75. package/dist/plugins/ts-data-forge/rules/prefer-as-int.mjs +86 -0
  76. package/dist/plugins/ts-data-forge/rules/prefer-as-int.mjs.map +1 -0
  77. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.d.mts +6 -0
  78. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.d.mts.map +1 -0
  79. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.mjs +103 -0
  80. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.mjs.map +1 -0
  81. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.d.mts +6 -0
  82. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.d.mts.map +1 -0
  83. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mjs +105 -0
  84. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mjs.map +1 -0
  85. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.d.mts +6 -0
  86. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.d.mts.map +1 -0
  87. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.mjs +130 -0
  88. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.mjs.map +1 -0
  89. package/dist/plugins/ts-data-forge/rules/rules.d.mts +12 -0
  90. package/dist/plugins/ts-data-forge/rules/rules.d.mts.map +1 -0
  91. package/dist/plugins/ts-data-forge/rules/rules.mjs +24 -0
  92. package/dist/plugins/ts-data-forge/rules/rules.mjs.map +1 -0
  93. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.d.mts.map +1 -1
  94. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs +6 -8
  95. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs.map +1 -1
  96. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.d.mts.map +1 -1
  97. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs +11 -15
  98. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs.map +1 -1
  99. package/dist/rules/eslint-jest-rules.d.mts +3 -0
  100. package/dist/rules/eslint-jest-rules.d.mts.map +1 -1
  101. package/dist/rules/eslint-jest-rules.mjs +3 -0
  102. package/dist/rules/eslint-jest-rules.mjs.map +1 -1
  103. package/dist/rules/eslint-ts-data-forge-rules.d.mts +12 -0
  104. package/dist/rules/eslint-ts-data-forge-rules.d.mts.map +1 -0
  105. package/dist/rules/eslint-ts-data-forge-rules.mjs +14 -0
  106. package/dist/rules/eslint-ts-data-forge-rules.mjs.map +1 -0
  107. package/dist/rules/eslint-vitest-rules.d.mts +2 -2
  108. package/dist/rules/eslint-vitest-rules.mjs +2 -2
  109. package/dist/rules/eslint-vitest-rules.mjs.map +1 -1
  110. package/dist/rules/index.d.mts +1 -0
  111. package/dist/rules/index.d.mts.map +1 -1
  112. package/dist/rules/index.mjs +1 -0
  113. package/dist/rules/index.mjs.map +1 -1
  114. package/dist/types/define-known-rules.d.mts +2 -2
  115. package/dist/types/define-known-rules.d.mts.map +1 -1
  116. package/dist/types/define-known-rules.mjs.map +1 -1
  117. package/dist/types/rules/eslint-jest-rules.d.mts +119 -67
  118. package/dist/types/rules/eslint-jest-rules.d.mts.map +1 -1
  119. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts +147 -0
  120. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts.map +1 -0
  121. package/dist/types/rules/eslint-ts-data-forge-rules.mjs +2 -0
  122. package/dist/types/rules/eslint-ts-data-forge-rules.mjs.map +1 -0
  123. package/dist/types/rules/eslint-vitest-rules.d.mts +41 -20
  124. package/dist/types/rules/eslint-vitest-rules.d.mts.map +1 -1
  125. package/dist/types/rules/index.d.mts +1 -0
  126. package/dist/types/rules/index.d.mts.map +1 -1
  127. package/package.json +15 -15
  128. package/src/configs/immer.mts +9 -0
  129. package/src/configs/index.mts +2 -0
  130. package/src/configs/plugins.mts +3 -0
  131. package/src/configs/ts-data-forge.mts +11 -0
  132. package/src/configs/typescript.mts +0 -2
  133. package/src/plugins/index.mts +1 -0
  134. package/src/plugins/strict-dependencies/rules/resolve-import-path.test.mts +7 -9
  135. package/src/plugins/ts-data-forge/index.mts +1 -0
  136. package/src/plugins/ts-data-forge/plugin.mts +6 -0
  137. package/src/plugins/ts-data-forge/rules/branded-number-types.mts +36 -0
  138. package/src/plugins/ts-data-forge/rules/constants.mts +1 -0
  139. package/src/plugins/ts-data-forge/rules/import-utils.mts +56 -0
  140. package/src/plugins/ts-data-forge/rules/index.mts +1 -0
  141. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mts +140 -0
  142. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.test.mts +175 -0
  143. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mts +144 -0
  144. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.test.mts +183 -0
  145. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array.mts +97 -0
  146. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array.test.mts +62 -0
  147. package/src/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mts +106 -0
  148. package/src/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.test.mts +83 -0
  149. package/src/plugins/ts-data-forge/rules/prefer-arr-sum.mts +269 -0
  150. package/src/plugins/ts-data-forge/rules/prefer-arr-sum.test.mts +171 -0
  151. package/src/plugins/ts-data-forge/rules/prefer-as-int.mts +130 -0
  152. package/src/plugins/ts-data-forge/rules/prefer-as-int.test.mts +267 -0
  153. package/src/plugins/ts-data-forge/rules/prefer-is-non-null-object.mts +144 -0
  154. package/src/plugins/ts-data-forge/rules/prefer-is-non-null-object.test.mts +156 -0
  155. package/src/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mts +158 -0
  156. package/src/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.test.mts +191 -0
  157. package/src/plugins/ts-data-forge/rules/prefer-range-for-loop.mts +181 -0
  158. package/src/plugins/ts-data-forge/rules/prefer-range-for-loop.test.mts +156 -0
  159. package/src/plugins/ts-data-forge/rules/rules.mts +22 -0
  160. package/src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts +6 -8
  161. package/src/plugins/ts-restrictions/rules/no-restricted-cast-name.mts +11 -15
  162. package/src/rules/eslint-jest-rules.mts +3 -0
  163. package/src/rules/eslint-ts-data-forge-rules.mts +13 -0
  164. package/src/rules/eslint-vitest-rules.mts +2 -2
  165. package/src/rules/index.mts +1 -0
  166. package/src/types/define-known-rules.mts +2 -0
  167. package/src/types/rules/eslint-jest-rules.mts +122 -67
  168. package/src/types/rules/eslint-ts-data-forge-rules.mts +156 -0
  169. package/src/types/rules/eslint-vitest-rules.mts +46 -21
  170. package/src/types/rules/index.mts +1 -0
@@ -171,20 +171,19 @@ export const checkDestructuringCompleteness: TSESLint.RuleModule<
171
171
 
172
172
  const objectProps = getObjectTypeProperties(type);
173
173
 
174
- const destructuredProps = new Set<string>();
174
+ const mut_destructuredProps = new Set<string>();
175
175
 
176
176
  for (const prop of node.id.properties) {
177
177
  if (
178
178
  prop.type === AST_NODE_TYPES.Property &&
179
179
  prop.key.type === AST_NODE_TYPES.Identifier
180
180
  ) {
181
- // eslint-disable-next-line functional/immutable-data
182
- destructuredProps.add(prop.key.name);
181
+ mut_destructuredProps.add(prop.key.name);
183
182
  }
184
183
  }
185
184
 
186
185
  const missingProps = objectProps.filter(
187
- (prop) => !destructuredProps.has(prop),
186
+ (prop) => !mut_destructuredProps.has(prop),
188
187
  );
189
188
 
190
189
  if (missingProps.length > 0) {
@@ -218,20 +217,19 @@ export const checkDestructuringCompleteness: TSESLint.RuleModule<
218
217
 
219
218
  const objectProps = getObjectTypeProperties(type);
220
219
 
221
- const destructuredProps = new Set<string>();
220
+ const mut_destructuredProps = new Set<string>();
222
221
 
223
222
  for (const prop of param.properties) {
224
223
  if (
225
224
  prop.type === AST_NODE_TYPES.Property &&
226
225
  prop.key.type === AST_NODE_TYPES.Identifier
227
226
  ) {
228
- // eslint-disable-next-line functional/immutable-data
229
- destructuredProps.add(prop.key.name);
227
+ mut_destructuredProps.add(prop.key.name);
230
228
  }
231
229
  }
232
230
 
233
231
  const missingProps = objectProps.filter(
234
- (prop) => !destructuredProps.has(prop),
232
+ (prop) => !mut_destructuredProps.has(prop),
235
233
  );
236
234
 
237
235
  if (missingProps.length > 0) {
@@ -62,7 +62,7 @@ const getTypeName = (
62
62
  }
63
63
 
64
64
  if (typeName.type === AST_NODE_TYPES.TSQualifiedName) {
65
- const parts: string[] = [];
65
+ const mut_parts: string[] = [];
66
66
 
67
67
  // eslint-disable-next-line functional/no-let
68
68
  let current:
@@ -72,8 +72,7 @@ const getTypeName = (
72
72
  while (current.type === AST_NODE_TYPES.TSQualifiedName) {
73
73
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
74
74
  if (current.right.type === AST_NODE_TYPES.Identifier) {
75
- // eslint-disable-next-line functional/immutable-data
76
- parts.unshift(current.right.name);
75
+ mut_parts.unshift(current.right.name);
77
76
  }
78
77
 
79
78
  if (
@@ -87,11 +86,10 @@ const getTypeName = (
87
86
  }
88
87
 
89
88
  if (current.type === AST_NODE_TYPES.Identifier) {
90
- // eslint-disable-next-line functional/immutable-data
91
- parts.unshift(current.name);
89
+ mut_parts.unshift(current.name);
92
90
  }
93
91
 
94
- return parts.join('.');
92
+ return mut_parts.join('.');
95
93
  }
96
94
  }
97
95
 
@@ -157,15 +155,13 @@ export const noRestrictedCastName: TSESLint.RuleModule<MessageIds, Options> = {
157
155
  create: (context) => {
158
156
  const options = context.options;
159
157
 
160
- const restrictedTypes = new Map<string, FixWithOption | undefined>();
158
+ const mut_restrictedTypes = new Map<string, FixWithOption | undefined>();
161
159
 
162
160
  for (const option of options) {
163
161
  if (typeof option === 'string') {
164
- // eslint-disable-next-line functional/immutable-data
165
- restrictedTypes.set(option, undefined);
162
+ mut_restrictedTypes.set(option, undefined);
166
163
  } else {
167
- // eslint-disable-next-line functional/immutable-data
168
- restrictedTypes.set(option.name, option.fixWith);
164
+ mut_restrictedTypes.set(option.name, option.fixWith);
169
165
  }
170
166
  }
171
167
 
@@ -207,9 +203,9 @@ export const noRestrictedCastName: TSESLint.RuleModule<MessageIds, Options> = {
207
203
 
208
204
  if (typeName === undefined) return;
209
205
 
210
- const fixWith = restrictedTypes.get(typeName);
206
+ const fixWith = mut_restrictedTypes.get(typeName);
211
207
 
212
- if (fixWith === undefined && !restrictedTypes.has(typeName)) return;
208
+ if (fixWith === undefined && !mut_restrictedTypes.has(typeName)) return;
213
209
 
214
210
  context.report({
215
211
  node: node.typeAnnotation,
@@ -233,9 +229,9 @@ export const noRestrictedCastName: TSESLint.RuleModule<MessageIds, Options> = {
233
229
 
234
230
  if (typeName === undefined) return;
235
231
 
236
- const fixWith = restrictedTypes.get(typeName);
232
+ const fixWith = mut_restrictedTypes.get(typeName);
237
233
 
238
- if (fixWith === undefined && !restrictedTypes.has(typeName)) return;
234
+ if (fixWith === undefined && !mut_restrictedTypes.has(typeName)) return;
239
235
 
240
236
  context.report({
241
237
  node: node.typeAnnotation,
@@ -87,4 +87,7 @@ export const eslintJestRules = {
87
87
  'jest/prefer-to-have-been-called-times': 'error',
88
88
 
89
89
  'jest/valid-mock-module-path': withDefaultOption('error'),
90
+ 'jest/no-error-equal': 'error',
91
+ 'jest/no-unnecessary-assertion': 'error',
92
+ 'jest/valid-expect-with-promise': 'error',
90
93
  } as const satisfies EslintJestRules;
@@ -0,0 +1,13 @@
1
+ import { type EslintTsDataForgeRules } from '../types/index.mjs';
2
+
3
+ export const eslintTsDataForgeRules = {
4
+ 'ts-data-forge/prefer-as-int': 'error',
5
+ 'ts-data-forge/prefer-is-non-null-object': 'error',
6
+ 'ts-data-forge/prefer-arr-is-array': 'error',
7
+ 'ts-data-forge/prefer-arr-is-non-empty': 'error',
8
+ 'ts-data-forge/prefer-arr-sum': 'error',
9
+ 'ts-data-forge/prefer-range-for-loop': 'error',
10
+ 'ts-data-forge/prefer-arr-is-array-at-least-length': 'error',
11
+ 'ts-data-forge/prefer-arr-is-array-of-length': 'error',
12
+ 'ts-data-forge/prefer-is-record-and-has-key': 'error',
13
+ } as const satisfies EslintTsDataForgeRules;
@@ -95,7 +95,7 @@ export const eslintVitestRules = {
95
95
  'vitest/prefer-called-times': 'off',
96
96
  'vitest/prefer-describe-function-title': 'error',
97
97
  'vitest/prefer-expect-type-of': 'error',
98
- 'vitest/prefer-import-in-mock': 'error',
98
+ 'vitest/prefer-import-in-mock': withDefaultOption('error'),
99
99
  'vitest/prefer-strict-boolean-matchers': 'error',
100
100
  'vitest/prefer-vi-mocked': 'error',
101
101
  'vitest/require-mock-type-parameters': 'off',
@@ -116,8 +116,8 @@ export const eslintVitestRules = {
116
116
  suite: 'each',
117
117
  },
118
118
  ],
119
- 'vitest/require-import-vi-mock': 'error',
120
119
  'vitest/no-unneeded-async-expect-function': 'error',
120
+ 'vitest/prefer-to-have-been-called-times': 'error',
121
121
 
122
122
  // deprecated
123
123
  'vitest/no-done-callback': 0,
@@ -23,6 +23,7 @@ export * from './eslint-stylistic-rules.mjs';
23
23
  export * from './eslint-testing-library-rules.mjs';
24
24
  export * from './eslint-total-functions-rules.mjs';
25
25
  export * from './eslint-tree-shakable-rules.mjs';
26
+ export * from './eslint-ts-data-forge-rules.mjs';
26
27
  export * from './eslint-ts-restrictions-rules.mjs';
27
28
  export * from './eslint-unicorn-rules.mjs';
28
29
  export * from './eslint-vitest-coding-style-rules.mjs';
@@ -25,6 +25,7 @@ import {
25
25
  type EslintTestingLibraryRules,
26
26
  type EslintTotalFunctionsRules,
27
27
  type EslintTreeShakableRules,
28
+ type EslintTsDataForgeRules,
28
29
  type EslintTsRestrictionsRules,
29
30
  type EslintUnicornRules,
30
31
  type EslintVitestCodingStyleRules,
@@ -62,6 +63,7 @@ type KnownRules = DeepReadonly<
62
63
  EslintVitestRules &
63
64
  EslintVitestCodingStyleRules &
64
65
  EslintImmerCodingStyleRules &
66
+ EslintTsDataForgeRules &
65
67
  EslintReactCodingStyleRules &
66
68
  TypeScriptEslintRules
67
69
  >;