@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.
- 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} +23 -15
- 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 +4 -6
- package/lib/plugin.d.ts +79 -50
- package/lib/plugin.js +16 -1
- 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 +18 -10
- package/lib/rules/forDirections.test.d.ts +1 -0
- package/lib/rules/forDirections.test.js +26 -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 -82
- 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 -30
- 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 -100
- package/src/rules/forDirections.ts +0 -163
- 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
package/lib/rules/forInArrays.js
CHANGED
|
@@ -23,21 +23,21 @@ export default typescriptLanguage.createRule({
|
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
setup(context) {
|
|
26
|
-
function hasNumberLikeLength(type) {
|
|
26
|
+
function hasNumberLikeLength(type, typeChecker) {
|
|
27
27
|
const lengthProperty = type.getProperty("length");
|
|
28
28
|
if (lengthProperty == null) {
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
31
|
-
return tsutils.isTypeFlagSet(
|
|
31
|
+
return tsutils.isTypeFlagSet(typeChecker.getTypeOfSymbol(lengthProperty), ts.TypeFlags.NumberLike);
|
|
32
32
|
}
|
|
33
|
-
function isArrayLike(type) {
|
|
34
|
-
return isTypeRecursive(type, (t) => t.getNumberIndexType() != null && hasNumberLikeLength(t));
|
|
33
|
+
function isArrayLike(type, typeChecker) {
|
|
34
|
+
return isTypeRecursive(type, (t) => t.getNumberIndexType() != null && hasNumberLikeLength(t, typeChecker));
|
|
35
35
|
}
|
|
36
36
|
return {
|
|
37
37
|
visitors: {
|
|
38
|
-
ForInStatement: (node) => {
|
|
39
|
-
const type = getConstrainedTypeAtLocation(node.expression,
|
|
40
|
-
if (isArrayLike(type)) {
|
|
38
|
+
ForInStatement: (node, { typeChecker }) => {
|
|
39
|
+
const type = getConstrainedTypeAtLocation(node.expression, typeChecker);
|
|
40
|
+
if (isArrayLike(type, typeChecker)) {
|
|
41
41
|
context.report({
|
|
42
42
|
message: "forIn",
|
|
43
43
|
range: {
|
|
@@ -51,3 +51,4 @@ export default typescriptLanguage.createRule({
|
|
|
51
51
|
};
|
|
52
52
|
},
|
|
53
53
|
});
|
|
54
|
+
//# sourceMappingURL=forInArrays.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports reassigning variables declared with function declarations.";
|
|
3
3
|
readonly id: "functionAssignments";
|
|
4
4
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noFunctionAssignment", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=functionAssignments.d.ts.map
|
|
@@ -21,16 +21,16 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
setup(context) {
|
|
22
22
|
return {
|
|
23
23
|
visitors: {
|
|
24
|
-
FunctionDeclaration: (node) => {
|
|
24
|
+
FunctionDeclaration: (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: "noFunctionAssignment",
|
|
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=functionAssignments.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _default: import("@flint.fyi/core").Rule<{
|
|
2
|
+
readonly description: "Reports using `.apply()` or `.call()` or when the context (`this` value) provides no benefit.";
|
|
3
|
+
readonly id: "functionCurryingRedundancy";
|
|
4
|
+
readonly preset: "logical";
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "unnecessaryCall", undefined>;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=functionCurryingRedundancy.d.ts.map
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { typescriptLanguage } from "../language.js";
|
|
3
|
+
import { isFunction } from "../utils/isFunction.js";
|
|
4
|
+
export default typescriptLanguage.createRule({
|
|
5
|
+
about: {
|
|
6
|
+
description: "Reports using `.apply()` or `.call()` or when the context (`this` value) provides no benefit.",
|
|
7
|
+
id: "functionCurryingRedundancy",
|
|
8
|
+
preset: "logical",
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
unnecessaryCall: {
|
|
12
|
+
primary: 'This "currying" of a function without a defined context does nothing and can be simplified.',
|
|
13
|
+
secondary: [
|
|
14
|
+
"Using `.{{ method }}()` with null or undefined as the context provides no benefit over a direct function call.",
|
|
15
|
+
"This adds unnecessary complexity and reduces code readability.",
|
|
16
|
+
],
|
|
17
|
+
suggestions: [
|
|
18
|
+
"Replace the `.{{ method }}()` with a direct function call.",
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
setup(context) {
|
|
23
|
+
return {
|
|
24
|
+
visitors: {
|
|
25
|
+
CallExpression: (node, { sourceFile, typeChecker }) => {
|
|
26
|
+
if (!ts.isPropertyAccessExpression(node.expression)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const method = node.expression.name.text;
|
|
30
|
+
if ((method !== "call" && method !== "apply") ||
|
|
31
|
+
!node.arguments.length ||
|
|
32
|
+
!isFunction(node.expression.expression, typeChecker)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const firstArgument = node.arguments[0];
|
|
36
|
+
if (firstArgument.kind !== ts.SyntaxKind.NullKeyword &&
|
|
37
|
+
!(ts.isIdentifier(firstArgument) &&
|
|
38
|
+
firstArgument.text === "undefined")) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const fixTextCreator = method === "apply" ? createApplyFixText : createCallFixText;
|
|
42
|
+
context.report({
|
|
43
|
+
data: { method },
|
|
44
|
+
fix: {
|
|
45
|
+
range: {
|
|
46
|
+
begin: node.getStart(sourceFile),
|
|
47
|
+
end: node.getEnd(),
|
|
48
|
+
},
|
|
49
|
+
text: fixTextCreator(node.expression.expression.getText(sourceFile), node.arguments.slice(1), sourceFile),
|
|
50
|
+
},
|
|
51
|
+
message: "unnecessaryCall",
|
|
52
|
+
range: {
|
|
53
|
+
begin: node.expression.name.getStart(sourceFile) - 1,
|
|
54
|
+
end: node.getEnd(),
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
function createApplyFixText(functionExpression, methodArguments, sourceFile) {
|
|
63
|
+
if (methodArguments.length > 0) {
|
|
64
|
+
const argsArray = methodArguments[0];
|
|
65
|
+
return `${functionExpression}(...${argsArray.getText(sourceFile)})`;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return `${functionExpression}()`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function createCallFixText(functionExpression, methodArguments, sourceFile) {
|
|
72
|
+
const argsText = methodArguments
|
|
73
|
+
.map((arg) => arg.getText(sourceFile))
|
|
74
|
+
.join(", ");
|
|
75
|
+
return `${functionExpression}(${argsText})`;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=functionCurryingRedundancy.js.map
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import rule from "./functionCurryingRedundancy.js";
|
|
2
|
+
import { ruleTester } from "./ruleTester.js";
|
|
3
|
+
ruleTester.describe(rule, {
|
|
4
|
+
invalid: [
|
|
5
|
+
{
|
|
6
|
+
code: `
|
|
7
|
+
function add(a, b) {
|
|
8
|
+
return a + b;
|
|
9
|
+
}
|
|
10
|
+
const result = add.call(undefined, 1, 2);
|
|
11
|
+
`,
|
|
12
|
+
output: `
|
|
13
|
+
function add(a, b) {
|
|
14
|
+
return a + b;
|
|
15
|
+
}
|
|
16
|
+
const result = add(1, 2);
|
|
17
|
+
`,
|
|
18
|
+
snapshot: `
|
|
19
|
+
function add(a, b) {
|
|
20
|
+
return a + b;
|
|
21
|
+
}
|
|
22
|
+
const result = add.call(undefined, 1, 2);
|
|
23
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
24
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
25
|
+
`,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
code: `
|
|
29
|
+
function add(a, b) {
|
|
30
|
+
return a + b;
|
|
31
|
+
}
|
|
32
|
+
const result = add.call(null, 1, 2);
|
|
33
|
+
`,
|
|
34
|
+
output: `
|
|
35
|
+
function add(a, b) {
|
|
36
|
+
return a + b;
|
|
37
|
+
}
|
|
38
|
+
const result = add(1, 2);
|
|
39
|
+
`,
|
|
40
|
+
snapshot: `
|
|
41
|
+
function add(a, b) {
|
|
42
|
+
return a + b;
|
|
43
|
+
}
|
|
44
|
+
const result = add.call(null, 1, 2);
|
|
45
|
+
~~~~~~~~~~~~~~~~~
|
|
46
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
47
|
+
`,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
code: `
|
|
51
|
+
function add(a, b) {
|
|
52
|
+
return a + b;
|
|
53
|
+
}
|
|
54
|
+
const result = add.apply(undefined, [1, 2]);
|
|
55
|
+
`,
|
|
56
|
+
output: `
|
|
57
|
+
function add(a, b) {
|
|
58
|
+
return a + b;
|
|
59
|
+
}
|
|
60
|
+
const result = add(...[1, 2]);
|
|
61
|
+
`,
|
|
62
|
+
snapshot: `
|
|
63
|
+
function add(a, b) {
|
|
64
|
+
return a + b;
|
|
65
|
+
}
|
|
66
|
+
const result = add.apply(undefined, [1, 2]);
|
|
67
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
68
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
69
|
+
`,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
code: `
|
|
73
|
+
function add(a, b) {
|
|
74
|
+
return a + b;
|
|
75
|
+
}
|
|
76
|
+
const result = add.apply(null, [1, 2]);
|
|
77
|
+
`,
|
|
78
|
+
output: `
|
|
79
|
+
function add(a, b) {
|
|
80
|
+
return a + b;
|
|
81
|
+
}
|
|
82
|
+
const result = add(...[1, 2]);
|
|
83
|
+
`,
|
|
84
|
+
snapshot: `
|
|
85
|
+
function add(a, b) {
|
|
86
|
+
return a + b;
|
|
87
|
+
}
|
|
88
|
+
const result = add.apply(null, [1, 2]);
|
|
89
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
90
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
91
|
+
`,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
code: `
|
|
95
|
+
const fn = (x: number) => x * 2;
|
|
96
|
+
const value = fn.call(undefined, 5);
|
|
97
|
+
`,
|
|
98
|
+
output: `
|
|
99
|
+
const fn = (x: number) => x * 2;
|
|
100
|
+
const value = fn(5);
|
|
101
|
+
`,
|
|
102
|
+
snapshot: `
|
|
103
|
+
const fn = (x: number) => x * 2;
|
|
104
|
+
const value = fn.call(undefined, 5);
|
|
105
|
+
~~~~~~~~~~~~~~~~~~~
|
|
106
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
107
|
+
`,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
code: `
|
|
111
|
+
const callback = function(name: string) {
|
|
112
|
+
return name.toUpperCase();
|
|
113
|
+
};
|
|
114
|
+
callback.apply(null, ["test"]);
|
|
115
|
+
`,
|
|
116
|
+
output: `
|
|
117
|
+
const callback = function(name: string) {
|
|
118
|
+
return name.toUpperCase();
|
|
119
|
+
};
|
|
120
|
+
callback(...["test"]);
|
|
121
|
+
`,
|
|
122
|
+
snapshot: `
|
|
123
|
+
const callback = function(name: string) {
|
|
124
|
+
return name.toUpperCase();
|
|
125
|
+
};
|
|
126
|
+
callback.apply(null, ["test"]);
|
|
127
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
128
|
+
This "currying" of a function without a defined context does nothing and can be simplified.
|
|
129
|
+
`,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
valid: [
|
|
133
|
+
`function add(a, b) { return a + b; } const result = add(1, 2);`,
|
|
134
|
+
`const obj = { value: 10, getValue: function() { return this.value; } }; obj.getValue();`,
|
|
135
|
+
`const obj = { value: 10 }; function getValue() { return this.value; } const result = getValue.call(obj);`,
|
|
136
|
+
`const obj1 = { method: function() { return 42; } }; const obj2 = {}; obj1.method.call(obj2);`,
|
|
137
|
+
`
|
|
138
|
+
function greet() {
|
|
139
|
+
return this.name;
|
|
140
|
+
}
|
|
141
|
+
const person = { name: "Alice" };
|
|
142
|
+
const result = greet.call(person);
|
|
143
|
+
`,
|
|
144
|
+
`
|
|
145
|
+
const obj = {
|
|
146
|
+
value: 42,
|
|
147
|
+
getValue: function() {
|
|
148
|
+
return this.value;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const result = obj.getValue.call(obj);
|
|
152
|
+
`,
|
|
153
|
+
// Test case for the bug: interface with apply/call methods that aren't from Function.prototype
|
|
154
|
+
`
|
|
155
|
+
interface CustomInterface {
|
|
156
|
+
apply(...args: unknown[]): void;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
declare const customObj: CustomInterface;
|
|
160
|
+
customObj.apply(null, "abc");
|
|
161
|
+
`,
|
|
162
|
+
`
|
|
163
|
+
interface CustomInterface {
|
|
164
|
+
call(...args: unknown[]): void;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
declare const customObj: CustomInterface;
|
|
168
|
+
customObj.call(null, "abc");
|
|
169
|
+
`,
|
|
170
|
+
],
|
|
171
|
+
});
|
|
172
|
+
//# sourceMappingURL=functionCurryingRedundancy.test.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 the Function constructor to create functions from strings.";
|
|
3
4
|
readonly id: "functionNewCalls";
|
|
4
5
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "noFunctionConstructor", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=functionNewCalls.d.ts.map
|
|
@@ -23,22 +23,22 @@ export default typescriptLanguage.createRule({
|
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
setup(context) {
|
|
26
|
-
function checkNode(node) {
|
|
27
|
-
if (isFunctionConstructor(node)) {
|
|
26
|
+
function checkNode(node, { sourceFile, typeChecker }) {
|
|
27
|
+
if (isFunctionConstructor(node, typeChecker)) {
|
|
28
28
|
context.report({
|
|
29
29
|
message: "noFunctionConstructor",
|
|
30
|
-
range: getTSNodeRange(node.expression,
|
|
30
|
+
range: getTSNodeRange(node.expression, sourceFile),
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
function isFunctionConstructor(node) {
|
|
34
|
+
function isFunctionConstructor(node, typeChecker) {
|
|
35
35
|
if (ts.isIdentifier(node.expression)) {
|
|
36
|
-
if (isGlobalDeclarationOfName(node.expression, "Function",
|
|
36
|
+
if (isGlobalDeclarationOfName(node.expression, "Function", typeChecker)) {
|
|
37
37
|
return true;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
else if (ts.isPropertyAccessExpression(node.expression) &&
|
|
41
|
-
isGlobalDeclaration(node.expression,
|
|
41
|
+
isGlobalDeclaration(node.expression, typeChecker)) {
|
|
42
42
|
const propertyName = node.expression.name.text;
|
|
43
43
|
if (propertyName !== "Function") {
|
|
44
44
|
return false;
|
|
@@ -58,3 +58,4 @@ export default typescriptLanguage.createRule({
|
|
|
58
58
|
};
|
|
59
59
|
},
|
|
60
60
|
});
|
|
61
|
+
//# sourceMappingURL=functionNewCalls.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 generator functions that do not yield values.";
|
|
3
4
|
readonly id: "generatorFunctionYields";
|
|
4
5
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "missingYield", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=generatorFunctionYields.d.ts.map
|
|
@@ -29,14 +29,14 @@ export default typescriptLanguage.createRule({
|
|
|
29
29
|
MethodDeclaration: checkFunction,
|
|
30
30
|
},
|
|
31
31
|
};
|
|
32
|
-
function checkFunction(node) {
|
|
32
|
+
function checkFunction(node, { sourceFile }) {
|
|
33
33
|
if (!node.asteriskToken || !node.body || blockContainsYield(node.body)) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
context.report({
|
|
37
37
|
message: "missingYield",
|
|
38
38
|
range: {
|
|
39
|
-
begin: node.asteriskToken.getStart(
|
|
39
|
+
begin: node.asteriskToken.getStart(sourceFile),
|
|
40
40
|
end: node.asteriskToken.getEnd(),
|
|
41
41
|
},
|
|
42
42
|
});
|
|
@@ -55,3 +55,4 @@ function blockContainsYield(block) {
|
|
|
55
55
|
}
|
|
56
56
|
return ts.forEachChild(block, checkForYield);
|
|
57
57
|
}
|
|
58
|
+
//# sourceMappingURL=generatorFunctionYields.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports attempting to assign to read-only global variables such as undefined, NaN, Infinity, Object, etc.";
|
|
3
3
|
readonly id: "globalAssignments";
|
|
4
4
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "noGlobalAssign", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=globalAssignments.d.ts.map
|
|
@@ -26,30 +26,30 @@ export default typescriptLanguage.createRule({
|
|
|
26
26
|
setup(context) {
|
|
27
27
|
return {
|
|
28
28
|
visitors: {
|
|
29
|
-
BinaryExpression: (node) => {
|
|
29
|
+
BinaryExpression: (node, { sourceFile, typeChecker }) => {
|
|
30
30
|
if (tsutils.isAssignmentKind(node.operatorToken.kind) &&
|
|
31
|
-
isGlobalVariable(node.left,
|
|
31
|
+
isGlobalVariable(node.left, typeChecker)) {
|
|
32
32
|
context.report({
|
|
33
33
|
message: "noGlobalAssign",
|
|
34
|
-
range: getTSNodeRange(node.left,
|
|
34
|
+
range: getTSNodeRange(node.left, sourceFile),
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
|
-
PostfixUnaryExpression: (node) => {
|
|
39
|
-
if (isGlobalVariable(node.operand,
|
|
38
|
+
PostfixUnaryExpression: (node, { sourceFile, typeChecker }) => {
|
|
39
|
+
if (isGlobalVariable(node.operand, typeChecker)) {
|
|
40
40
|
context.report({
|
|
41
41
|
message: "noGlobalAssign",
|
|
42
|
-
range: getTSNodeRange(node.operand,
|
|
42
|
+
range: getTSNodeRange(node.operand, sourceFile),
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
-
PrefixUnaryExpression: (node) => {
|
|
46
|
+
PrefixUnaryExpression: (node, { sourceFile, typeChecker }) => {
|
|
47
47
|
if ((node.operator === ts.SyntaxKind.PlusPlusToken ||
|
|
48
48
|
node.operator === ts.SyntaxKind.MinusMinusToken) &&
|
|
49
|
-
isGlobalVariable(node.operand,
|
|
49
|
+
isGlobalVariable(node.operand, typeChecker)) {
|
|
50
50
|
context.report({
|
|
51
51
|
message: "noGlobalAssign",
|
|
52
|
-
range: getTSNodeRange(node.operand,
|
|
52
|
+
range: getTSNodeRange(node.operand, sourceFile),
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
},
|
|
@@ -57,3 +57,4 @@ export default typescriptLanguage.createRule({
|
|
|
57
57
|
};
|
|
58
58
|
},
|
|
59
59
|
});
|
|
60
|
+
//# sourceMappingURL=globalAssignments.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 calling global objects like Math, JSON, or Reflect as functions.";
|
|
3
4
|
readonly id: "globalObjectCalls";
|
|
4
5
|
readonly preset: "untyped";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName,
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, TypeScriptFileServices, "noGlobalObjectCall", undefined>;
|
|
6
7
|
export default _default;
|
|
8
|
+
//# sourceMappingURL=globalObjectCalls.d.ts.map
|
|
@@ -21,16 +21,16 @@ export default typescriptLanguage.createRule({
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
setup(context) {
|
|
24
|
-
function reportGlobalObjectCall(expression, name) {
|
|
24
|
+
function reportGlobalObjectCall(expression, name, sourceFile) {
|
|
25
25
|
context.report({
|
|
26
26
|
data: { name },
|
|
27
27
|
message: "noGlobalObjectCall",
|
|
28
|
-
range: getTSNodeRange(expression,
|
|
28
|
+
range: getTSNodeRange(expression, sourceFile),
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
function checkNode({ expression }) {
|
|
31
|
+
function checkNode({ expression }, { sourceFile }) {
|
|
32
32
|
if (ts.isIdentifier(expression) && globalObjects.has(expression.text)) {
|
|
33
|
-
reportGlobalObjectCall(expression, expression.text);
|
|
33
|
+
reportGlobalObjectCall(expression, expression.text, sourceFile);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
return {
|
|
@@ -41,3 +41,4 @@ export default typescriptLanguage.createRule({
|
|
|
41
41
|
};
|
|
42
42
|
},
|
|
43
43
|
});
|
|
44
|
+
//# sourceMappingURL=globalObjectCalls.js.map
|
|
@@ -3,8 +3,9 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
3
3
|
readonly description: "Reports using legacy `namespace` declarations.";
|
|
4
4
|
readonly id: "namespaceDeclarations";
|
|
5
5
|
readonly preset: "logical";
|
|
6
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
6
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "preferModules", {
|
|
7
7
|
readonly allowDeclarations: z.ZodDefault<z.ZodBoolean>;
|
|
8
8
|
readonly allowDefinitionFiles: z.ZodDefault<z.ZodBoolean>;
|
|
9
9
|
}>;
|
|
10
10
|
export default _default;
|
|
11
|
+
//# sourceMappingURL=namespaceDeclarations.d.ts.map
|
|
@@ -30,13 +30,13 @@ export default typescriptLanguage.createRule({
|
|
|
30
30
|
.default(false)
|
|
31
31
|
.describe("Whether to allow namespaces in `.d.ts` and other definition files."),
|
|
32
32
|
},
|
|
33
|
-
setup(context
|
|
34
|
-
if (allowDefinitionFiles && context.sourceFile.isDeclarationFile) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
33
|
+
setup(context) {
|
|
37
34
|
return {
|
|
38
35
|
visitors: {
|
|
39
|
-
ModuleDeclaration: (node) => {
|
|
36
|
+
ModuleDeclaration: (node, { options: { allowDeclarations, allowDefinitionFiles }, sourceFile }) => {
|
|
37
|
+
if (allowDefinitionFiles && sourceFile.isDeclarationFile) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
40
|
if (node.parent.kind !== ts.SyntaxKind.SourceFile ||
|
|
41
41
|
node.name.kind !== ts.SyntaxKind.Identifier ||
|
|
42
42
|
node.name.text === "global") {
|
|
@@ -48,10 +48,11 @@ export default typescriptLanguage.createRule({
|
|
|
48
48
|
}
|
|
49
49
|
context.report({
|
|
50
50
|
message: "preferModules",
|
|
51
|
-
range: getTSNodeRange(node.getChildAt(0),
|
|
51
|
+
range: getTSNodeRange(node.getChildAt(0), sourceFile),
|
|
52
52
|
});
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
55
|
};
|
|
56
56
|
},
|
|
57
57
|
});
|
|
58
|
+
//# sourceMappingURL=namespaceDeclarations.js.map
|
|
@@ -2,5 +2,6 @@ declare const _default: import("@flint.fyi/core").Rule<{
|
|
|
2
2
|
readonly description: "Reports comparisons with -0 that may not behave as expected.";
|
|
3
3
|
readonly id: "negativeZeroComparisons";
|
|
4
4
|
readonly preset: "logical";
|
|
5
|
-
}, import("../nodes.js").TSNodesByName, import("../language.js").
|
|
5
|
+
}, import("../nodes.js").TSNodesByName, import("../language.js").TypeScriptFileServices, "unexpectedNegativeZeroComparison", undefined>;
|
|
6
6
|
export default _default;
|
|
7
|
+
//# sourceMappingURL=negativeZeroComparisons.d.ts.map
|