@flint.fyi/ts 0.14.5 → 0.15.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 (433) hide show
  1. package/lib/collectReferencedFilePaths.d.ts +1 -0
  2. package/lib/collectReferencedFilePaths.js +3 -2
  3. package/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.d.ts +14 -0
  4. package/lib/{formatDiagnostic.js → convertTypeScriptDiagnosticToLanguageFileDiagnostic.js} +23 -15
  5. package/lib/createTypeScriptFileFromProgram.d.ts +4 -1
  6. package/lib/createTypeScriptFileFromProgram.js +25 -30
  7. package/lib/createTypeScriptFileFromProjectService.d.ts +3 -6
  8. package/lib/createTypeScriptFileFromProjectService.js +5 -11
  9. package/lib/directives/parseDirectivesFromTypeScriptFile.d.ts +8 -0
  10. package/lib/directives/parseDirectivesFromTypeScriptFile.js +12 -4
  11. package/lib/directives/parseDirectivesFromTypeScriptFile.test.d.ts +1 -0
  12. package/lib/directives/parseDirectivesFromTypeScriptFile.test.js +1 -0
  13. package/lib/getFirstEnumValues.d.ts +1 -0
  14. package/lib/getFirstEnumValues.js +1 -0
  15. package/lib/getFirstEnumValues.test.d.ts +1 -0
  16. package/lib/getFirstEnumValues.test.js +1 -0
  17. package/lib/getTSNodeRange.d.ts +1 -0
  18. package/lib/getTSNodeRange.js +1 -0
  19. package/lib/index.d.ts +6 -0
  20. package/lib/index.js +5 -0
  21. package/lib/language.d.ts +3 -2
  22. package/lib/language.js +7 -52
  23. package/lib/nodes.d.ts +1 -0
  24. package/lib/nodes.js +1 -0
  25. package/lib/normalizeRange.d.ts +1 -0
  26. package/lib/normalizeRange.js +4 -6
  27. package/lib/plugin.d.ts +79 -50
  28. package/lib/plugin.js +16 -1
  29. package/lib/prepareTypeScriptBasedLanguage.d.ts +11 -0
  30. package/lib/prepareTypeScriptBasedLanguage.js +59 -0
  31. package/lib/prepareTypeScriptFile.d.ts +9 -4
  32. package/lib/prepareTypeScriptFile.js +8 -2
  33. package/lib/rules/anyReturns.d.ts +2 -1
  34. package/lib/rules/anyReturns.js +22 -22
  35. package/lib/rules/anyReturns.test.d.ts +1 -0
  36. package/lib/rules/anyReturns.test.js +1 -0
  37. package/lib/rules/asyncPromiseExecutors.d.ts +2 -1
  38. package/lib/rules/asyncPromiseExecutors.js +4 -3
  39. package/lib/rules/asyncPromiseExecutors.test.d.ts +1 -0
  40. package/lib/rules/asyncPromiseExecutors.test.js +1 -0
  41. package/lib/rules/caseDeclarations.d.ts +3 -1
  42. package/lib/rules/caseDeclarations.js +7 -6
  43. package/lib/rules/caseDeclarations.test.d.ts +1 -0
  44. package/lib/rules/caseDeclarations.test.js +1 -0
  45. package/lib/rules/caseDuplicates.d.ts +2 -1
  46. package/lib/rules/caseDuplicates.js +4 -3
  47. package/lib/rules/caseDuplicates.test.d.ts +1 -0
  48. package/lib/rules/caseDuplicates.test.js +1 -0
  49. package/lib/rules/chainedAssignments.d.ts +2 -1
  50. package/lib/rules/chainedAssignments.js +3 -2
  51. package/lib/rules/chainedAssignments.test.d.ts +1 -0
  52. package/lib/rules/chainedAssignments.test.js +1 -0
  53. package/lib/rules/classAssignments.d.ts +2 -1
  54. package/lib/rules/classAssignments.js +4 -3
  55. package/lib/rules/classAssignments.test.d.ts +1 -0
  56. package/lib/rules/classAssignments.test.js +1 -0
  57. package/lib/rules/consecutiveNonNullAssertions.d.ts +2 -1
  58. package/lib/rules/consecutiveNonNullAssertions.js +1 -0
  59. package/lib/rules/consecutiveNonNullAssertions.test.d.ts +1 -0
  60. package/lib/rules/consecutiveNonNullAssertions.test.js +1 -0
  61. package/lib/rules/constantAssignments.d.ts +2 -1
  62. package/lib/rules/constantAssignments.js +4 -3
  63. package/lib/rules/constantAssignments.test.d.ts +1 -0
  64. package/lib/rules/constantAssignments.test.js +1 -0
  65. package/lib/rules/constructorReturns.d.ts +2 -1
  66. package/lib/rules/constructorReturns.js +3 -2
  67. package/lib/rules/constructorReturns.test.d.ts +1 -0
  68. package/lib/rules/constructorReturns.test.js +1 -0
  69. package/lib/rules/debuggerStatements.d.ts +2 -1
  70. package/lib/rules/debuggerStatements.js +1 -0
  71. package/lib/rules/debuggerStatements.test.d.ts +1 -0
  72. package/lib/rules/debuggerStatements.test.js +1 -0
  73. package/lib/rules/defaultCaseLast.d.ts +2 -1
  74. package/lib/rules/defaultCaseLast.js +4 -3
  75. package/lib/rules/defaultCaseLast.test.d.ts +1 -0
  76. package/lib/rules/defaultCaseLast.test.js +1 -0
  77. package/lib/rules/duplicateArguments.d.ts +3 -1
  78. package/lib/rules/duplicateArguments.js +3 -2
  79. package/lib/rules/duplicateArguments.test.d.ts +1 -0
  80. package/lib/rules/duplicateArguments.test.js +1 -0
  81. package/lib/rules/elseIfDuplicates.d.ts +2 -1
  82. package/lib/rules/elseIfDuplicates.js +6 -5
  83. package/lib/rules/elseIfDuplicates.test.d.ts +1 -0
  84. package/lib/rules/elseIfDuplicates.test.js +1 -0
  85. package/lib/rules/emptyBlocks.d.ts +2 -1
  86. package/lib/rules/emptyBlocks.js +12 -10
  87. package/lib/rules/emptyBlocks.test.d.ts +1 -0
  88. package/lib/rules/emptyBlocks.test.js +1 -0
  89. package/lib/rules/emptyDestructures.d.ts +3 -1
  90. package/lib/rules/emptyDestructures.js +3 -2
  91. package/lib/rules/emptyDestructures.test.d.ts +1 -0
  92. package/lib/rules/emptyDestructures.test.js +1 -0
  93. package/lib/rules/emptyStaticBlocks.d.ts +2 -1
  94. package/lib/rules/emptyStaticBlocks.js +5 -4
  95. package/lib/rules/emptyStaticBlocks.test.d.ts +1 -0
  96. package/lib/rules/emptyStaticBlocks.test.js +1 -0
  97. package/lib/rules/exceptionAssignments.d.ts +2 -1
  98. package/lib/rules/exceptionAssignments.js +4 -3
  99. package/lib/rules/exceptionAssignments.test.d.ts +1 -0
  100. package/lib/rules/exceptionAssignments.test.js +1 -0
  101. package/lib/rules/finallyStatementSafety.d.ts +7 -0
  102. package/lib/rules/finallyStatementSafety.js +71 -0
  103. package/lib/rules/finallyStatementSafety.test.d.ts +2 -0
  104. package/lib/rules/finallyStatementSafety.test.js +307 -0
  105. package/lib/rules/forDirections.d.ts +2 -1
  106. package/lib/rules/forDirections.js +18 -10
  107. package/lib/rules/forDirections.test.d.ts +1 -0
  108. package/lib/rules/forDirections.test.js +26 -0
  109. package/lib/rules/forInArrays.d.ts +2 -1
  110. package/lib/rules/forInArrays.js +8 -7
  111. package/lib/rules/forInArrays.test.d.ts +1 -0
  112. package/lib/rules/forInArrays.test.js +1 -0
  113. package/lib/rules/functionAssignments.d.ts +2 -1
  114. package/lib/rules/functionAssignments.js +4 -3
  115. package/lib/rules/functionAssignments.test.d.ts +1 -0
  116. package/lib/rules/functionAssignments.test.js +1 -0
  117. package/lib/rules/functionCurryingRedundancy.d.ts +7 -0
  118. package/lib/rules/functionCurryingRedundancy.js +77 -0
  119. package/lib/rules/functionCurryingRedundancy.test.d.ts +2 -0
  120. package/lib/rules/functionCurryingRedundancy.test.js +172 -0
  121. package/lib/rules/functionNewCalls.d.ts +3 -1
  122. package/lib/rules/functionNewCalls.js +7 -6
  123. package/lib/rules/functionNewCalls.test.d.ts +1 -0
  124. package/lib/rules/functionNewCalls.test.js +1 -0
  125. package/lib/rules/generatorFunctionYields.d.ts +3 -1
  126. package/lib/rules/generatorFunctionYields.js +3 -2
  127. package/lib/rules/generatorFunctionYields.test.d.ts +1 -0
  128. package/lib/rules/generatorFunctionYields.test.js +1 -0
  129. package/lib/rules/globalAssignments.d.ts +2 -1
  130. package/lib/rules/globalAssignments.js +10 -9
  131. package/lib/rules/globalAssignments.test.d.ts +1 -0
  132. package/lib/rules/globalAssignments.test.js +1 -0
  133. package/lib/rules/globalObjectCalls.d.ts +3 -1
  134. package/lib/rules/globalObjectCalls.js +5 -4
  135. package/lib/rules/globalObjectCalls.test.d.ts +1 -0
  136. package/lib/rules/globalObjectCalls.test.js +1 -0
  137. package/lib/rules/namespaceDeclarations.d.ts +2 -1
  138. package/lib/rules/namespaceDeclarations.js +7 -6
  139. package/lib/rules/namespaceDeclarations.test.d.ts +1 -0
  140. package/lib/rules/namespaceDeclarations.test.js +1 -0
  141. package/lib/rules/negativeZeroComparisons.d.ts +2 -1
  142. package/lib/rules/negativeZeroComparisons.js +8 -7
  143. package/lib/rules/negativeZeroComparisons.test.d.ts +1 -0
  144. package/lib/rules/negativeZeroComparisons.test.js +1 -0
  145. package/lib/rules/newExpressions.d.ts +2 -1
  146. package/lib/rules/newExpressions.js +3 -2
  147. package/lib/rules/newExpressions.test.d.ts +1 -0
  148. package/lib/rules/newExpressions.test.js +1 -0
  149. package/lib/rules/newNativeNonConstructors.d.ts +2 -1
  150. package/lib/rules/newNativeNonConstructors.js +6 -5
  151. package/lib/rules/newNativeNonConstructors.test.d.ts +1 -0
  152. package/lib/rules/newNativeNonConstructors.test.js +1 -0
  153. package/lib/rules/nonOctalDecimalEscapes.d.ts +3 -1
  154. package/lib/rules/nonOctalDecimalEscapes.js +4 -3
  155. package/lib/rules/nonOctalDecimalEscapes.test.d.ts +1 -0
  156. package/lib/rules/nonOctalDecimalEscapes.test.js +1 -0
  157. package/lib/rules/numericLiteralParsing.d.ts +2 -1
  158. package/lib/rules/numericLiteralParsing.js +8 -7
  159. package/lib/rules/numericLiteralParsing.test.d.ts +1 -0
  160. package/lib/rules/numericLiteralParsing.test.js +1 -0
  161. package/lib/rules/objectCalls.d.ts +7 -0
  162. package/lib/rules/objectCalls.js +47 -0
  163. package/lib/rules/objectCalls.test.d.ts +2 -0
  164. package/lib/rules/objectCalls.test.js +172 -0
  165. package/lib/rules/objectHasOwns.d.ts +7 -0
  166. package/lib/rules/objectHasOwns.js +74 -0
  167. package/lib/rules/objectHasOwns.test.d.ts +2 -0
  168. package/lib/rules/objectHasOwns.test.js +112 -0
  169. package/lib/rules/objectKeyDuplicates.d.ts +7 -0
  170. package/lib/rules/objectKeyDuplicates.js +91 -0
  171. package/lib/rules/objectKeyDuplicates.test.d.ts +2 -0
  172. package/lib/rules/objectKeyDuplicates.test.js +180 -0
  173. package/lib/rules/objectProto.d.ts +2 -1
  174. package/lib/rules/objectProto.js +5 -4
  175. package/lib/rules/objectProto.test.d.ts +1 -0
  176. package/lib/rules/objectProto.test.js +1 -0
  177. package/lib/rules/objectPrototypeBuiltIns.d.ts +7 -0
  178. package/lib/rules/objectPrototypeBuiltIns.js +65 -0
  179. package/lib/rules/objectPrototypeBuiltIns.test.d.ts +2 -0
  180. package/lib/rules/objectPrototypeBuiltIns.test.js +146 -0
  181. package/lib/rules/octalEscapes.d.ts +2 -1
  182. package/lib/rules/octalEscapes.js +13 -8
  183. package/lib/rules/octalEscapes.test.d.ts +1 -0
  184. package/lib/rules/octalEscapes.test.js +1 -0
  185. package/lib/rules/octalNumbers.d.ts +2 -1
  186. package/lib/rules/octalNumbers.js +4 -3
  187. package/lib/rules/octalNumbers.test.d.ts +1 -0
  188. package/lib/rules/octalNumbers.test.js +1 -0
  189. package/lib/rules/returnAssignments.d.ts +2 -1
  190. package/lib/rules/returnAssignments.js +7 -6
  191. package/lib/rules/returnAssignments.test.d.ts +1 -0
  192. package/lib/rules/returnAssignments.test.js +1 -0
  193. package/lib/rules/ruleTester.d.ts +1 -0
  194. package/lib/rules/ruleTester.js +6 -1
  195. package/lib/rules/selfAssignments.d.ts +2 -1
  196. package/lib/rules/selfAssignments.js +4 -3
  197. package/lib/rules/selfAssignments.test.d.ts +1 -0
  198. package/lib/rules/selfAssignments.test.js +1 -0
  199. package/lib/rules/selfComparisons.d.ts +2 -1
  200. package/lib/rules/selfComparisons.js +4 -3
  201. package/lib/rules/selfComparisons.test.d.ts +1 -0
  202. package/lib/rules/selfComparisons.test.js +1 -0
  203. package/lib/rules/sequences.d.ts +2 -1
  204. package/lib/rules/sequences.js +3 -2
  205. package/lib/rules/sequences.test.d.ts +1 -0
  206. package/lib/rules/sequences.test.js +1 -0
  207. package/lib/rules/shadowedRestrictedNames.d.ts +2 -1
  208. package/lib/rules/shadowedRestrictedNames.js +24 -23
  209. package/lib/rules/shadowedRestrictedNames.test.d.ts +1 -0
  210. package/lib/rules/shadowedRestrictedNames.test.js +1 -0
  211. package/lib/rules/sparseArrays.d.ts +2 -1
  212. package/lib/rules/sparseArrays.js +5 -4
  213. package/lib/rules/sparseArrays.test.d.ts +1 -0
  214. package/lib/rules/sparseArrays.test.js +1 -0
  215. package/lib/rules/symbolDescriptions.d.ts +2 -1
  216. package/lib/rules/symbolDescriptions.js +3 -2
  217. package/lib/rules/symbolDescriptions.test.d.ts +1 -0
  218. package/lib/rules/symbolDescriptions.test.js +1 -0
  219. package/lib/rules/typeofComparisons.d.ts +2 -1
  220. package/lib/rules/typeofComparisons.js +5 -4
  221. package/lib/rules/typeofComparisons.test.d.ts +1 -0
  222. package/lib/rules/typeofComparisons.test.js +1 -0
  223. package/lib/rules/unassignedVariables.d.ts +2 -1
  224. package/lib/rules/unassignedVariables.js +4 -3
  225. package/lib/rules/unassignedVariables.test.d.ts +1 -0
  226. package/lib/rules/unassignedVariables.test.js +1 -0
  227. package/lib/rules/undefinedVariables.d.ts +2 -1
  228. package/lib/rules/undefinedVariables.js +5 -4
  229. package/lib/rules/undefinedVariables.test.d.ts +1 -0
  230. package/lib/rules/undefinedVariables.test.js +1 -0
  231. package/lib/rules/unicodeBOMs.d.ts +2 -1
  232. package/lib/rules/unicodeBOMs.js +27 -20
  233. package/lib/rules/unicodeBOMs.test.d.ts +1 -0
  234. package/lib/rules/unicodeBOMs.test.js +1 -0
  235. package/lib/rules/unnecessaryBlocks.d.ts +2 -1
  236. package/lib/rules/unnecessaryBlocks.js +4 -3
  237. package/lib/rules/unnecessaryBlocks.test.d.ts +1 -0
  238. package/lib/rules/unnecessaryBlocks.test.js +1 -0
  239. package/lib/rules/unnecessaryCatches.d.ts +2 -1
  240. package/lib/rules/unnecessaryCatches.js +4 -3
  241. package/lib/rules/unnecessaryCatches.test.d.ts +1 -0
  242. package/lib/rules/unnecessaryCatches.test.js +1 -0
  243. package/lib/rules/unnecessaryConcatenation.d.ts +2 -1
  244. package/lib/rules/unnecessaryConcatenation.js +3 -2
  245. package/lib/rules/unnecessaryConcatenation.test.d.ts +1 -0
  246. package/lib/rules/unnecessaryConcatenation.test.js +1 -0
  247. package/lib/rules/unsafeNegations.d.ts +2 -1
  248. package/lib/rules/unsafeNegations.js +3 -2
  249. package/lib/rules/unsafeNegations.test.d.ts +1 -0
  250. package/lib/rules/unsafeNegations.test.js +1 -0
  251. package/lib/rules/utils/discriminateAnyType.d.ts +1 -0
  252. package/lib/rules/utils/discriminateAnyType.js +1 -0
  253. package/lib/rules/utils/getConstrainedType.d.ts +1 -0
  254. package/lib/rules/utils/getConstrainedType.js +1 -0
  255. package/lib/rules/utils/getThisExpression.d.ts +1 -0
  256. package/lib/rules/utils/getThisExpression.js +1 -0
  257. package/lib/rules/utils/isTypeRecursive.d.ts +1 -0
  258. package/lib/rules/utils/isTypeRecursive.js +1 -0
  259. package/lib/rules/utils/isUnsafeAssignment.d.ts +1 -0
  260. package/lib/rules/utils/isUnsafeAssignment.js +1 -0
  261. package/lib/rules/utils/operators.d.ts +1 -0
  262. package/lib/rules/utils/operators.js +1 -0
  263. package/lib/rules/variableDeletions.d.ts +2 -1
  264. package/lib/rules/variableDeletions.js +3 -2
  265. package/lib/rules/variableDeletions.test.d.ts +1 -0
  266. package/lib/rules/variableDeletions.test.js +1 -0
  267. package/lib/rules/voidOperator.d.ts +2 -1
  268. package/lib/rules/voidOperator.js +3 -2
  269. package/lib/rules/voidOperator.test.d.ts +1 -0
  270. package/lib/rules/voidOperator.test.js +1 -0
  271. package/lib/rules/withStatements.d.ts +7 -0
  272. package/lib/rules/withStatements.js +37 -0
  273. package/lib/rules/withStatements.test.d.ts +2 -0
  274. package/lib/rules/withStatements.test.js +27 -0
  275. package/lib/utils/declarationIncludesGlobal.d.ts +1 -0
  276. package/lib/utils/declarationIncludesGlobal.js +1 -0
  277. package/lib/utils/declarationsIncludeGlobal.d.ts +1 -0
  278. package/lib/utils/declarationsIncludeGlobal.js +1 -0
  279. package/lib/utils/getDeclarationsIfGlobal.d.ts +1 -0
  280. package/lib/utils/getDeclarationsIfGlobal.js +1 -0
  281. package/lib/utils/getModifyingReferences.d.ts +1 -0
  282. package/lib/utils/getModifyingReferences.js +1 -0
  283. package/lib/utils/hasSameTokens.d.ts +1 -0
  284. package/lib/utils/hasSameTokens.js +1 -0
  285. package/lib/utils/isFunction.d.ts +3 -0
  286. package/lib/utils/isFunction.js +6 -0
  287. package/lib/utils/isGlobalDeclaration.d.ts +1 -0
  288. package/lib/utils/isGlobalDeclaration.js +1 -0
  289. package/lib/utils/isGlobalDeclarationOfName.d.ts +1 -0
  290. package/lib/utils/isGlobalDeclarationOfName.js +1 -0
  291. package/lib/utils/isGlobalVariable.d.ts +1 -0
  292. package/lib/utils/isGlobalVariable.js +1 -0
  293. package/lib/utils/unwrapParentParenthesizedExpressions.d.ts +1 -0
  294. package/lib/utils/unwrapParentParenthesizedExpressions.js +1 -0
  295. package/lib/utils/unwrapParenthesizedExpression.d.ts +1 -0
  296. package/lib/utils/unwrapParenthesizedExpression.js +1 -0
  297. package/package.json +17 -7
  298. package/CHANGELOG.md +0 -82
  299. package/lib/formatDiagnostic.d.ts +0 -10
  300. package/src/collectReferencedFilePaths.ts +0 -37
  301. package/src/createTypeScriptFileFromProgram.ts +0 -86
  302. package/src/createTypeScriptFileFromProjectService.ts +0 -31
  303. package/src/directives/parseDirectivesFromTypeScriptFile.test.ts +0 -108
  304. package/src/directives/parseDirectivesFromTypeScriptFile.ts +0 -31
  305. package/src/formatDiagnostic.ts +0 -166
  306. package/src/getFirstEnumValues.test.ts +0 -51
  307. package/src/getFirstEnumValues.ts +0 -59
  308. package/src/getTSNodeRange.ts +0 -13
  309. package/src/index.ts +0 -7
  310. package/src/language.ts +0 -122
  311. package/src/nodes.ts +0 -146
  312. package/src/normalizeRange.ts +0 -30
  313. package/src/plugin.ts +0 -111
  314. package/src/prepareTypeScriptFile.ts +0 -14
  315. package/src/rules/anyReturns.test.ts +0 -649
  316. package/src/rules/anyReturns.ts +0 -263
  317. package/src/rules/asyncPromiseExecutors.test.ts +0 -72
  318. package/src/rules/asyncPromiseExecutors.ts +0 -61
  319. package/src/rules/caseDeclarations.test.ts +0 -228
  320. package/src/rules/caseDeclarations.ts +0 -70
  321. package/src/rules/caseDuplicates.test.ts +0 -308
  322. package/src/rules/caseDuplicates.ts +0 -57
  323. package/src/rules/chainedAssignments.test.ts +0 -263
  324. package/src/rules/chainedAssignments.ts +0 -58
  325. package/src/rules/classAssignments.test.ts +0 -157
  326. package/src/rules/classAssignments.ts +0 -50
  327. package/src/rules/consecutiveNonNullAssertions.test.ts +0 -33
  328. package/src/rules/consecutiveNonNullAssertions.ts +0 -46
  329. package/src/rules/constantAssignments.test.ts +0 -222
  330. package/src/rules/constantAssignments.ts +0 -78
  331. package/src/rules/constructorReturns.test.ts +0 -97
  332. package/src/rules/constructorReturns.ts +0 -59
  333. package/src/rules/debuggerStatements.test.ts +0 -81
  334. package/src/rules/debuggerStatements.ts +0 -45
  335. package/src/rules/defaultCaseLast.test.ts +0 -196
  336. package/src/rules/defaultCaseLast.ts +0 -54
  337. package/src/rules/duplicateArguments.test.ts +0 -140
  338. package/src/rules/duplicateArguments.ts +0 -58
  339. package/src/rules/elseIfDuplicates.test.ts +0 -177
  340. package/src/rules/elseIfDuplicates.ts +0 -69
  341. package/src/rules/emptyBlocks.test.ts +0 -136
  342. package/src/rules/emptyBlocks.ts +0 -73
  343. package/src/rules/emptyDestructures.test.ts +0 -187
  344. package/src/rules/emptyDestructures.ts +0 -48
  345. package/src/rules/emptyStaticBlocks.test.ts +0 -168
  346. package/src/rules/emptyStaticBlocks.ts +0 -60
  347. package/src/rules/exceptionAssignments.test.ts +0 -265
  348. package/src/rules/exceptionAssignments.ts +0 -77
  349. package/src/rules/forDirections.test.ts +0 -100
  350. package/src/rules/forDirections.ts +0 -163
  351. package/src/rules/forInArrays.test.ts +0 -25
  352. package/src/rules/forInArrays.ts +0 -70
  353. package/src/rules/functionAssignments.test.ts +0 -210
  354. package/src/rules/functionAssignments.ts +0 -51
  355. package/src/rules/functionNewCalls.test.ts +0 -116
  356. package/src/rules/functionNewCalls.ts +0 -75
  357. package/src/rules/generatorFunctionYields.test.ts +0 -152
  358. package/src/rules/generatorFunctionYields.ts +0 -71
  359. package/src/rules/globalAssignments.test.ts +0 -216
  360. package/src/rules/globalAssignments.ts +0 -67
  361. package/src/rules/globalObjectCalls.test.ts +0 -94
  362. package/src/rules/globalObjectCalls.ts +0 -52
  363. package/src/rules/namespaceDeclarations.test.ts +0 -41
  364. package/src/rules/namespaceDeclarations.ts +0 -74
  365. package/src/rules/negativeZeroComparisons.test.ts +0 -210
  366. package/src/rules/negativeZeroComparisons.ts +0 -87
  367. package/src/rules/newExpressions.test.ts +0 -80
  368. package/src/rules/newExpressions.ts +0 -67
  369. package/src/rules/newNativeNonConstructors.test.ts +0 -95
  370. package/src/rules/newNativeNonConstructors.ts +0 -59
  371. package/src/rules/nonOctalDecimalEscapes.test.ts +0 -70
  372. package/src/rules/nonOctalDecimalEscapes.ts +0 -70
  373. package/src/rules/numericLiteralParsing.test.ts +0 -100
  374. package/src/rules/numericLiteralParsing.ts +0 -116
  375. package/src/rules/objectProto.test.ts +0 -97
  376. package/src/rules/objectProto.ts +0 -62
  377. package/src/rules/octalEscapes.test.ts +0 -214
  378. package/src/rules/octalEscapes.ts +0 -85
  379. package/src/rules/octalNumbers.test.ts +0 -246
  380. package/src/rules/octalNumbers.ts +0 -75
  381. package/src/rules/returnAssignments.test.ts +0 -186
  382. package/src/rules/returnAssignments.ts +0 -57
  383. package/src/rules/ruleTester.ts +0 -4
  384. package/src/rules/selfAssignments.test.ts +0 -67
  385. package/src/rules/selfAssignments.ts +0 -50
  386. package/src/rules/selfComparisons.test.ts +0 -298
  387. package/src/rules/selfComparisons.ts +0 -45
  388. package/src/rules/sequences.test.ts +0 -49
  389. package/src/rules/sequences.ts +0 -37
  390. package/src/rules/shadowedRestrictedNames.test.ts +0 -148
  391. package/src/rules/shadowedRestrictedNames.ts +0 -105
  392. package/src/rules/sparseArrays.test.ts +0 -111
  393. package/src/rules/sparseArrays.ts +0 -61
  394. package/src/rules/symbolDescriptions.test.ts +0 -90
  395. package/src/rules/symbolDescriptions.ts +0 -47
  396. package/src/rules/typeofComparisons.test.ts +0 -86
  397. package/src/rules/typeofComparisons.ts +0 -88
  398. package/src/rules/unassignedVariables.test.ts +0 -73
  399. package/src/rules/unassignedVariables.ts +0 -69
  400. package/src/rules/undefinedVariables.test.ts +0 -81
  401. package/src/rules/undefinedVariables.ts +0 -97
  402. package/src/rules/unicodeBOMs.test.ts +0 -67
  403. package/src/rules/unicodeBOMs.ts +0 -44
  404. package/src/rules/unnecessaryBlocks.test.ts +0 -148
  405. package/src/rules/unnecessaryBlocks.ts +0 -89
  406. package/src/rules/unnecessaryCatches.test.ts +0 -211
  407. package/src/rules/unnecessaryCatches.ts +0 -84
  408. package/src/rules/unnecessaryConcatenation.test.ts +0 -88
  409. package/src/rules/unnecessaryConcatenation.ts +0 -44
  410. package/src/rules/unsafeNegations.test.ts +0 -64
  411. package/src/rules/unsafeNegations.ts +0 -59
  412. package/src/rules/utils/discriminateAnyType.ts +0 -66
  413. package/src/rules/utils/getConstrainedType.ts +0 -9
  414. package/src/rules/utils/getThisExpression.ts +0 -24
  415. package/src/rules/utils/isTypeRecursive.ts +0 -10
  416. package/src/rules/utils/isUnsafeAssignment.ts +0 -113
  417. package/src/rules/utils/operators.ts +0 -39
  418. package/src/rules/variableDeletions.test.ts +0 -76
  419. package/src/rules/variableDeletions.ts +0 -43
  420. package/src/rules/voidOperator.test.ts +0 -99
  421. package/src/rules/voidOperator.ts +0 -38
  422. package/src/utils/declarationIncludesGlobal.ts +0 -9
  423. package/src/utils/declarationsIncludeGlobal.ts +0 -7
  424. package/src/utils/getDeclarationsIfGlobal.ts +0 -14
  425. package/src/utils/getModifyingReferences.ts +0 -58
  426. package/src/utils/hasSameTokens.ts +0 -45
  427. package/src/utils/isGlobalDeclaration.ts +0 -10
  428. package/src/utils/isGlobalDeclarationOfName.ts +0 -56
  429. package/src/utils/isGlobalVariable.ts +0 -30
  430. package/src/utils/unwrapParentParenthesizedExpressions.ts +0 -7
  431. package/src/utils/unwrapParenthesizedExpression.ts +0 -9
  432. package/tsconfig.json +0 -9
  433. package/tsconfig.tsbuildinfo +0 -1
