@flint.fyi/ts 0.14.6 → 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.
- package/lib/collectReferencedFilePaths.d.ts +1 -0
- package/lib/collectReferencedFilePaths.js +3 -2
- package/lib/convertTypeScriptDiagnosticToLanguageFileDiagnostic.d.ts +14 -0
- package/lib/{formatDiagnostic.js → convertTypeScriptDiagnosticToLanguageFileDiagnostic.js} +22 -14
- package/lib/createTypeScriptFileFromProgram.d.ts +4 -1
- package/lib/createTypeScriptFileFromProgram.js +25 -30
- package/lib/createTypeScriptFileFromProjectService.d.ts +3 -6
- package/lib/createTypeScriptFileFromProjectService.js +5 -11
- package/lib/directives/parseDirectivesFromTypeScriptFile.d.ts +8 -0
- package/lib/directives/parseDirectivesFromTypeScriptFile.js +12 -4
- package/lib/directives/parseDirectivesFromTypeScriptFile.test.d.ts +1 -0
- package/lib/directives/parseDirectivesFromTypeScriptFile.test.js +1 -0
- package/lib/getFirstEnumValues.d.ts +1 -0
- package/lib/getFirstEnumValues.js +1 -0
- package/lib/getFirstEnumValues.test.d.ts +1 -0
- package/lib/getFirstEnumValues.test.js +1 -0
- package/lib/getTSNodeRange.d.ts +1 -0
- package/lib/getTSNodeRange.js +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +5 -0
- package/lib/language.d.ts +3 -2
- package/lib/language.js +7 -52
- package/lib/nodes.d.ts +1 -0
- package/lib/nodes.js +1 -0
- package/lib/normalizeRange.d.ts +1 -0
- package/lib/normalizeRange.js +1 -0
- package/lib/plugin.d.ts +79 -50
- package/lib/plugin.js +15 -0
- package/lib/prepareTypeScriptBasedLanguage.d.ts +11 -0
- package/lib/prepareTypeScriptBasedLanguage.js +59 -0
- package/lib/prepareTypeScriptFile.d.ts +9 -4
- package/lib/prepareTypeScriptFile.js +8 -2
- package/lib/rules/anyReturns.d.ts +2 -1
- package/lib/rules/anyReturns.js +22 -22
- package/lib/rules/anyReturns.test.d.ts +1 -0
- package/lib/rules/anyReturns.test.js +1 -0
- package/lib/rules/asyncPromiseExecutors.d.ts +2 -1
- package/lib/rules/asyncPromiseExecutors.js +4 -3
- package/lib/rules/asyncPromiseExecutors.test.d.ts +1 -0
- package/lib/rules/asyncPromiseExecutors.test.js +1 -0
- package/lib/rules/caseDeclarations.d.ts +3 -1
- package/lib/rules/caseDeclarations.js +7 -6
- package/lib/rules/caseDeclarations.test.d.ts +1 -0
- package/lib/rules/caseDeclarations.test.js +1 -0
- package/lib/rules/caseDuplicates.d.ts +2 -1
- package/lib/rules/caseDuplicates.js +4 -3
- package/lib/rules/caseDuplicates.test.d.ts +1 -0
- package/lib/rules/caseDuplicates.test.js +1 -0
- package/lib/rules/chainedAssignments.d.ts +2 -1
- package/lib/rules/chainedAssignments.js +3 -2
- package/lib/rules/chainedAssignments.test.d.ts +1 -0
- package/lib/rules/chainedAssignments.test.js +1 -0
- package/lib/rules/classAssignments.d.ts +2 -1
- package/lib/rules/classAssignments.js +4 -3
- package/lib/rules/classAssignments.test.d.ts +1 -0
- package/lib/rules/classAssignments.test.js +1 -0
- package/lib/rules/consecutiveNonNullAssertions.d.ts +2 -1
- package/lib/rules/consecutiveNonNullAssertions.js +1 -0
- package/lib/rules/consecutiveNonNullAssertions.test.d.ts +1 -0
- package/lib/rules/consecutiveNonNullAssertions.test.js +1 -0
- package/lib/rules/constantAssignments.d.ts +2 -1
- package/lib/rules/constantAssignments.js +4 -3
- package/lib/rules/constantAssignments.test.d.ts +1 -0
- package/lib/rules/constantAssignments.test.js +1 -0
- package/lib/rules/constructorReturns.d.ts +2 -1
- package/lib/rules/constructorReturns.js +3 -2
- package/lib/rules/constructorReturns.test.d.ts +1 -0
- package/lib/rules/constructorReturns.test.js +1 -0
- package/lib/rules/debuggerStatements.d.ts +2 -1
- package/lib/rules/debuggerStatements.js +1 -0
- package/lib/rules/debuggerStatements.test.d.ts +1 -0
- package/lib/rules/debuggerStatements.test.js +1 -0
- package/lib/rules/defaultCaseLast.d.ts +2 -1
- package/lib/rules/defaultCaseLast.js +4 -3
- package/lib/rules/defaultCaseLast.test.d.ts +1 -0
- package/lib/rules/defaultCaseLast.test.js +1 -0
- package/lib/rules/duplicateArguments.d.ts +3 -1
- package/lib/rules/duplicateArguments.js +3 -2
- package/lib/rules/duplicateArguments.test.d.ts +1 -0
- package/lib/rules/duplicateArguments.test.js +1 -0
- package/lib/rules/elseIfDuplicates.d.ts +2 -1
- package/lib/rules/elseIfDuplicates.js +6 -5
- package/lib/rules/elseIfDuplicates.test.d.ts +1 -0
- package/lib/rules/elseIfDuplicates.test.js +1 -0
- package/lib/rules/emptyBlocks.d.ts +2 -1
- package/lib/rules/emptyBlocks.js +12 -10
- package/lib/rules/emptyBlocks.test.d.ts +1 -0
- package/lib/rules/emptyBlocks.test.js +1 -0
- package/lib/rules/emptyDestructures.d.ts +3 -1
- package/lib/rules/emptyDestructures.js +3 -2
- package/lib/rules/emptyDestructures.test.d.ts +1 -0
- package/lib/rules/emptyDestructures.test.js +1 -0
- package/lib/rules/emptyStaticBlocks.d.ts +2 -1
- package/lib/rules/emptyStaticBlocks.js +5 -4
- package/lib/rules/emptyStaticBlocks.test.d.ts +1 -0
- package/lib/rules/emptyStaticBlocks.test.js +1 -0
- package/lib/rules/exceptionAssignments.d.ts +2 -1
- package/lib/rules/exceptionAssignments.js +4 -3
- package/lib/rules/exceptionAssignments.test.d.ts +1 -0
- package/lib/rules/exceptionAssignments.test.js +1 -0
- package/lib/rules/finallyStatementSafety.d.ts +7 -0
- package/lib/rules/finallyStatementSafety.js +71 -0
- package/lib/rules/finallyStatementSafety.test.d.ts +2 -0
- package/lib/rules/finallyStatementSafety.test.js +307 -0
- package/lib/rules/forDirections.d.ts +2 -1
- package/lib/rules/forDirections.js +3 -2
- package/lib/rules/forDirections.test.d.ts +1 -0
- package/lib/rules/forDirections.test.js +1 -0
- package/lib/rules/forInArrays.d.ts +2 -1
- package/lib/rules/forInArrays.js +8 -7
- package/lib/rules/forInArrays.test.d.ts +1 -0
- package/lib/rules/forInArrays.test.js +1 -0
- package/lib/rules/functionAssignments.d.ts +2 -1
- package/lib/rules/functionAssignments.js +4 -3
- package/lib/rules/functionAssignments.test.d.ts +1 -0
- package/lib/rules/functionAssignments.test.js +1 -0
- package/lib/rules/functionCurryingRedundancy.d.ts +7 -0
- package/lib/rules/functionCurryingRedundancy.js +77 -0
- package/lib/rules/functionCurryingRedundancy.test.d.ts +2 -0
- package/lib/rules/functionCurryingRedundancy.test.js +172 -0
- package/lib/rules/functionNewCalls.d.ts +3 -1
- package/lib/rules/functionNewCalls.js +7 -6
- package/lib/rules/functionNewCalls.test.d.ts +1 -0
- package/lib/rules/functionNewCalls.test.js +1 -0
- package/lib/rules/generatorFunctionYields.d.ts +3 -1
- package/lib/rules/generatorFunctionYields.js +3 -2
- package/lib/rules/generatorFunctionYields.test.d.ts +1 -0
- package/lib/rules/generatorFunctionYields.test.js +1 -0
- package/lib/rules/globalAssignments.d.ts +2 -1
- package/lib/rules/globalAssignments.js +10 -9
- package/lib/rules/globalAssignments.test.d.ts +1 -0
- package/lib/rules/globalAssignments.test.js +1 -0
- package/lib/rules/globalObjectCalls.d.ts +3 -1
- package/lib/rules/globalObjectCalls.js +5 -4
- package/lib/rules/globalObjectCalls.test.d.ts +1 -0
- package/lib/rules/globalObjectCalls.test.js +1 -0
- package/lib/rules/namespaceDeclarations.d.ts +2 -1
- package/lib/rules/namespaceDeclarations.js +7 -6
- package/lib/rules/namespaceDeclarations.test.d.ts +1 -0
- package/lib/rules/namespaceDeclarations.test.js +1 -0
- package/lib/rules/negativeZeroComparisons.d.ts +2 -1
- package/lib/rules/negativeZeroComparisons.js +8 -7
- package/lib/rules/negativeZeroComparisons.test.d.ts +1 -0
- package/lib/rules/negativeZeroComparisons.test.js +1 -0
- package/lib/rules/newExpressions.d.ts +2 -1
- package/lib/rules/newExpressions.js +3 -2
- package/lib/rules/newExpressions.test.d.ts +1 -0
- package/lib/rules/newExpressions.test.js +1 -0
- package/lib/rules/newNativeNonConstructors.d.ts +2 -1
- package/lib/rules/newNativeNonConstructors.js +6 -5
- package/lib/rules/newNativeNonConstructors.test.d.ts +1 -0
- package/lib/rules/newNativeNonConstructors.test.js +1 -0
- package/lib/rules/nonOctalDecimalEscapes.d.ts +3 -1
- package/lib/rules/nonOctalDecimalEscapes.js +4 -3
- package/lib/rules/nonOctalDecimalEscapes.test.d.ts +1 -0
- package/lib/rules/nonOctalDecimalEscapes.test.js +1 -0
- package/lib/rules/numericLiteralParsing.d.ts +2 -1
- package/lib/rules/numericLiteralParsing.js +8 -7
- package/lib/rules/numericLiteralParsing.test.d.ts +1 -0
- package/lib/rules/numericLiteralParsing.test.js +1 -0
- package/lib/rules/objectCalls.d.ts +7 -0
- package/lib/rules/objectCalls.js +47 -0
- package/lib/rules/objectCalls.test.d.ts +2 -0
- package/lib/rules/objectCalls.test.js +172 -0
- package/lib/rules/objectHasOwns.d.ts +7 -0
- package/lib/rules/objectHasOwns.js +74 -0
- package/lib/rules/objectHasOwns.test.d.ts +2 -0
- package/lib/rules/objectHasOwns.test.js +112 -0
- package/lib/rules/objectKeyDuplicates.d.ts +7 -0
- package/lib/rules/objectKeyDuplicates.js +91 -0
- package/lib/rules/objectKeyDuplicates.test.d.ts +2 -0
- package/lib/rules/objectKeyDuplicates.test.js +180 -0
- package/lib/rules/objectProto.d.ts +2 -1
- package/lib/rules/objectProto.js +5 -4
- package/lib/rules/objectProto.test.d.ts +1 -0
- package/lib/rules/objectProto.test.js +1 -0
- package/lib/rules/objectPrototypeBuiltIns.d.ts +7 -0
- package/lib/rules/objectPrototypeBuiltIns.js +65 -0
- package/lib/rules/objectPrototypeBuiltIns.test.d.ts +2 -0
- package/lib/rules/objectPrototypeBuiltIns.test.js +146 -0
- package/lib/rules/octalEscapes.d.ts +2 -1
- package/lib/rules/octalEscapes.js +13 -8
- package/lib/rules/octalEscapes.test.d.ts +1 -0
- package/lib/rules/octalEscapes.test.js +1 -0
- package/lib/rules/octalNumbers.d.ts +2 -1
- package/lib/rules/octalNumbers.js +4 -3
- package/lib/rules/octalNumbers.test.d.ts +1 -0
- package/lib/rules/octalNumbers.test.js +1 -0
- package/lib/rules/returnAssignments.d.ts +2 -1
- package/lib/rules/returnAssignments.js +7 -6
- package/lib/rules/returnAssignments.test.d.ts +1 -0
- package/lib/rules/returnAssignments.test.js +1 -0
- package/lib/rules/ruleTester.d.ts +1 -0
- package/lib/rules/ruleTester.js +6 -1
- package/lib/rules/selfAssignments.d.ts +2 -1
- package/lib/rules/selfAssignments.js +4 -3
- package/lib/rules/selfAssignments.test.d.ts +1 -0
- package/lib/rules/selfAssignments.test.js +1 -0
- package/lib/rules/selfComparisons.d.ts +2 -1
- package/lib/rules/selfComparisons.js +4 -3
- package/lib/rules/selfComparisons.test.d.ts +1 -0
- package/lib/rules/selfComparisons.test.js +1 -0
- package/lib/rules/sequences.d.ts +2 -1
- package/lib/rules/sequences.js +3 -2
- package/lib/rules/sequences.test.d.ts +1 -0
- package/lib/rules/sequences.test.js +1 -0
- package/lib/rules/shadowedRestrictedNames.d.ts +2 -1
- package/lib/rules/shadowedRestrictedNames.js +24 -23
- package/lib/rules/shadowedRestrictedNames.test.d.ts +1 -0
- package/lib/rules/shadowedRestrictedNames.test.js +1 -0
- package/lib/rules/sparseArrays.d.ts +2 -1
- package/lib/rules/sparseArrays.js +5 -4
- package/lib/rules/sparseArrays.test.d.ts +1 -0
- package/lib/rules/sparseArrays.test.js +1 -0
- package/lib/rules/symbolDescriptions.d.ts +2 -1
- package/lib/rules/symbolDescriptions.js +3 -2
- package/lib/rules/symbolDescriptions.test.d.ts +1 -0
- package/lib/rules/symbolDescriptions.test.js +1 -0
- package/lib/rules/typeofComparisons.d.ts +2 -1
- package/lib/rules/typeofComparisons.js +5 -4
- package/lib/rules/typeofComparisons.test.d.ts +1 -0
- package/lib/rules/typeofComparisons.test.js +1 -0
- package/lib/rules/unassignedVariables.d.ts +2 -1
- package/lib/rules/unassignedVariables.js +4 -3
- package/lib/rules/unassignedVariables.test.d.ts +1 -0
- package/lib/rules/unassignedVariables.test.js +1 -0
- package/lib/rules/undefinedVariables.d.ts +2 -1
- package/lib/rules/undefinedVariables.js +5 -4
- package/lib/rules/undefinedVariables.test.d.ts +1 -0
- package/lib/rules/undefinedVariables.test.js +1 -0
- package/lib/rules/unicodeBOMs.d.ts +2 -1
- package/lib/rules/unicodeBOMs.js +27 -20
- package/lib/rules/unicodeBOMs.test.d.ts +1 -0
- package/lib/rules/unicodeBOMs.test.js +1 -0
- package/lib/rules/unnecessaryBlocks.d.ts +2 -1
- package/lib/rules/unnecessaryBlocks.js +4 -3
- package/lib/rules/unnecessaryBlocks.test.d.ts +1 -0
- package/lib/rules/unnecessaryBlocks.test.js +1 -0
- package/lib/rules/unnecessaryCatches.d.ts +2 -1
- package/lib/rules/unnecessaryCatches.js +4 -3
- package/lib/rules/unnecessaryCatches.test.d.ts +1 -0
- package/lib/rules/unnecessaryCatches.test.js +1 -0
- package/lib/rules/unnecessaryConcatenation.d.ts +2 -1
- package/lib/rules/unnecessaryConcatenation.js +3 -2
- package/lib/rules/unnecessaryConcatenation.test.d.ts +1 -0
- package/lib/rules/unnecessaryConcatenation.test.js +1 -0
- package/lib/rules/unsafeNegations.d.ts +2 -1
- package/lib/rules/unsafeNegations.js +3 -2
- package/lib/rules/unsafeNegations.test.d.ts +1 -0
- package/lib/rules/unsafeNegations.test.js +1 -0
- package/lib/rules/utils/discriminateAnyType.d.ts +1 -0
- package/lib/rules/utils/discriminateAnyType.js +1 -0
- package/lib/rules/utils/getConstrainedType.d.ts +1 -0
- package/lib/rules/utils/getConstrainedType.js +1 -0
- package/lib/rules/utils/getThisExpression.d.ts +1 -0
- package/lib/rules/utils/getThisExpression.js +1 -0
- package/lib/rules/utils/isTypeRecursive.d.ts +1 -0
- package/lib/rules/utils/isTypeRecursive.js +1 -0
- package/lib/rules/utils/isUnsafeAssignment.d.ts +1 -0
- package/lib/rules/utils/isUnsafeAssignment.js +1 -0
- package/lib/rules/utils/operators.d.ts +1 -0
- package/lib/rules/utils/operators.js +1 -0
- package/lib/rules/variableDeletions.d.ts +2 -1
- package/lib/rules/variableDeletions.js +3 -2
- package/lib/rules/variableDeletions.test.d.ts +1 -0
- package/lib/rules/variableDeletions.test.js +1 -0
- package/lib/rules/voidOperator.d.ts +2 -1
- package/lib/rules/voidOperator.js +3 -2
- package/lib/rules/voidOperator.test.d.ts +1 -0
- package/lib/rules/voidOperator.test.js +1 -0
- package/lib/rules/withStatements.d.ts +7 -0
- package/lib/rules/withStatements.js +37 -0
- package/lib/rules/withStatements.test.d.ts +2 -0
- package/lib/rules/withStatements.test.js +27 -0
- package/lib/utils/declarationIncludesGlobal.d.ts +1 -0
- package/lib/utils/declarationIncludesGlobal.js +1 -0
- package/lib/utils/declarationsIncludeGlobal.d.ts +1 -0
- package/lib/utils/declarationsIncludeGlobal.js +1 -0
- package/lib/utils/getDeclarationsIfGlobal.d.ts +1 -0
- package/lib/utils/getDeclarationsIfGlobal.js +1 -0
- package/lib/utils/getModifyingReferences.d.ts +1 -0
- package/lib/utils/getModifyingReferences.js +1 -0
- package/lib/utils/hasSameTokens.d.ts +1 -0
- package/lib/utils/hasSameTokens.js +1 -0
- package/lib/utils/isFunction.d.ts +3 -0
- package/lib/utils/isFunction.js +6 -0
- package/lib/utils/isGlobalDeclaration.d.ts +1 -0
- package/lib/utils/isGlobalDeclaration.js +1 -0
- package/lib/utils/isGlobalDeclarationOfName.d.ts +1 -0
- package/lib/utils/isGlobalDeclarationOfName.js +1 -0
- package/lib/utils/isGlobalVariable.d.ts +1 -0
- package/lib/utils/isGlobalVariable.js +1 -0
- package/lib/utils/unwrapParentParenthesizedExpressions.d.ts +1 -0
- package/lib/utils/unwrapParentParenthesizedExpressions.js +1 -0
- package/lib/utils/unwrapParenthesizedExpression.d.ts +1 -0
- package/lib/utils/unwrapParenthesizedExpression.js +1 -0
- package/package.json +17 -7
- package/CHANGELOG.md +0 -91
- package/lib/formatDiagnostic.d.ts +0 -10
- package/src/collectReferencedFilePaths.ts +0 -37
- package/src/createTypeScriptFileFromProgram.ts +0 -86
- package/src/createTypeScriptFileFromProjectService.ts +0 -31
- package/src/directives/parseDirectivesFromTypeScriptFile.test.ts +0 -108
- package/src/directives/parseDirectivesFromTypeScriptFile.ts +0 -31
- package/src/formatDiagnostic.ts +0 -166
- package/src/getFirstEnumValues.test.ts +0 -51
- package/src/getFirstEnumValues.ts +0 -59
- package/src/getTSNodeRange.ts +0 -13
- package/src/index.ts +0 -7
- package/src/language.ts +0 -122
- package/src/nodes.ts +0 -146
- package/src/normalizeRange.ts +0 -25
- package/src/plugin.ts +0 -111
- package/src/prepareTypeScriptFile.ts +0 -14
- package/src/rules/anyReturns.test.ts +0 -649
- package/src/rules/anyReturns.ts +0 -263
- package/src/rules/asyncPromiseExecutors.test.ts +0 -72
- package/src/rules/asyncPromiseExecutors.ts +0 -61
- package/src/rules/caseDeclarations.test.ts +0 -228
- package/src/rules/caseDeclarations.ts +0 -70
- package/src/rules/caseDuplicates.test.ts +0 -308
- package/src/rules/caseDuplicates.ts +0 -57
- package/src/rules/chainedAssignments.test.ts +0 -263
- package/src/rules/chainedAssignments.ts +0 -58
- package/src/rules/classAssignments.test.ts +0 -157
- package/src/rules/classAssignments.ts +0 -50
- package/src/rules/consecutiveNonNullAssertions.test.ts +0 -33
- package/src/rules/consecutiveNonNullAssertions.ts +0 -46
- package/src/rules/constantAssignments.test.ts +0 -222
- package/src/rules/constantAssignments.ts +0 -78
- package/src/rules/constructorReturns.test.ts +0 -97
- package/src/rules/constructorReturns.ts +0 -59
- package/src/rules/debuggerStatements.test.ts +0 -81
- package/src/rules/debuggerStatements.ts +0 -45
- package/src/rules/defaultCaseLast.test.ts +0 -196
- package/src/rules/defaultCaseLast.ts +0 -54
- package/src/rules/duplicateArguments.test.ts +0 -140
- package/src/rules/duplicateArguments.ts +0 -58
- package/src/rules/elseIfDuplicates.test.ts +0 -177
- package/src/rules/elseIfDuplicates.ts +0 -69
- package/src/rules/emptyBlocks.test.ts +0 -136
- package/src/rules/emptyBlocks.ts +0 -73
- package/src/rules/emptyDestructures.test.ts +0 -187
- package/src/rules/emptyDestructures.ts +0 -48
- package/src/rules/emptyStaticBlocks.test.ts +0 -168
- package/src/rules/emptyStaticBlocks.ts +0 -60
- package/src/rules/exceptionAssignments.test.ts +0 -265
- package/src/rules/exceptionAssignments.ts +0 -77
- package/src/rules/forDirections.test.ts +0 -125
- package/src/rules/forDirections.ts +0 -174
- package/src/rules/forInArrays.test.ts +0 -25
- package/src/rules/forInArrays.ts +0 -70
- package/src/rules/functionAssignments.test.ts +0 -210
- package/src/rules/functionAssignments.ts +0 -51
- package/src/rules/functionNewCalls.test.ts +0 -116
- package/src/rules/functionNewCalls.ts +0 -75
- package/src/rules/generatorFunctionYields.test.ts +0 -152
- package/src/rules/generatorFunctionYields.ts +0 -71
- package/src/rules/globalAssignments.test.ts +0 -216
- package/src/rules/globalAssignments.ts +0 -67
- package/src/rules/globalObjectCalls.test.ts +0 -94
- package/src/rules/globalObjectCalls.ts +0 -52
- package/src/rules/namespaceDeclarations.test.ts +0 -41
- package/src/rules/namespaceDeclarations.ts +0 -74
- package/src/rules/negativeZeroComparisons.test.ts +0 -210
- package/src/rules/negativeZeroComparisons.ts +0 -87
- package/src/rules/newExpressions.test.ts +0 -80
- package/src/rules/newExpressions.ts +0 -67
- package/src/rules/newNativeNonConstructors.test.ts +0 -95
- package/src/rules/newNativeNonConstructors.ts +0 -59
- package/src/rules/nonOctalDecimalEscapes.test.ts +0 -70
- package/src/rules/nonOctalDecimalEscapes.ts +0 -70
- package/src/rules/numericLiteralParsing.test.ts +0 -100
- package/src/rules/numericLiteralParsing.ts +0 -116
- package/src/rules/objectProto.test.ts +0 -97
- package/src/rules/objectProto.ts +0 -62
- package/src/rules/octalEscapes.test.ts +0 -214
- package/src/rules/octalEscapes.ts +0 -85
- package/src/rules/octalNumbers.test.ts +0 -246
- package/src/rules/octalNumbers.ts +0 -75
- package/src/rules/returnAssignments.test.ts +0 -186
- package/src/rules/returnAssignments.ts +0 -57
- package/src/rules/ruleTester.ts +0 -4
- package/src/rules/selfAssignments.test.ts +0 -67
- package/src/rules/selfAssignments.ts +0 -50
- package/src/rules/selfComparisons.test.ts +0 -298
- package/src/rules/selfComparisons.ts +0 -45
- package/src/rules/sequences.test.ts +0 -49
- package/src/rules/sequences.ts +0 -37
- package/src/rules/shadowedRestrictedNames.test.ts +0 -148
- package/src/rules/shadowedRestrictedNames.ts +0 -105
- package/src/rules/sparseArrays.test.ts +0 -111
- package/src/rules/sparseArrays.ts +0 -61
- package/src/rules/symbolDescriptions.test.ts +0 -90
- package/src/rules/symbolDescriptions.ts +0 -47
- package/src/rules/typeofComparisons.test.ts +0 -86
- package/src/rules/typeofComparisons.ts +0 -88
- package/src/rules/unassignedVariables.test.ts +0 -73
- package/src/rules/unassignedVariables.ts +0 -69
- package/src/rules/undefinedVariables.test.ts +0 -81
- package/src/rules/undefinedVariables.ts +0 -97
- package/src/rules/unicodeBOMs.test.ts +0 -67
- package/src/rules/unicodeBOMs.ts +0 -44
- package/src/rules/unnecessaryBlocks.test.ts +0 -148
- package/src/rules/unnecessaryBlocks.ts +0 -89
- package/src/rules/unnecessaryCatches.test.ts +0 -211
- package/src/rules/unnecessaryCatches.ts +0 -84
- package/src/rules/unnecessaryConcatenation.test.ts +0 -88
- package/src/rules/unnecessaryConcatenation.ts +0 -44
- package/src/rules/unsafeNegations.test.ts +0 -64
- package/src/rules/unsafeNegations.ts +0 -59
- package/src/rules/utils/discriminateAnyType.ts +0 -66
- package/src/rules/utils/getConstrainedType.ts +0 -9
- package/src/rules/utils/getThisExpression.ts +0 -24
- package/src/rules/utils/isTypeRecursive.ts +0 -10
- package/src/rules/utils/isUnsafeAssignment.ts +0 -113
- package/src/rules/utils/operators.ts +0 -39
- package/src/rules/variableDeletions.test.ts +0 -76
- package/src/rules/variableDeletions.ts +0 -43
- package/src/rules/voidOperator.test.ts +0 -99
- package/src/rules/voidOperator.ts +0 -38
- package/src/utils/declarationIncludesGlobal.ts +0 -9
- package/src/utils/declarationsIncludeGlobal.ts +0 -7
- package/src/utils/getDeclarationsIfGlobal.ts +0 -14
- package/src/utils/getModifyingReferences.ts +0 -58
- package/src/utils/hasSameTokens.ts +0 -45
- package/src/utils/isGlobalDeclaration.ts +0 -10
- package/src/utils/isGlobalDeclarationOfName.ts +0 -56
- package/src/utils/isGlobalVariable.ts +0 -30
- package/src/utils/unwrapParentParenthesizedExpressions.ts +0 -7
- package/src/utils/unwrapParenthesizedExpression.ts +0 -9
- package/tsconfig.json +0 -9
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -24,8 +24,8 @@ export default typescriptLanguage.createRule({
|
|
|
24
24
|
setup(context) {
|
|
25
25
|
return {
|
|
26
26
|
visitors: {
|
|
27
|
-
NewExpression: (node) => {
|
|
28
|
-
if (!isGlobalDeclaration(node.expression,
|
|
27
|
+
NewExpression: (node, { sourceFile, typeChecker }) => {
|
|
28
|
+
if (!isGlobalDeclaration(node.expression, typeChecker) ||
|
|
29
29
|
!node.arguments?.length) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
@@ -40,7 +40,7 @@ export default typescriptLanguage.createRule({
|
|
|
40
40
|
context.report({
|
|
41
41
|
message: "asyncPromiseExecutor",
|
|
42
42
|
range: {
|
|
43
|
-
begin: asyncModifier.getStart(
|
|
43
|
+
begin: asyncModifier.getStart(sourceFile),
|
|
44
44
|
end: asyncModifier.getEnd(),
|
|
45
45
|
},
|
|
46
46
|
});
|
|
@@ -49,3 +49,4 @@ export default typescriptLanguage.createRule({
|
|
|
49
49
|
};
|
|
50
50
|
},
|
|
51
51
|
});
|
|
52
|
+
//# sourceMappingURL=asyncPromiseExecutors.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { TypeScriptFileServices } from "../language.js";
|
|
1
2
|
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
3
|
readonly description: "Reports lexical declarations in case clauses without wrapping them in blocks.";
|
|
3
4
|
readonly id: "caseDeclarations";
|
|
4
5
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "unexpectedLexicalDeclaration", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=caseDeclarations.d.ts.map
|
|
@@ -21,25 +21,25 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
setup(context) {
|
|
24
|
-
function getLexicalDeclaration(statements) {
|
|
24
|
+
function getLexicalDeclaration(statements, sourceFile) {
|
|
25
25
|
for (const statement of statements) {
|
|
26
26
|
if (ts.isVariableStatement(statement) &&
|
|
27
27
|
tsutils.isNodeFlagSet(statement.declarationList, ts.NodeFlags.Let | ts.NodeFlags.Const)) {
|
|
28
|
-
return statement.declarationList.getChildAt(0,
|
|
28
|
+
return statement.declarationList.getChildAt(0, sourceFile);
|
|
29
29
|
}
|
|
30
30
|
if (ts.isClassDeclaration(statement) ||
|
|
31
31
|
ts.isFunctionDeclaration(statement)) {
|
|
32
|
-
return statement.getChildAt(0,
|
|
32
|
+
return statement.getChildAt(0, sourceFile);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
return undefined;
|
|
36
36
|
}
|
|
37
|
-
function checkClause(node) {
|
|
38
|
-
const declarationNode = getLexicalDeclaration(node.statements);
|
|
37
|
+
function checkClause(node, { sourceFile }) {
|
|
38
|
+
const declarationNode = getLexicalDeclaration(node.statements, sourceFile);
|
|
39
39
|
if (declarationNode) {
|
|
40
40
|
context.report({
|
|
41
41
|
message: "unexpectedLexicalDeclaration",
|
|
42
|
-
range: getTSNodeRange(declarationNode,
|
|
42
|
+
range: getTSNodeRange(declarationNode, sourceFile),
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -51,3 +51,4 @@ export default typescriptLanguage.createRule({
|
|
|
51
51
|
};
|
|
52
52
|
},
|
|
53
53
|
});
|
|
54
|
+
//# sourceMappingURL=caseDeclarations.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports switch statements with duplicate case clause test expressions.";
|
|
3
3
|
readonly id: "caseDuplicates";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "duplicateCase", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=caseDuplicates.d.ts.map
|
|
@@ -22,18 +22,18 @@ export default typescriptLanguage.createRule({
|
|
|
22
22
|
setup(context) {
|
|
23
23
|
return {
|
|
24
24
|
visitors: {
|
|
25
|
-
SwitchStatement: (node) => {
|
|
25
|
+
SwitchStatement: (node, { sourceFile }) => {
|
|
26
26
|
const seenCases = [];
|
|
27
27
|
for (const clause of node.caseBlock.clauses) {
|
|
28
28
|
if (!ts.isCaseClause(clause)) {
|
|
29
29
|
continue;
|
|
30
30
|
}
|
|
31
|
-
const isDuplicate = seenCases.some((seenCase) => hasSameTokens(seenCase, clause.expression,
|
|
31
|
+
const isDuplicate = seenCases.some((seenCase) => hasSameTokens(seenCase, clause.expression, sourceFile));
|
|
32
32
|
if (isDuplicate) {
|
|
33
33
|
context.report({
|
|
34
34
|
message: "duplicateCase",
|
|
35
35
|
range: {
|
|
36
|
-
begin: clause.getStart(
|
|
36
|
+
begin: clause.getStart(sourceFile),
|
|
37
37
|
end: clause.expression.getEnd(),
|
|
38
38
|
},
|
|
39
39
|
});
|
|
@@ -47,3 +47,4 @@ export default typescriptLanguage.createRule({
|
|
|
47
47
|
};
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
|
+
//# sourceMappingURL=caseDuplicates.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports using chained assignment expressions (e.g., a = b = c).";
|
|
3
3
|
readonly id: "chainedAssignments";
|
|
4
4
|
readonly preset: "stylistic";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noChainedAssignment", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=chainedAssignments.d.ts.map
|
|
@@ -25,7 +25,7 @@ export default typescriptLanguage.createRule({
|
|
|
25
25
|
setup(context) {
|
|
26
26
|
return {
|
|
27
27
|
visitors: {
|
|
28
|
-
BinaryExpression: (node) => {
|
|
28
|
+
BinaryExpression: (node, { sourceFile }) => {
|
|
29
29
|
if (!tsutils.isAssignmentKind(node.operatorToken.kind)) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
@@ -40,10 +40,11 @@ export default typescriptLanguage.createRule({
|
|
|
40
40
|
}
|
|
41
41
|
context.report({
|
|
42
42
|
message: "noChainedAssignment",
|
|
43
|
-
range: getTSNodeRange(node.operatorToken,
|
|
43
|
+
range: getTSNodeRange(node.operatorToken, sourceFile),
|
|
44
44
|
});
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
|
+
//# sourceMappingURL=chainedAssignments.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports reassigning class declarations.";
|
|
3
3
|
readonly id: "classAssignments";
|
|
4
4
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noClassAssign", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=classAssignments.d.ts.map
|
|
@@ -21,16 +21,16 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
setup(context) {
|
|
22
22
|
return {
|
|
23
23
|
visitors: {
|
|
24
|
-
ClassDeclaration: (node) => {
|
|
24
|
+
ClassDeclaration: (node, { sourceFile, typeChecker }) => {
|
|
25
25
|
if (!node.name) {
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
-
const modifyingReferences = getModifyingReferences(node.name,
|
|
28
|
+
const modifyingReferences = getModifyingReferences(node.name, sourceFile, typeChecker);
|
|
29
29
|
for (const reference of modifyingReferences) {
|
|
30
30
|
context.report({
|
|
31
31
|
message: "noClassAssign",
|
|
32
32
|
range: {
|
|
33
|
-
begin: reference.getStart(
|
|
33
|
+
begin: reference.getStart(sourceFile),
|
|
34
34
|
end: reference.getEnd(),
|
|
35
35
|
},
|
|
36
36
|
});
|
|
@@ -40,3 +40,4 @@ export default typescriptLanguage.createRule({
|
|
|
40
40
|
};
|
|
41
41
|
},
|
|
42
42
|
});
|
|
43
|
+
//# sourceMappingURL=classAssignments.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports unnecessary extra non-null assertions.";
|
|
3
3
|
readonly id: "consecutiveNonNullAssertions";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "consecutiveNonNullAssertion", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=consecutiveNonNullAssertions.d.ts.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports attempting to reassign variables declared with const.";
|
|
3
3
|
readonly id: "constantAssignments";
|
|
4
4
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noConstAssign", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=constantAssignments.d.ts.map
|
|
@@ -34,7 +34,7 @@ export default typescriptLanguage.createRule({
|
|
|
34
34
|
}
|
|
35
35
|
return {
|
|
36
36
|
visitors: {
|
|
37
|
-
VariableDeclarationList: (node) => {
|
|
37
|
+
VariableDeclarationList: (node, { sourceFile, typeChecker }) => {
|
|
38
38
|
if (!(node.flags & ts.NodeFlags.Const) ||
|
|
39
39
|
node.declarations.length === 0) {
|
|
40
40
|
return;
|
|
@@ -42,12 +42,12 @@ export default typescriptLanguage.createRule({
|
|
|
42
42
|
for (const declaration of node.declarations) {
|
|
43
43
|
const identifiers = collectBindingElements(declaration.name);
|
|
44
44
|
for (const identifier of identifiers) {
|
|
45
|
-
const modifyingReferences = getModifyingReferences(identifier,
|
|
45
|
+
const modifyingReferences = getModifyingReferences(identifier, sourceFile, typeChecker);
|
|
46
46
|
for (const reference of modifyingReferences) {
|
|
47
47
|
context.report({
|
|
48
48
|
message: "noConstAssign",
|
|
49
49
|
range: {
|
|
50
|
-
begin: reference.getStart(
|
|
50
|
+
begin: reference.getStart(sourceFile),
|
|
51
51
|
end: reference.getEnd(),
|
|
52
52
|
},
|
|
53
53
|
});
|
|
@@ -59,3 +59,4 @@ export default typescriptLanguage.createRule({
|
|
|
59
59
|
};
|
|
60
60
|
},
|
|
61
61
|
});
|
|
62
|
+
//# sourceMappingURL=constantAssignments.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports returning values from constructor functions.";
|
|
3
3
|
readonly id: "constructorReturns";
|
|
4
4
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noConstructorReturn", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=constructorReturns.d.ts.map
|
|
@@ -22,7 +22,7 @@ export default typescriptLanguage.createRule({
|
|
|
22
22
|
setup(context) {
|
|
23
23
|
return {
|
|
24
24
|
visitors: {
|
|
25
|
-
Constructor: (node) => {
|
|
25
|
+
Constructor: (node, { sourceFile }) => {
|
|
26
26
|
if (!node.body) {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
@@ -32,7 +32,7 @@ export default typescriptLanguage.createRule({
|
|
|
32
32
|
context.report({
|
|
33
33
|
message: "noConstructorReturn",
|
|
34
34
|
range: {
|
|
35
|
-
begin: node.getStart(
|
|
35
|
+
begin: node.getStart(sourceFile),
|
|
36
36
|
end: node.getEnd(),
|
|
37
37
|
},
|
|
38
38
|
});
|
|
@@ -50,3 +50,4 @@ export default typescriptLanguage.createRule({
|
|
|
50
50
|
};
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
|
+
//# sourceMappingURL=constructorReturns.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports using debugger statements.";
|
|
3
3
|
readonly id: "debuggerStatements";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noDebugger", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=debuggerStatements.d.ts.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports switch statements where the default clause is not last.";
|
|
3
3
|
readonly id: "defaultCaseLast";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "defaultCaseShouldBeLast", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=defaultCaseLast.d.ts.map
|
|
@@ -21,7 +21,7 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
setup(context) {
|
|
22
22
|
return {
|
|
23
23
|
visitors: {
|
|
24
|
-
SwitchStatement: (node) => {
|
|
24
|
+
SwitchStatement: (node, { sourceFile }) => {
|
|
25
25
|
const clauses = node.caseBlock.clauses;
|
|
26
26
|
const defaultClauseIndex = clauses.findIndex((clause) => clause.kind === ts.SyntaxKind.DefaultClause);
|
|
27
27
|
if (defaultClauseIndex === -1 ||
|
|
@@ -32,8 +32,8 @@ export default typescriptLanguage.createRule({
|
|
|
32
32
|
context.report({
|
|
33
33
|
message: "defaultCaseShouldBeLast",
|
|
34
34
|
range: {
|
|
35
|
-
begin: defaultClause.getStart(
|
|
36
|
-
end: defaultClause.getStart(
|
|
35
|
+
begin: defaultClause.getStart(sourceFile),
|
|
36
|
+
end: defaultClause.getStart(sourceFile) + "default".length,
|
|
37
37
|
},
|
|
38
38
|
});
|
|
39
39
|
},
|
|
@@ -41,3 +41,4 @@ export default typescriptLanguage.createRule({
|
|
|
41
41
|
};
|
|
42
42
|
},
|
|
43
43
|
});
|
|
44
|
+
//# sourceMappingURL=defaultCaseLast.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { TypeScriptFileServices } from "../language.js";
|
|
1
2
|
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
3
|
readonly description: "Reports functions with duplicate parameter names in their signatures.";
|
|
3
4
|
readonly id: "duplicateArguments";
|
|
4
5
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "duplicateParam", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=duplicateArguments.d.ts.map
|
|
@@ -19,7 +19,7 @@ export default typescriptLanguage.createRule({
|
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
setup(context) {
|
|
22
|
-
function checkNode({ parameters }) {
|
|
22
|
+
function checkNode({ parameters }, { sourceFile }) {
|
|
23
23
|
const seenNames = new Set();
|
|
24
24
|
for (const parameter of parameters) {
|
|
25
25
|
if (!ts.isIdentifier(parameter.name)) {
|
|
@@ -30,7 +30,7 @@ export default typescriptLanguage.createRule({
|
|
|
30
30
|
if (existingParameter) {
|
|
31
31
|
context.report({
|
|
32
32
|
message: "duplicateParam",
|
|
33
|
-
range: getTSNodeRange(parameter.name,
|
|
33
|
+
range: getTSNodeRange(parameter.name, sourceFile),
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
@@ -49,3 +49,4 @@ export default typescriptLanguage.createRule({
|
|
|
49
49
|
};
|
|
50
50
|
},
|
|
51
51
|
});
|
|
52
|
+
//# sourceMappingURL=duplicateArguments.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports duplicate conditions in if-else-if chains that make code unreachable.";
|
|
3
3
|
readonly id: "elseIfDuplicates";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "duplicateCondition", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=elseIfDuplicates.d.ts.map
|
|
@@ -21,14 +21,14 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
setup(context) {
|
|
24
|
-
function checkIfStatement(node) {
|
|
24
|
+
function checkIfStatement(node, sourceFile) {
|
|
25
25
|
const seen = [];
|
|
26
26
|
let current = node;
|
|
27
27
|
while (true) {
|
|
28
|
-
if (seen.some((previous) => hasSameTokens(previous, current.expression,
|
|
28
|
+
if (seen.some((previous) => hasSameTokens(previous, current.expression, sourceFile))) {
|
|
29
29
|
context.report({
|
|
30
30
|
message: "duplicateCondition",
|
|
31
|
-
range: getTSNodeRange(current.expression,
|
|
31
|
+
range: getTSNodeRange(current.expression, sourceFile),
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
if (!current.elseStatement ||
|
|
@@ -41,13 +41,14 @@ export default typescriptLanguage.createRule({
|
|
|
41
41
|
}
|
|
42
42
|
return {
|
|
43
43
|
visitors: {
|
|
44
|
-
IfStatement: (node) => {
|
|
44
|
+
IfStatement: (node, { sourceFile }) => {
|
|
45
45
|
if (!ts.isIfStatement(node.parent) ||
|
|
46
46
|
node.parent.elseStatement !== node) {
|
|
47
|
-
checkIfStatement(node);
|
|
47
|
+
checkIfStatement(node, sourceFile);
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
51
|
};
|
|
52
52
|
},
|
|
53
53
|
});
|
|
54
|
+
//# sourceMappingURL=elseIfDuplicates.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports empty block statements that should contain code.";
|
|
3
3
|
readonly id: "emptyBlocks";
|
|
4
4
|
readonly preset: "stylistic";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "emptyBlock", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=emptyBlocks.d.ts.map
|
package/lib/rules/emptyBlocks.js
CHANGED
|
@@ -30,33 +30,34 @@ export default typescriptLanguage.createRule({
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
setup(context) {
|
|
33
|
-
function hasComments(block) {
|
|
34
|
-
const fullText =
|
|
35
|
-
const openBrace = block.getStart(
|
|
33
|
+
function hasComments(block, sourceFile) {
|
|
34
|
+
const fullText = sourceFile.getFullText();
|
|
35
|
+
const openBrace = block.getStart(sourceFile);
|
|
36
36
|
const closeBrace = block.getEnd();
|
|
37
37
|
const innerText = fullText.substring(openBrace + 1, closeBrace - 1);
|
|
38
38
|
// Check if there are any non-whitespace characters (which would be comments)
|
|
39
39
|
// since we already know there are no statements
|
|
40
40
|
return /\S+/.test(innerText.trim());
|
|
41
41
|
}
|
|
42
|
-
function isEmptyBlock(block) {
|
|
43
|
-
return block.statements.length === 0 && !hasComments(block);
|
|
42
|
+
function isEmptyBlock(block, sourceFile) {
|
|
43
|
+
return block.statements.length === 0 && !hasComments(block, sourceFile);
|
|
44
44
|
}
|
|
45
45
|
return {
|
|
46
46
|
visitors: {
|
|
47
|
-
Block: (node) => {
|
|
48
|
-
if (!allowedParents.has(node.parent.kind) &&
|
|
47
|
+
Block: (node, { sourceFile }) => {
|
|
48
|
+
if (!allowedParents.has(node.parent.kind) &&
|
|
49
|
+
isEmptyBlock(node, sourceFile)) {
|
|
49
50
|
context.report({
|
|
50
51
|
message: "emptyBlock",
|
|
51
|
-
range: getTSNodeRange(node,
|
|
52
|
+
range: getTSNodeRange(node, sourceFile),
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
},
|
|
55
|
-
CaseBlock: (node) => {
|
|
56
|
+
CaseBlock: (node, { sourceFile }) => {
|
|
56
57
|
if (node.clauses.length === 0) {
|
|
57
58
|
context.report({
|
|
58
59
|
message: "emptyBlock",
|
|
59
|
-
range: getTSNodeRange(node,
|
|
60
|
+
range: getTSNodeRange(node, sourceFile),
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
},
|
|
@@ -64,3 +65,4 @@ export default typescriptLanguage.createRule({
|
|
|
64
65
|
};
|
|
65
66
|
},
|
|
66
67
|
});
|
|
68
|
+
//# sourceMappingURL=emptyBlocks.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { TypeScriptFileServices } from "../language.js";
|
|
1
2
|
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
3
|
readonly description: "Reports using empty destructuring patterns that destructure no values.";
|
|
3
4
|
readonly id: "emptyDestructures";
|
|
4
5
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "emptyPattern", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=emptyDestructures.d.ts.map
|
|
@@ -19,12 +19,12 @@ export default typescriptLanguage.createRule({
|
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
setup(context) {
|
|
22
|
-
function checkBindingPattern(node) {
|
|
22
|
+
function checkBindingPattern(node, { sourceFile }) {
|
|
23
23
|
if (node.elements.length === 0) {
|
|
24
24
|
context.report({
|
|
25
25
|
message: "emptyPattern",
|
|
26
26
|
range: {
|
|
27
|
-
begin: node.getStart(
|
|
27
|
+
begin: node.getStart(sourceFile),
|
|
28
28
|
end: node.getEnd(),
|
|
29
29
|
},
|
|
30
30
|
});
|
|
@@ -38,3 +38,4 @@ export default typescriptLanguage.createRule({
|
|
|
38
38
|
};
|
|
39
39
|
},
|
|
40
40
|
});
|
|
41
|
+
//# sourceMappingURL=emptyDestructures.js.map
|