@@ -1,59 +0,0 @@
1
- /**
2
- * Removes TypeScript enum values that alias earlier values.
3
- * @param original Any TypeScript enum with numeric values.
4
- * @returns A version of the enum with only the first occurrence of each value.
5
- * @example
6
- * Given the following enum:
7
- * ```ts
8
- * enum Example {
9
- * A = 1,
10
- * B = 2,
11
- * C = A
12
- * }
13
- * ```
14
- * Its original value looks like:
15
- * ```ts
16
- * {
17
- * 1: 'C', // <-- Points to 'C', the alias of 'A'
18
- * 2: 'B',
19
- * A: 1,
20
- * B: 2,
21
- * C: 1,
22
- * }
23
- * ```
24
- * Calling `getFirstEnumValues(Example)` would return:
25
- * ```ts
26
- * {
27
- * 1: 'A', // <-- Corrected to the original 'A'
28
- * 2: 'B',
29
- * A: 1,
30
- * B: 2,
31
- * C: 1,
32
- * }
33
- * ```
34
- */
35
- export function getFirstEnumValues<
36
- Keys extends string,
37
- Values extends number,
38
- Original extends Record<Keys | Values, Keys | Values>,
39
- >(original: Original) {
40
- const result = {} as Original;
41
-
42
- for (const key in original) {
43
- if (typeof original[key] !== "number") {
44
- continue;
45
- }
46
-
47
- if (!(key in result)) {
48
- result[key] = original[key];
49
- }
50
-
51
- if (!(original[key] in result)) {
52
- // 🤷 enums are tricky to type.
53
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
54
- result[original[key]] = key as any;
55
- }
56
- }
57
-
58
- return result;
59
- }
@@ -1,13 +0,0 @@
1
- import type * as ts from "typescript";
2
-
3
- import { CharacterReportRange } from "@flint.fyi/core";
4
-
5
- export function getTSNodeRange(
6
- node: ts.Node,
7
- sourceFile: ts.SourceFile,
8
- ): CharacterReportRange {
9
- return {
10
- begin: node.getStart(sourceFile),
11
- end: node.getEnd(),
12
- };
13
- }
package/src/index.ts DELETED
@@ -1,7 +0,0 @@
1
- export { getTSNodeRange } from "./getTSNodeRange.js";
2
- export * from "./language.js";
3
- export { ts } from "./plugin.js";
4
- export { getDeclarationsIfGlobal } from "./utils/getDeclarationsIfGlobal.js";
5
- export { isGlobalDeclaration } from "./utils/isGlobalDeclaration.js";
6
- export { isGlobalDeclarationOfName } from "./utils/isGlobalDeclarationOfName.js";
7
- export { isGlobalVariable } from "./utils/isGlobalVariable.js";
package/src/language.ts DELETED
@@ -1,122 +0,0 @@
1
- import { createLanguage } from "@flint.fyi/core";
2
- import { createProjectService } from "@typescript-eslint/project-service";
3
- import {
4
- createFSBackedSystem,
5
- createVirtualTypeScriptEnvironment,
6
- } from "@typescript/vfs";
7
- import { CachedFactory } from "cached-factory";
8
- import { debugForFile } from "debug-for-file";
9
- import path from "node:path";
10
- import * as ts from "typescript";
11
-
12
- import { createTypeScriptFileFromProgram } from "./createTypeScriptFileFromProgram.js";
13
- import { createTypeScriptFileFromProjectService } from "./createTypeScriptFileFromProjectService.js";
14
- import { TSNodesByName } from "./nodes.js";
15
- import { prepareTypeScriptFile } from "./prepareTypeScriptFile.js";
16
-
17
- const log = debugForFile(import.meta.filename);
18
-
19
- const projectRoot = path.join(import.meta.dirname, "../..");
20
-
21
- export interface TypeScriptServices {
22
- program: ts.Program;
23
- sourceFile: ts.SourceFile;
24
- typeChecker: ts.TypeChecker;
25
- }
26
-
27
- export const typescriptLanguage = createLanguage<
28
- TSNodesByName,
29
- TypeScriptServices
30
- >({
31
- about: {
32
- name: "TypeScript",
33
- },
34
- prepare: () => {
35
- const { service } = createProjectService();
36
- const seenPrograms = new Set<ts.Program>();
37
-
38
- const environments = new CachedFactory((filePathAbsolute: string) => {
39
- const system = createFSBackedSystem(
40
- new Map([[filePathAbsolute, "// ..."]]),
41
- projectRoot,
42
- ts,
43
- );
44
-
45
- return createVirtualTypeScriptEnvironment(
46
- system,
47
- [filePathAbsolute],
48
- ts,
49
- {
50
- skipLibCheck: true,
51
- target: ts.ScriptTarget.ESNext,
52
- },
53
- );
54
- });
55
-
56
- const servicePrograms = new CachedFactory((filePathAbsolute: string) => {
57
- log("Opening client file:", filePathAbsolute);
58
- service.openClientFile(filePathAbsolute);
59
-
60
- log("Retrieving client services:", filePathAbsolute);
61
- const scriptInfo = service.getScriptInfo(filePathAbsolute);
62
- if (!scriptInfo) {
63
- throw new Error(
64
- `Could not find script info for file: ${filePathAbsolute}`,
65
- );
66
- }
67
-
68
- const defaultProject = service.getDefaultProjectForFile(
69
- scriptInfo.fileName,
70
- true,
71
- );
72
- if (!defaultProject) {
73
- throw new Error(
74
- `Could not find default project for file: ${filePathAbsolute}`,
75
- );
76
- }
77
-
78
- const program = defaultProject.getLanguageService(true).getProgram();
79
- if (!program) {
80
- throw new Error(
81
- `Could not retrieve program for file: ${filePathAbsolute}`,
82
- );
83
- }
84
-
85
- return program;
86
- });
87
-
88
- return {
89
- prepareFromDisk: (filePathAbsolute) => {
90
- const program = servicePrograms.get(filePathAbsolute);
91
-
92
- seenPrograms.add(program);
93
-
94
- const { languageFile, sourceFile } =
95
- createTypeScriptFileFromProjectService(
96
- filePathAbsolute,
97
- program,
98
- service,
99
- );
100
-
101
- return prepareTypeScriptFile(languageFile, sourceFile);
102
- },
103
- prepareFromVirtual: (filePathAbsolute, sourceText) => {
104
- const environment = environments.get(filePathAbsolute);
105
- environment.updateFile(filePathAbsolute, sourceText);
106
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
107
- const sourceFile = environment.getSourceFile(filePathAbsolute)!;
108
- const program = environment.languageService.getProgram()!;
109
- /* eslint-enable @typescript-eslint/no-non-null-assertion */
110
-
111
- seenPrograms.add(program);
112
-
113
- const languageFile = createTypeScriptFileFromProgram(
114
- program,
115
- sourceFile,
116
- );
117
-
118
- return prepareTypeScriptFile(languageFile, sourceFile);
119
- },
120
- };
121
- },
122
- });
package/src/nodes.ts DELETED
@@ -1,146 +0,0 @@
1
- import type * as ts from "typescript";
2
-
3
- // TODO: Surely there's a better way to do this...
4
- // ...but I haven't checked how to do it without slow type operations.
5
-
6
- export interface TSNodesByName {
7
- ArrayBindingPattern: ts.ArrayBindingPattern;
8
- ArrayLiteralExpression: ts.ArrayLiteralExpression;
9
- ArrowFunction: ts.ArrowFunction;
10
- AsExpression: ts.AsExpression;
11
- AwaitExpression: ts.AwaitExpression;
12
- BigIntLiteral: ts.BigIntLiteral;
13
- BinaryExpression: ts.BinaryExpression;
14
- BindingElement: ts.BindingElement;
15
- Block: ts.Block;
16
- BreakStatement: ts.BreakStatement;
17
- Bundle: ts.Bundle;
18
- CallExpression: ts.CallExpression;
19
- CaseBlock: ts.CaseBlock;
20
- CaseClause: ts.CaseClause;
21
- CatchClause: ts.CatchClause;
22
- ClassDeclaration: ts.ClassDeclaration;
23
- ClassExpression: ts.ClassExpression;
24
- ClassStaticBlockDeclaration: ts.ClassStaticBlockDeclaration;
25
- CommaListExpression: ts.CommaListExpression;
26
- ComputedPropertyName: ts.ComputedPropertyName;
27
- ConditionalExpression: ts.ConditionalExpression;
28
- ConditionalType: ts.ConditionalType;
29
- Constructor: ts.ConstructorDeclaration;
30
- ContinueStatement: ts.ContinueStatement;
31
- DebuggerStatement: ts.DebuggerStatement;
32
- Decorator: ts.Decorator;
33
- DefaultClause: ts.DefaultClause;
34
- DeleteExpression: ts.DeleteExpression;
35
- DoStatement: ts.DoStatement;
36
- ElementAccessExpression: ts.ElementAccessExpression;
37
- EmptyStatement: ts.EmptyStatement;
38
- EnumDeclaration: ts.EnumDeclaration;
39
- EnumMember: ts.EnumMember;
40
- ExportAssignment: ts.ExportAssignment;
41
- ExportDeclaration: ts.ExportDeclaration;
42
- ExportSpecifier: ts.ExportSpecifier;
43
- ExpressionStatement: ts.ExpressionStatement;
44
- ExpressionWithTypeArguments: ts.ExpressionWithTypeArguments;
45
- ExternalModuleReference: ts.ExternalModuleReference;
46
- ForInStatement: ts.ForInStatement;
47
- ForOfStatement: ts.ForOfStatement;
48
- ForStatement: ts.ForStatement;
49
- FunctionDeclaration: ts.FunctionDeclaration;
50
- FunctionExpression: ts.FunctionExpression;
51
- HeritageClause: ts.HeritageClause;
52
- Identifier: ts.Identifier;
53
- IfStatement: ts.IfStatement;
54
- ImportAttribute: ts.ImportAttribute;
55
- ImportAttributes: ts.ImportAttributes;
56
- ImportClause: ts.ImportClause;
57
- ImportDeclaration: ts.ImportDeclaration;
58
- ImportEqualsDeclaration: ts.ImportEqualsDeclaration;
59
- ImportSpecifier: ts.ImportSpecifier;
60
- IndexedAccessType: ts.IndexedAccessType;
61
- InterfaceDeclaration: ts.InterfaceDeclaration;
62
- IntersectionType: ts.IntersectionType;
63
- JsxAttribute: ts.JsxAttribute;
64
- JsxAttributes: ts.JsxAttributes;
65
- JsxClosingElement: ts.JsxClosingElement;
66
- JsxClosingFragment: ts.JsxClosingFragment;
67
- JsxElement: ts.JsxElement;
68
- JsxExpression: ts.JsxExpression;
69
- JsxFragment: ts.JsxFragment;
70
- JsxNamespacedName: ts.JsxNamespacedName;
71
- JsxOpeningElement: ts.JsxOpeningElement;
72
- JsxOpeningFragment: ts.JsxOpeningFragment;
73
- JsxSelfClosingElement: ts.JsxSelfClosingElement;
74
- JsxSpreadAttribute: ts.JsxSpreadAttribute;
75
- JsxText: ts.JsxText;
76
- LabeledStatement: ts.LabeledStatement;
77
- LiteralType: ts.LiteralType;
78
- MappedTypeNode: ts.MappedTypeNode;
79
- MetaProperty: ts.MetaProperty;
80
- MethodDeclaration: ts.MethodDeclaration;
81
- MethodSignature: ts.MethodSignature;
82
- MissingDeclaration: ts.MissingDeclaration;
83
- ModuleBlock: ts.ModuleBlock;
84
- ModuleDeclaration: ts.ModuleDeclaration;
85
- NamedExports: ts.NamedExports;
86
- NamedImports: ts.NamedImports;
87
- NamedTupleMember: ts.NamedTupleMember;
88
- NamespaceExport: ts.NamespaceExport;
89
- NamespaceExportDeclaration: ts.NamespaceExportDeclaration;
90
- NamespaceImport: ts.NamespaceImport;
91
- NewExpression: ts.NewExpression;
92
- NonNullExpression: ts.NonNullExpression;
93
- NoSubstitutionTemplateLiteral: ts.NoSubstitutionTemplateLiteral;
94
- NotEmittedStatement: ts.NotEmittedStatement;
95
- NotEmittedTypeElement: ts.NotEmittedTypeElement;
96
- NumericLiteral: ts.NumericLiteral;
97
- ObjectBindingPattern: ts.ObjectBindingPattern;
98
- ObjectLiteralExpression: ts.ObjectLiteralExpression;
99
- OmittedExpression: ts.OmittedExpression;
100
- ParenthesizedExpression: ts.ParenthesizedExpression;
101
- PartiallyEmittedExpression: ts.PartiallyEmittedExpression;
102
- PostfixUnaryExpression: ts.PostfixUnaryExpression;
103
- PrefixUnaryExpression: ts.PrefixUnaryExpression;
104
- PrivateIdentifier: ts.PrivateIdentifier;
105
- PropertyAccessExpression: ts.PropertyAccessExpression;
106
- PropertyAssignment: ts.PropertyAssignment;
107
- PropertyDeclaration: ts.PropertyDeclaration;
108
- PropertySignature: ts.PropertySignature;
109
- QualifiedName: ts.QualifiedName;
110
- RegularExpressionLiteral: ts.RegularExpressionLiteral;
111
- ReturnStatement: ts.ReturnStatement;
112
- SatisfiesExpression: ts.SatisfiesExpression;
113
- SemicolonClassElement: ts.SemicolonClassElement;
114
- ShorthandPropertyAssignment: ts.ShorthandPropertyAssignment;
115
- SourceFile: ts.SourceFile;
116
- SpreadAssignment: ts.SpreadAssignment;
117
- SpreadElement: ts.SpreadElement;
118
- StringLiteral: ts.StringLiteral;
119
- SwitchStatement: ts.SwitchStatement;
120
- SyntaxList: ts.SyntaxList;
121
- SyntheticExpression: ts.SyntheticExpression;
122
- TaggedTemplateExpression: ts.TaggedTemplateExpression;
123
- TemplateExpression: ts.TemplateExpression;
124
- TemplateHead: ts.TemplateHead;
125
- TemplateLiteralType: ts.TemplateLiteralType;
126
- TemplateLiteralTypeSpan: ts.TemplateLiteralTypeSpan;
127
- TemplateMiddle: ts.TemplateMiddle;
128
- TemplateSpan: ts.TemplateSpan;
129
- TemplateTail: ts.TemplateTail;
130
- ThrowStatement: ts.ThrowStatement;
131
- TryStatement: ts.TryStatement;
132
- TupleType: ts.TupleType;
133
- TypeAliasDeclaration: ts.TypeAliasDeclaration;
134
- TypeOfExpression: ts.TypeOfExpression;
135
- TypeParameter: ts.TypeParameter;
136
- TypePredicate: ts.TypePredicate;
137
- TypeReference: ts.TypeReference;
138
- UnionType: ts.UnionType;
139
- VariableDeclaration: ts.VariableDeclaration;
140
- VariableDeclarationList: ts.VariableDeclarationList;
141
- VariableStatement: ts.VariableStatement;
142
- VoidExpression: ts.VoidExpression;
143
- WhileStatement: ts.WhileStatement;
144
- WithStatement: ts.WithStatement;
145
- YieldExpression: ts.YieldExpression;
146
- }
@@ -1,30 +0,0 @@
1
- import type * as ts from "typescript";
2
-
3
- import {
4
- CharacterReportRange,
5
- NormalizedReportRangeObject,
6
- } from "@flint.fyi/core";
7
-
8
- export function normalizeRange(
9
- original: CharacterReportRange,
10
- sourceFile: ts.SourceFile,
11
- ): NormalizedReportRangeObject {
12
- const onCharacters = isNode(original)
13
- ? { begin: original.getStart(), end: original.getEnd() }
14
- : original;
15
-
16
- return {
17
- begin: normalizeRangePosition(onCharacters.begin, sourceFile),
18
- end: normalizeRangePosition(onCharacters.end, sourceFile),
19
- };
20
- }
21
-
22
- function isNode(value: unknown): value is ts.Node {
23
- return typeof value === "object" && value !== null && "kind" in value;
24
- }
25
-
26
- function normalizeRangePosition(raw: number, sourceFile: ts.SourceFile) {
27
- const { character, line } = sourceFile.getLineAndCharacterOfPosition(raw);
28
-
29
- return { column: character, line, raw };
30
- }
package/src/plugin.ts DELETED
@@ -1,111 +0,0 @@
1
- import { createPlugin } from "@flint.fyi/core";
2
-
3
- import anyReturns from "./rules/anyReturns.js";
4
- import asyncPromiseExecutors from "./rules/asyncPromiseExecutors.js";
5
- import caseDeclarations from "./rules/caseDeclarations.js";
6
- import caseDuplicates from "./rules/caseDuplicates.js";
7
- import chainedAssignments from "./rules/chainedAssignments.js";
8
- import classAssignments from "./rules/classAssignments.js";
9
- import consecutiveNonNullAssertions from "./rules/consecutiveNonNullAssertions.js";
10
- import constantAssignments from "./rules/constantAssignments.js";
11
- import constructorReturns from "./rules/constructorReturns.js";
12
- import debuggerStatements from "./rules/debuggerStatements.js";
13
- import defaultCaseLast from "./rules/defaultCaseLast.js";
14
- import duplicateArguments from "./rules/duplicateArguments.js";
15
- import elseIfDuplicates from "./rules/elseIfDuplicates.js";
16
- import emptyBlocks from "./rules/emptyBlocks.js";
17
- import emptyDestructures from "./rules/emptyDestructures.js";
18
- import emptyStaticBlocks from "./rules/emptyStaticBlocks.js";
19
- import exceptionAssignments from "./rules/exceptionAssignments.js";
20
- import forDirections from "./rules/forDirections.js";
21
- import forInArrays from "./rules/forInArrays.js";
22
- import functionAssignments from "./rules/functionAssignments.js";
23
- import functionNewCalls from "./rules/functionNewCalls.js";
24
- import generatorFunctionYields from "./rules/generatorFunctionYields.js";
25
- import globalAssignments from "./rules/globalAssignments.js";
26
- import globalObjectCalls from "./rules/globalObjectCalls.js";
27
- import namespaceDeclarations from "./rules/namespaceDeclarations.js";
28
- import negativeZeroComparisons from "./rules/negativeZeroComparisons.js";
29
- import newExpressions from "./rules/newExpressions.js";
30
- import newNativeNonConstructors from "./rules/newNativeNonConstructors.js";
31
- import nonOctalDecimalEscapes from "./rules/nonOctalDecimalEscapes.js";
32
- import numericLiteralParsing from "./rules/numericLiteralParsing.js";
33
- import objectProto from "./rules/objectProto.js";
34
- import octalEscapes from "./rules/octalEscapes.js";
35
- import octalNumbers from "./rules/octalNumbers.js";
36
- import returnAssignments from "./rules/returnAssignments.js";
37
- import selfAssignments from "./rules/selfAssignments.js";
38
- import selfComparisons from "./rules/selfComparisons.js";
39
- import sequences from "./rules/sequences.js";
40
- import shadowedRestrictedNames from "./rules/shadowedRestrictedNames.js";
41
- import sparseArrays from "./rules/sparseArrays.js";
42
- import symbolDescriptions from "./rules/symbolDescriptions.js";
43
- import typeofComparisons from "./rules/typeofComparisons.js";
44
- import unassignedVariables from "./rules/unassignedVariables.js";
45
- import undefinedVariables from "./rules/undefinedVariables.js";
46
- import unicodeBOMs from "./rules/unicodeBOMs.js";
47
- import unnecessaryBlocks from "./rules/unnecessaryBlocks.js";
48
- import unnecessaryCatches from "./rules/unnecessaryCatches.js";
49
- import unnecessaryConcatenation from "./rules/unnecessaryConcatenation.js";
50
- import unsafeNegations from "./rules/unsafeNegations.js";
51
- import variableDeletions from "./rules/variableDeletions.js";
52
- import voidOperator from "./rules/voidOperator.js";
53
-
54
- export const ts = createPlugin({
55
- files: {
56
- all: ["**/*.{cjs,js,jsx,mjs,ts,tsx}"],
57
- },
58
- name: "ts",
59
- rules: [
60
- anyReturns,
61
- asyncPromiseExecutors,
62
- caseDeclarations,
63
- caseDuplicates,
64
- chainedAssignments,
65
- classAssignments,
66
- consecutiveNonNullAssertions,
67
- constantAssignments,
68
- constructorReturns,
69
- debuggerStatements,
70
- defaultCaseLast,
71
- duplicateArguments,
72
- elseIfDuplicates,
73
- emptyBlocks,
74
- emptyDestructures,
75
- emptyStaticBlocks,
76
- exceptionAssignments,
77
- forDirections,
78
- forInArrays,
79
- functionAssignments,
80
- functionNewCalls,
81
- generatorFunctionYields,
82
- globalAssignments,
83
- globalObjectCalls,
84
- namespaceDeclarations,
85
- negativeZeroComparisons,
86
- newExpressions,
87
- newNativeNonConstructors,
88
- nonOctalDecimalEscapes,
89
- numericLiteralParsing,
90
- objectProto,
91
- octalEscapes,
92
- octalNumbers,
93
- returnAssignments,
94
- selfAssignments,
95
- selfComparisons,
96
- sequences,
97
- shadowedRestrictedNames,
98
- sparseArrays,
99
- symbolDescriptions,
100
- typeofComparisons,
101
- unassignedVariables,
102
- undefinedVariables,
103
- unicodeBOMs,
104
- unnecessaryBlocks,
105
- unnecessaryCatches,
106
- unnecessaryConcatenation,
107
- unsafeNegations,
108
- variableDeletions,
109
- voidOperator,
110
- ],
111
- });
@@ -1,14 +0,0 @@
1
- import { LanguageFileDefinition } from "@flint.fyi/core";
2
- import ts from "typescript";
3
-
4
- import { parseDirectivesFromTypeScriptFile } from "./directives/parseDirectivesFromTypeScriptFile.js";
5
-
6
- export function prepareTypeScriptFile(
7
- languageFile: LanguageFileDefinition,
8
- sourceFile: ts.SourceFile,
9
- ) {
10
- return {
11
- ...parseDirectivesFromTypeScriptFile(sourceFile),
12
- file: languageFile,
13
- };
14
- }