diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index b7c1128b4..f755a8759 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -10,60 +10,29 @@ import { convertBanTypes } from "./ruleConverters/ban-types"; import { convertBinaryExpressionOperandOrder } from "./ruleConverters/binary-expression-operand-order"; import { convertCallableTypes } from "./ruleConverters/callable-types"; import { convertClassName } from "./ruleConverters/class-name"; +import { convertCognitiveComplexity } from "./ruleConverters/eslint-plugin-sonarjs/cognitive-complexity"; +import { convertCommentFormat } from "./ruleConverters/comment-format"; import { convertComponentClassSuffix } from "./ruleConverters/codelyzer/component-class-suffix"; import { convertComponentMaxInlineDeclarations } from "./ruleConverters/codelyzer/component-max-inline-declarations"; import { convertComponentSelector } from "./ruleConverters/codelyzer/component-selector"; +import { convertConsecutiveOverloads } from "./ruleConverters/eslint-plugin-sonarjs/consecutive-overloads"; import { convertContextualDecorator } from "./ruleConverters/codelyzer/contextual-decorator"; import { convertContextualLifecycle } from "./ruleConverters/codelyzer/contextual-lifecycle"; -import { convertDirectiveClassSuffix } from "./ruleConverters/codelyzer/directive-class-suffix"; -import { convertDirectiveSelector } from "./ruleConverters/codelyzer/directive-selector"; -import { convertNoAttributeDecorator } from "./ruleConverters/codelyzer/no-attribute-decorator"; -import { convertNoConflictingLifecycle } from "./ruleConverters/codelyzer/no-conflicting-lifecycle"; -import { convertNoForwardRef } from "./ruleConverters/codelyzer/no-forward-ref"; -import { convertNoHostMetadataProperty } from "./ruleConverters/codelyzer/no-host-metadata-property"; -import { convertNoInputPrefix } from "./ruleConverters/codelyzer/no-input-prefix"; -import { convertNoInputRename } from "./ruleConverters/codelyzer/no-input-rename"; -import { convertNoInputsMetadataProperty } from "./ruleConverters/codelyzer/no-inputs-metadata-property"; -import { convertNoLifecycleCall } from "./ruleConverters/codelyzer/no-lifecycle-call"; -import { convertNoOutputNative } from "./ruleConverters/codelyzer/no-output-native"; -import { convertNoOutputOnPrefix } from "./ruleConverters/codelyzer/no-output-on-prefix"; -import { convertNoOutputRename } from "./ruleConverters/codelyzer/no-output-rename"; -import { convertNoOutputsMetadataProperty } from "./ruleConverters/codelyzer/no-outputs-metadata-property"; -import { convertNoPipeImpure } from "./ruleConverters/codelyzer/no-pipe-impure"; -import { convertNoQueriesMetadataProperty } from "./ruleConverters/codelyzer/no-queries-metadata-property"; -import { convertPipePrefix } from "./ruleConverters/codelyzer/pipe-prefix"; -import { convertPreferOnPushComponentChangeDetection } from "./ruleConverters/codelyzer/prefer-on-push-component-change-detection"; -import { convertPreferOutputReadonly } from "./ruleConverters/codelyzer/prefer-output-readonly"; -import { convertRelativeUrlPrefix } from "./ruleConverters/codelyzer/relative-url-prefix"; -import { convertTemplateAccessibilityAltText } from "./ruleConverters/codelyzer/template-accessibility-alt-text"; -import { convertTemplateAccessibilityElementsContent } from "./ruleConverters/codelyzer/template-accessibility-elements-content"; -import { convertTemplateAccessibilityLabelFor } from "./ruleConverters/codelyzer/template-accessibility-label-for"; -import { convertTemplateAccessibilityTabindexNoPositive } from "./ruleConverters/codelyzer/template-accessibility-tabindex-no-positive"; -import { convertTemplateAccessibilityTableScope } from "./ruleConverters/codelyzer/template-accessibility-table-scope"; -import { convertTemplateAccessibilityValidAria } from "./ruleConverters/codelyzer/template-accessibility-valid-aria"; -import { convertTemplateBananaInBox } from "./ruleConverters/codelyzer/template-banana-in-box"; -import { convertTemplateClickEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-click-events-have-key-events"; -import { convertTemplateConditionalComplexity } from "./ruleConverters/codelyzer/template-conditional-complexity"; -import { convertTemplateCyclomaticComplexity } from "./ruleConverters/codelyzer/template-cyclomatic-complexity"; -import { convertTemplateI18N } from "./ruleConverters/codelyzer/template-i18n"; -import { convertTemplateMouseEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-mouse-events-have-key-events"; -import { convertTemplateNoAny } from "./ruleConverters/codelyzer/template-no-any"; -import { convertTemplateNoAutofocus } from "./ruleConverters/codelyzer/template-no-autofocus"; -import { convertTemplateNoCallExpression } from "./ruleConverters/codelyzer/template-no-call-expression"; -import { convertTemplateNoDistractingElements } from "./ruleConverters/codelyzer/template-no-distracting-elements"; -import { convertTemplateNoNegatedAsync } from "./ruleConverters/codelyzer/template-no-negated-async"; -import { convertTemplateUseTrackByFunction } from "./ruleConverters/codelyzer/template-use-track-by-function"; -import { convertUseComponentSelector } from "./ruleConverters/codelyzer/use-component-selector"; -import { convertUseComponentViewEncapsulation } from "./ruleConverters/codelyzer/use-component-view-encapsulation"; -import { convertUseInjectableProvidedIn } from "./ruleConverters/codelyzer/use-injectable-provided-in"; -import { convertUseLifecycleInterface } from "./ruleConverters/codelyzer/use-lifecycle-interface"; -import { convertUsePipeDecorator } from "./ruleConverters/codelyzer/use-pipe-decorator"; -import { convertUsePipeTransformInterface } from "./ruleConverters/codelyzer/use-pipe-transform-interface"; -import { convertCommentFormat } from "./ruleConverters/comment-format"; import { convertCurly } from "./ruleConverters/curly"; import { convertCyclomaticComplexity } from "./ruleConverters/cyclomatic-complexity"; import { convertDeprecation } from "./ruleConverters/deprecation"; +import { convertDirectiveClassSuffix } from "./ruleConverters/codelyzer/directive-class-suffix"; +import { convertDirectiveSelector } from "./ruleConverters/codelyzer/directive-selector"; import { convertEofline } from "./ruleConverters/eofline"; +import { convertFileNameCasing } from "./ruleConverters/file-name-casing"; +import { convertForin } from "./ruleConverters/forin"; +import { convertFunctionConstructor } from "./ruleConverters/function-constructor"; +import { convertImportBlacklist } from "./ruleConverters/import-blacklist"; +import { convertIncrementDecrement } from "./ruleConverters/increment-decrement"; +import { convertIndent } from "./ruleConverters/indent"; +import { convertInterfaceName } from "./ruleConverters/interface-name"; +import { convertInterfaceOverTypeLiteral } from "./ruleConverters/interface-over-type-literal"; +import { convertJSDocFormat } from "./ruleConverters/jsdoc-format"; import { convertJsxBanProps } from "./ruleConverters/eslint-plugin-react/jsx-ban-props"; import { convertJsxBooleanValue } from "./ruleConverters/eslint-plugin-react/jsx-boolean-value"; import { convertJsxCurlySpacing } from "./ruleConverters/eslint-plugin-react/jsx-curly-spacing"; @@ -74,174 +43,179 @@ import { convertJsxNoLambda } from "./ruleConverters/eslint-plugin-react/jsx-no- import { convertJsxSelfClose } from "./ruleConverters/eslint-plugin-react/jsx-self-close"; import { convertJsxSpaceBeforeTrailingSlash } from "./ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash"; import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/jsx-wrap-multiline"; -import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe"; -import { convertNoCreate } from "./ruleConverters/eslint-plugin-rxjs/no-create"; -import { convertNoExposedSubjects } from "./ruleConverters/eslint-plugin-rxjs/no-exposed-subjects"; -import { convertNoFinnish } from "./ruleConverters/eslint-plugin-rxjs/no-finnish"; -import { convertNoIgnoredNotifier } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-notifier"; -import { convertNoIgnoredReplayBuffer } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-replay-buffer"; -import { convertNoIgnoredSubscription } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-subscription"; -import { convertNoIgnoredTakeWhileValue } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-takewhile-value"; -import { convertNoImplicitAnyCatch } from "./ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch"; -import { convertNoIndex } from "./ruleConverters/eslint-plugin-rxjs/no-index"; -import { convertNoInternal } from "./ruleConverters/eslint-plugin-rxjs/no-internal"; -import { convertNoNestedSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-nested-subscribe"; -import { convertNoRedundantNotify } from "./ruleConverters/eslint-plugin-rxjs/no-redundant-notify"; -import { convertNoShareReplay } from "./ruleConverters/eslint-plugin-rxjs/no-sharereplay"; -import { convertNoSubjectUnubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-subject-unsubscribe"; -import { convertNoSubjectValue } from "./ruleConverters/eslint-plugin-rxjs/no-subject-value"; -import { convertNoUnboundMethods } from "./ruleConverters/eslint-plugin-rxjs/no-unbound-methods"; -import { convertNoUnsafeSubjectNext } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-subject-next"; -import { convertNoUnsafeTakeUntil } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-takeuntil"; -import { convertCognitiveComplexity } from "./ruleConverters/eslint-plugin-sonarjs/cognitive-complexity"; -import { convertConsecutiveOverloads } from "./ruleConverters/eslint-plugin-sonarjs/consecutive-overloads"; -import { convertMaxSwitchCases } from "./ruleConverters/eslint-plugin-sonarjs/max-switch-cases"; -import { convertNoAllDuplicatedBranches } from "./ruleConverters/eslint-plugin-sonarjs/no-all-duplicated-branches"; -import { convertNoAlphabeticalSort } from "./ruleConverters/eslint-plugin-sonarjs/no-alphabetical-sort"; -import { convertNoBigFunction } from "./ruleConverters/eslint-plugin-sonarjs/no-big-function"; -import { convertNoCollapsibleIf } from "./ruleConverters/eslint-plugin-sonarjs/no-collapsible-if"; -import { convertNoCollectionSizeMischeck } from "./ruleConverters/eslint-plugin-sonarjs/no-collection-size-mischeck"; -import { convertNoDuplicateString } from "./ruleConverters/eslint-plugin-sonarjs/no-duplicate-string"; -import { convertNoDuplicatedBranches } from "./ruleConverters/eslint-plugin-sonarjs/no-duplicated-branches"; -import { convertNoElementOverwrite } from "./ruleConverters/eslint-plugin-sonarjs/no-element-overwrite"; -import { convertNoEmptyDestructuring } from "./ruleConverters/eslint-plugin-sonarjs/no-empty-destructuring"; -import { convertNoEmptyNestedBlocks } from "./ruleConverters/eslint-plugin-sonarjs/no-empty-nested-blocks"; -import { convertNoExtraSemicolon } from "./ruleConverters/eslint-plugin-sonarjs/no-extra-semicolon"; -import { convertNoIdenticalConditions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-conditions"; -import { convertNoIdenticalExpressions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-expressions"; -import { convertNoIdenticalFunctions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-functions"; -import { convertNoInMisuse } from "./ruleConverters/eslint-plugin-sonarjs/no-in-misuse"; -import { convertNoInvalidAwait } from "./ruleConverters/eslint-plugin-sonarjs/no-invalid-await"; -import { convertNoInvertedBooleanCheck } from "./ruleConverters/eslint-plugin-sonarjs/no-inverted-boolean-check"; -import { convertNoMultilineStringLiterals } from "./ruleConverters/eslint-plugin-sonarjs/no-multiline-string-literals"; -import { convertNoRedundantBoolean } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-boolean"; -import { convertNoRedundantJump } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-jump"; -import { convertNoRedundantParentheses } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-parentheses"; -import { convertNoSameLineConditional } from "./ruleConverters/eslint-plugin-sonarjs/no-same-line-conditional"; -import { convertNoSelfAssignment } from "./ruleConverters/eslint-plugin-sonarjs/no-self-assignment"; -import { convertNoSmallSwitch } from "./ruleConverters/eslint-plugin-sonarjs/no-small-switch"; -import { convertNoUnconditionalJump } from "./ruleConverters/eslint-plugin-sonarjs/no-unconditional-jump"; -import { convertNoUnusedArray } from "./ruleConverters/eslint-plugin-sonarjs/no-unused-array"; -import { convertNoUseOfEmptyReturnValue } from "./ruleConverters/eslint-plugin-sonarjs/no-use-of-empty-return-value"; -import { convertNoUselessCast } from "./ruleConverters/eslint-plugin-sonarjs/no-useless-cast"; -import { convertNoUselessCatch } from "./ruleConverters/eslint-plugin-sonarjs/no-useless-catch"; -import { convertNoVariableUsageBeforeDeclaration } from "./ruleConverters/eslint-plugin-sonarjs/no-variable-usage-before-declaration"; -import { convertParametersMaxNumber } from "./ruleConverters/eslint-plugin-sonarjs/parameters-max-number"; -import { convertPreferDefaultLast } from "./ruleConverters/eslint-plugin-sonarjs/prefer-default-last"; -import { convertPreferImmediateReturn } from "./ruleConverters/eslint-plugin-sonarjs/prefer-immediate-return"; -import { convertUsePrimitiveType } from "./ruleConverters/eslint-plugin-sonarjs/use-primitive-type"; -import { convertFileNameCasing } from "./ruleConverters/file-name-casing"; -import { convertForin } from "./ruleConverters/forin"; -import { convertFunctionConstructor } from "./ruleConverters/function-constructor"; -import { convertImportBlacklist } from "./ruleConverters/import-blacklist"; -import { convertIncrementDecrement } from "./ruleConverters/increment-decrement"; -import { convertIndent } from "./ruleConverters/indent"; -import { convertInterfaceName } from "./ruleConverters/interface-name"; -import { convertInterfaceOverTypeLiteral } from "./ruleConverters/interface-over-type-literal"; -import { convertJSDocFormat } from "./ruleConverters/jsdoc-format"; import { convertLabelPosition } from "./ruleConverters/label-position"; import { convertLinebreakStyle } from "./ruleConverters/linebreak-style"; import { convertMaxClassesPerFile } from "./ruleConverters/max-classes-per-file"; import { convertMaxFileLineCount } from "./ruleConverters/max-file-line-count"; import { convertMaxFuncBodyLength } from "./ruleConverters/max-func-body-length"; import { convertMaxLineLength } from "./ruleConverters/max-line-length"; +import { convertMaxSwitchCases } from "./ruleConverters/eslint-plugin-sonarjs/max-switch-cases"; import { convertMemberAccess } from "./ruleConverters/member-access"; import { convertMemberOrdering } from "./ruleConverters/member-ordering"; import { convertMochaAvoidOnly } from "./ruleConverters/mocha-avoid-only"; -import { convertNewParens } from "./ruleConverters/new-parens"; import { convertNewlineBeforeReturn } from "./ruleConverters/newline-before-return"; import { convertNewlinePerChainedCall } from "./ruleConverters/newline-per-chained-call"; +import { convertNewParens } from "./ruleConverters/new-parens"; +import { convertNoAllDuplicatedBranches } from "./ruleConverters/eslint-plugin-sonarjs/no-all-duplicated-branches"; +import { convertNoAlphabeticalSort } from "./ruleConverters/eslint-plugin-sonarjs/no-alphabetical-sort"; import { convertNoAngleBracketTypeAssertion } from "./ruleConverters/no-angle-bracket-type-assertion"; import { convertNoArg } from "./ruleConverters/no-arg"; +import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe"; import { convertNoAsyncWithoutAwait } from "./ruleConverters/no-async-without-await"; +import { convertNoAttributeDecorator } from "./ruleConverters/codelyzer/no-attribute-decorator"; import { convertNoBannedTerms } from "./ruleConverters/no-banned-terms"; +import { convertNoBigFunction } from "./ruleConverters/eslint-plugin-sonarjs/no-big-function"; import { convertNoBitwise } from "./ruleConverters/no-bitwise"; import { convertNoBooleanLiteralCompare } from "./ruleConverters/no-boolean-literal-compare"; +import { convertNoCollapsibleIf } from "./ruleConverters/eslint-plugin-sonarjs/no-collapsible-if"; +import { convertNoCollectionSizeMischeck } from "./ruleConverters/eslint-plugin-sonarjs/no-collection-size-mischeck"; import { convertNoConditionalAssignment } from "./ruleConverters/no-conditional-assignment"; +import { convertNoConflictingLifecycle } from "./ruleConverters/codelyzer/no-conflicting-lifecycle"; import { convertNoConsecutiveBlankLines } from "./ruleConverters/no-consecutive-blank-lines"; import { convertNoConsole } from "./ruleConverters/no-console"; import { convertNoConstantCondition } from "./ruleConverters/no-constant-condition"; import { convertNoConstruct } from "./ruleConverters/no-construct"; import { convertNoControlRegex } from "./ruleConverters/no-control-regex"; import { convertNoCookies } from "./ruleConverters/no-cookies"; +import { convertNoCreate } from "./ruleConverters/eslint-plugin-rxjs/no-create"; import { convertNoDebugger } from "./ruleConverters/no-debugger"; import { convertNoDefaultExport } from "./ruleConverters/no-default-export"; import { convertNoDeleteExpression } from "./ruleConverters/no-delete-expression"; +import { convertNoDuplicatedBranches } from "./ruleConverters/eslint-plugin-sonarjs/no-duplicated-branches"; import { convertNoDuplicateImports } from "./ruleConverters/no-duplicate-imports"; +import { convertNoDuplicateString } from "./ruleConverters/eslint-plugin-sonarjs/no-duplicate-string"; import { convertNoDuplicateSuper } from "./ruleConverters/no-duplicate-super"; import { convertNoDuplicateSwitchCase } from "./ruleConverters/no-duplicate-switch-case"; import { convertNoDuplicateVariable } from "./ruleConverters/no-duplicate-variable"; import { convertNoDynamicDelete } from "./ruleConverters/no-dynamic-delete"; +import { convertNoElementOverwrite } from "./ruleConverters/eslint-plugin-sonarjs/no-element-overwrite"; import { convertNoEmpty } from "./ruleConverters/no-empty"; +import { convertNoEmptyDestructuring } from "./ruleConverters/eslint-plugin-sonarjs/no-empty-destructuring"; import { convertNoEmptyInterface } from "./ruleConverters/no-empty-interface"; import { convertNoEmptyLineAfterOpeningBrace } from "./ruleConverters/no-empty-line-after-opening-brace"; +import { convertNoEmptyNestedBlocks } from "./ruleConverters/eslint-plugin-sonarjs/no-empty-nested-blocks"; import { convertNoEval } from "./ruleConverters/no-eval"; import { convertNoExecScript } from "./ruleConverters/no-exec-script"; import { convertNoExplicitAny } from "./ruleConverters/no-explicit-any"; +import { convertNoExposedSubjects } from "./ruleConverters/eslint-plugin-rxjs/no-exposed-subjects"; +import { convertNoExtraSemicolon } from "./ruleConverters/eslint-plugin-sonarjs/no-extra-semicolon"; +import { convertNoFinnish } from "./ruleConverters/eslint-plugin-rxjs/no-finnish"; import { convertNoFloatingPromises } from "./ruleConverters/no-floating-promises"; import { convertNoForIn } from "./ruleConverters/no-for-in"; import { convertNoForInArray } from "./ruleConverters/no-for-in-array"; +import { convertNoForwardRef } from "./ruleConverters/codelyzer/no-forward-ref"; +import { convertNoHostMetadataProperty } from "./ruleConverters/codelyzer/no-host-metadata-property"; +import { convertNoIdenticalConditions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-conditions"; +import { convertNoIdenticalExpressions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-expressions"; +import { convertNoIdenticalFunctions } from "./ruleConverters/eslint-plugin-sonarjs/no-identical-functions"; +import { convertNoIgnoredNotifier } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-notifier"; +import { convertNoIgnoredReplayBuffer } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-replay-buffer"; +import { convertNoIgnoredSubscription } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-subscription"; +import { convertNoIgnoredTakeWhileValue } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-takewhile-value"; +import { convertNoImplicitAnyCatch } from "./ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch"; import { convertNoImplicitDependencies } from "./ruleConverters/no-implicit-dependencies"; import { convertNoImportSideEffect } from "./ruleConverters/no-import-side-effect"; +import { convertNoIndex } from "./ruleConverters/eslint-plugin-rxjs/no-index"; import { convertNoInferrableTypes } from "./ruleConverters/no-inferrable-types"; +import { convertNoInMisuse } from "./ruleConverters/eslint-plugin-sonarjs/no-in-misuse"; +import { convertNoInputPrefix } from "./ruleConverters/codelyzer/no-input-prefix"; +import { convertNoInputRename } from "./ruleConverters/codelyzer/no-input-rename"; +import { convertNoInputsMetadataProperty } from "./ruleConverters/codelyzer/no-inputs-metadata-property"; +import { convertNoInternal } from "./ruleConverters/eslint-plugin-rxjs/no-internal"; import { convertNoInternalModule } from "./ruleConverters/no-internal-module"; +import { convertNoInvalidAwait } from "./ruleConverters/eslint-plugin-sonarjs/no-invalid-await"; import { convertNoInvalidRegexp } from "./ruleConverters/no-invalid-regexp"; import { convertNoInvalidTemplateStrings } from "./ruleConverters/no-invalid-template-strings"; import { convertNoInvalidThis } from "./ruleConverters/no-invalid-this"; +import { convertNoInvertedBooleanCheck } from "./ruleConverters/eslint-plugin-sonarjs/no-inverted-boolean-check"; import { convertNoIrregularWhitespace } from "./ruleConverters/no-irregular-whitespace"; +import { convertNoLifecycleCall } from "./ruleConverters/codelyzer/no-lifecycle-call"; import { convertNoMagicNumbers } from "./ruleConverters/no-magic-numbers"; import { convertNoMisusedNew } from "./ruleConverters/no-misused-new"; import { convertNoMultilineString } from "./ruleConverters/no-multiline-string"; +import { convertNoMultilineStringLiterals } from "./ruleConverters/eslint-plugin-sonarjs/no-multiline-string-literals"; import { convertNoNamespace } from "./ruleConverters/no-namespace"; +import { convertNoNestedSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-nested-subscribe"; +import { convertNonLiteralRequire } from "./ruleConverters/non-literal-require"; import { convertNoNonNullAssertion } from "./ruleConverters/no-non-null-assertion"; import { convertNoNullKeyword } from "./ruleConverters/no-null-keyword"; import { convertNoObjectLiteralTypeAssertion } from "./ruleConverters/no-object-literal-type-assertion"; import { convertNoOctalLiteral } from "./ruleConverters/no-octal-literal"; +import { convertNoOutputNative } from "./ruleConverters/codelyzer/no-output-native"; +import { convertNoOutputOnPrefix } from "./ruleConverters/codelyzer/no-output-on-prefix"; +import { convertNoOutputRename } from "./ruleConverters/codelyzer/no-output-rename"; +import { convertNoOutputsMetadataProperty } from "./ruleConverters/codelyzer/no-outputs-metadata-property"; import { convertNoParameterProperties } from "./ruleConverters/no-parameter-properties"; import { convertNoParameterReassignment } from "./ruleConverters/no-parameter-reassignment"; +import { convertNoPipeImpure } from "./ruleConverters/codelyzer/no-pipe-impure"; +import { convertNoQueriesMetadataProperty } from "./ruleConverters/codelyzer/no-queries-metadata-property"; +import { convertNoRedundantBoolean } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-boolean"; import { convertNoRedundantJsdoc } from "./ruleConverters/no-redundant-jsdoc"; +import { convertNoRedundantJump } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-jump"; +import { convertNoRedundantNotify } from "./ruleConverters/eslint-plugin-rxjs/no-redundant-notify"; +import { convertNoRedundantParentheses } from "./ruleConverters/eslint-plugin-sonarjs/no-redundant-parentheses"; import { convertNoReference } from "./ruleConverters/no-reference"; import { convertNoReferenceImport } from "./ruleConverters/no-reference-import"; import { convertNoRegexSpaces } from "./ruleConverters/no-regex-spaces"; import { convertNoRequireImports } from "./ruleConverters/no-require-imports"; import { convertNoReturnAwait } from "./ruleConverters/no-return-await"; +import { convertNoSameLineConditional } from "./ruleConverters/eslint-plugin-sonarjs/no-same-line-conditional"; +import { convertNoSelfAssignment } from "./ruleConverters/eslint-plugin-sonarjs/no-self-assignment"; import { convertNoShadowedVariable } from "./ruleConverters/no-shadowed-variable"; +import { convertNoShareReplay } from "./ruleConverters/eslint-plugin-rxjs/no-sharereplay"; +import { convertNoSmallSwitch } from "./ruleConverters/eslint-plugin-sonarjs/no-small-switch"; import { convertNoSparseArrays } from "./ruleConverters/no-sparse-arrays"; import { convertNoStringLiteral } from "./ruleConverters/no-string-literal"; import { convertNoStringThrow } from "./ruleConverters/no-string-throw"; +import { convertNoSubjectUnubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-subject-unsubscribe"; +import { convertNoSubjectValue } from "./ruleConverters/eslint-plugin-rxjs/no-subject-value"; import { convertNoSubmoduleImports } from "./ruleConverters/no-submodule-imports"; import { convertNoSuspiciousComment } from "./ruleConverters/no-suspicious-comment"; import { convertNoSwitchCaseFallThrough } from "./ruleConverters/no-switch-case-fall-through"; import { convertNoThisAssignment } from "./ruleConverters/no-this-assignment"; import { convertNoTrailingWhitespace } from "./ruleConverters/no-trailing-whitespace"; import { convertNoUnboundMethod } from "./ruleConverters/no-unbound-method"; +import { convertNoUnboundMethods } from "./ruleConverters/eslint-plugin-rxjs/no-unbound-methods"; +import { convertNoUnconditionalJump } from "./ruleConverters/eslint-plugin-sonarjs/no-unconditional-jump"; import { convertNoUnnecessaryClass } from "./ruleConverters/no-unnecessary-class"; import { convertNoUnnecessaryInitializer } from "./ruleConverters/no-unnecessary-initializer"; import { convertNoUnnecessaryQualifier } from "./ruleConverters/no-unnecessary-qualifier"; import { convertNoUnnecessarySemicolons } from "./ruleConverters/no-unnecessary-semicolons"; import { convertNoUnnecessaryTypeAssertion } from "./ruleConverters/no-unnecessary-type-assertion"; import { convertNoUnsafeFinally } from "./ruleConverters/no-unsafe-finally"; +import { convertNoUnsafeSubjectNext } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-subject-next"; +import { convertNoUnsafeTakeUntil } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-takeuntil"; +import { convertNoUnusedArray } from "./ruleConverters/eslint-plugin-sonarjs/no-unused-array"; import { convertNoUnusedExpression } from "./ruleConverters/no-unused-expression"; import { convertNoUnusedVariable } from "./ruleConverters/no-unused-variable"; import { convertNoUseBeforeDeclare } from "./ruleConverters/no-use-before-declare"; +import { convertNoUselessCast } from "./ruleConverters/eslint-plugin-sonarjs/no-useless-cast"; +import { convertNoUselessCatch } from "./ruleConverters/eslint-plugin-sonarjs/no-useless-catch"; +import { convertNoUseOfEmptyReturnValue } from "./ruleConverters/eslint-plugin-sonarjs/no-use-of-empty-return-value"; +import { convertNoVariableUsageBeforeDeclaration } from "./ruleConverters/eslint-plugin-sonarjs/no-variable-usage-before-declaration"; import { convertNoVarKeyword } from "./ruleConverters/no-var-keyword"; import { convertNoVarRequires } from "./ruleConverters/no-var-requires"; import { convertNoVoidExpression } from "./ruleConverters/no-void-expression"; import { convertNoWithStatement } from "./ruleConverters/no-with-statement"; -import { convertNonLiteralRequire } from "./ruleConverters/non-literal-require"; import { convertObjectLiteralKeyQuotes } from "./ruleConverters/object-literal-key-quotes"; import { convertObjectLiteralShorthand } from "./ruleConverters/object-literal-shorthand"; import { convertOneLine } from "./ruleConverters/one-line"; import { convertOneVariablePerDeclaration } from "./ruleConverters/one-variable-per-declaration"; import { convertOnlyArrowFunctions } from "./ruleConverters/only-arrow-functions"; import { convertOrderedImports } from "./ruleConverters/ordered-imports"; +import { convertParametersMaxNumber } from "./ruleConverters/eslint-plugin-sonarjs/parameters-max-number"; +import { convertPipePrefix } from "./ruleConverters/codelyzer/pipe-prefix"; import { convertPossibleTimingAttack } from "./ruleConverters/possible-timing-attack"; import { convertPreferArrayLiteral } from "./ruleConverters/prefer-array-literal"; import { convertPreferConditionalExpression } from "./ruleConverters/prefer-conditional-expression"; import { convertPreferConst } from "./ruleConverters/prefer-const"; +import { convertPreferDefaultLast } from "./ruleConverters/eslint-plugin-sonarjs/prefer-default-last"; import { convertPreferForOf } from "./ruleConverters/prefer-for-of"; import { convertPreferFunctionOverMethod } from "./ruleConverters/prefer-function-over-method"; +import { convertPreferImmediateReturn } from "./ruleConverters/eslint-plugin-sonarjs/prefer-immediate-return"; import { convertPreferObjectSpread } from "./ruleConverters/prefer-object-spread"; +import { convertPreferOnPushComponentChangeDetection } from "./ruleConverters/codelyzer/prefer-on-push-component-change-detection"; +import { convertPreferOutputReadonly } from "./ruleConverters/codelyzer/prefer-output-readonly"; import { convertPreferReadonly } from "./ruleConverters/prefer-readonly"; import { convertPreferSwitch } from "./ruleConverters/prefer-switch"; import { convertPreferTemplate } from "./ruleConverters/prefer-template"; @@ -250,23 +224,50 @@ import { convertQuotemark } from "./ruleConverters/quotemark"; import { convertRadix } from "./ruleConverters/radix"; import { convertReactA11yAccessibleHeadings } from "./ruleConverters/react-a11y-accessible-headings"; import { convertReactA11yAnchors } from "./ruleConverters/react-a11y-anchors"; +import { convertReactTsxCurlySpacing } from "./ruleConverters/react-tsx-curly-spacing"; +import { convertRelativeUrlPrefix } from "./ruleConverters/codelyzer/relative-url-prefix"; import { convertRestrictPlusOperands } from "./ruleConverters/restrict-plus-operands"; import { convertSemicolon } from "./ruleConverters/semicolon"; import { convertSpaceBeforeFunctionParen } from "./ruleConverters/space-before-function-paren"; import { convertSpaceWithinParens } from "./ruleConverters/space-within-parens"; import { convertStrictBooleanExpressions } from "./ruleConverters/strict-boolean-expressions"; import { convertSwitchDefault } from "./ruleConverters/switch-default"; +import { convertTemplateAccessibilityAltText } from "./ruleConverters/codelyzer/template-accessibility-alt-text"; +import { convertTemplateAccessibilityElementsContent } from "./ruleConverters/codelyzer/template-accessibility-elements-content"; +import { convertTemplateAccessibilityLabelFor } from "./ruleConverters/codelyzer/template-accessibility-label-for"; +import { convertTemplateAccessibilityTabindexNoPositive } from "./ruleConverters/codelyzer/template-accessibility-tabindex-no-positive"; +import { convertTemplateAccessibilityTableScope } from "./ruleConverters/codelyzer/template-accessibility-table-scope"; +import { convertTemplateAccessibilityValidAria } from "./ruleConverters/codelyzer/template-accessibility-valid-aria"; +import { convertTemplateBananaInBox } from "./ruleConverters/codelyzer/template-banana-in-box"; +import { convertTemplateClickEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-click-events-have-key-events"; +import { convertTemplateConditionalComplexity } from "./ruleConverters/codelyzer/template-conditional-complexity"; +import { convertTemplateCyclomaticComplexity } from "./ruleConverters/codelyzer/template-cyclomatic-complexity"; +import { convertTemplateI18N } from "./ruleConverters/codelyzer/template-i18n"; +import { convertTemplateMouseEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-mouse-events-have-key-events"; +import { convertTemplateNoAny } from "./ruleConverters/codelyzer/template-no-any"; +import { convertTemplateNoAutofocus } from "./ruleConverters/codelyzer/template-no-autofocus"; +import { convertTemplateNoCallExpression } from "./ruleConverters/codelyzer/template-no-call-expression"; +import { convertTemplateNoDistractingElements } from "./ruleConverters/codelyzer/template-no-distracting-elements"; +import { convertTemplateNoNegatedAsync } from "./ruleConverters/codelyzer/template-no-negated-async"; +import { convertTemplateUseTrackByFunction } from "./ruleConverters/codelyzer/template-use-track-by-function"; import { convertTrailingComma } from "./ruleConverters/trailing-comma"; import { convertTripleEquals } from "./ruleConverters/triple-equals"; -import { convertTypeLiteralDelimiter } from "./ruleConverters/type-literal-delimiter"; import { convertTypedefWhitespace } from "./ruleConverters/typedef-whitespace"; +import { convertTypeLiteralDelimiter } from "./ruleConverters/type-literal-delimiter"; import { convertTypeofCompare } from "./ruleConverters/typeof-compare"; import { convertUnderscoreConsistentInvocation } from "./ruleConverters/underscore-consistent-invocation"; import { convertUnifiedSignatures } from "./ruleConverters/unified-signatures"; import { convertUnnecessaryBind } from "./ruleConverters/unnecessary-bind"; import { convertUnnecessaryConstructor } from "./ruleConverters/unnecessary-constructor"; +import { convertUseComponentSelector } from "./ruleConverters/codelyzer/use-component-selector"; +import { convertUseComponentViewEncapsulation } from "./ruleConverters/codelyzer/use-component-view-encapsulation"; import { convertUseDefaultTypeParameter } from "./ruleConverters/use-default-type-parameter"; +import { convertUseInjectableProvidedIn } from "./ruleConverters/codelyzer/use-injectable-provided-in"; import { convertUseIsnan } from "./ruleConverters/use-isnan"; +import { convertUseLifecycleInterface } from "./ruleConverters/codelyzer/use-lifecycle-interface"; +import { convertUsePipeDecorator } from "./ruleConverters/codelyzer/use-pipe-decorator"; +import { convertUsePipeTransformInterface } from "./ruleConverters/codelyzer/use-pipe-transform-interface"; +import { convertUsePrimitiveType } from "./ruleConverters/eslint-plugin-sonarjs/use-primitive-type"; import { convertVariableName } from "./ruleConverters/variable-name"; /** @@ -480,6 +481,7 @@ export const ruleConverters = new Map([ ["quotemark", convertQuotemark], ["radix", convertRadix], ["react-a11y-anchors", convertReactA11yAnchors], + ["react-tsx-curly-spacing", convertReactTsxCurlySpacing], ["relative-url-prefix", convertRelativeUrlPrefix], ["restrict-plus-operands", convertRestrictPlusOperands], ["rxjs-no-async-subscribe", convertNoAsyncSubscribe], diff --git a/src/converters/lintConfigs/rules/ruleConverters/react-tsx-curly-spacing.ts b/src/converters/lintConfigs/rules/ruleConverters/react-tsx-curly-spacing.ts new file mode 100644 index 000000000..ea07c0311 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/react-tsx-curly-spacing.ts @@ -0,0 +1,18 @@ +import { RuleConverter } from "../ruleConverter"; + +export const convertReactTsxCurlySpacing: RuleConverter = (tslintRule) => { + return { + plugins: ["eslint-plugin-react"], + rules: [ + { + ruleArguments: [ + { + ...(tslintRule.ruleArguments.length > 1 && tslintRule.ruleArguments[1]), + 'when': tslintRule.ruleArguments[0], + } + ], + ruleName: "react/jsx-curly-spacing", + }, + ], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/tests/react-tsx-curly-spacing.test.ts b/src/converters/lintConfigs/rules/ruleConverters/tests/react-tsx-curly-spacing.test.ts new file mode 100644 index 000000000..4931650a8 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/tests/react-tsx-curly-spacing.test.ts @@ -0,0 +1,58 @@ +import { convertReactTsxCurlySpacing } from "../react-tsx-curly-spacing"; + +describe(convertReactTsxCurlySpacing, () => { + test("conversion with 'always'", () => { + const result = convertReactTsxCurlySpacing({ + ruleArguments: ['always'], + }); + + expect(result).toEqual({ + plugins: ["eslint-plugin-react"], + rules: [ + { + ruleArguments: [ + { when: 'always' } + ], + ruleName: "react/jsx-curly-spacing", + }, + ], + }); + }); + + test("conversion with 'never'", () => { + const result = convertReactTsxCurlySpacing({ + ruleArguments: ['never'], + }); + + expect(result).toEqual({ + plugins: ["eslint-plugin-react"], + rules: [ + { + ruleArguments: [ + { when: 'never' } + ], + ruleName: "react/jsx-curly-spacing", + }, + ], + }); + }); + + test("conversion with 'never' and 'allowMultiline'", () => { + const result = convertReactTsxCurlySpacing({ + ruleArguments: ['never', { allowMultiline: true }], + }); + + expect(result).toEqual({ + plugins: ["eslint-plugin-react"], + rules: [ + { + ruleArguments: [{ + allowMultiline: true, + when: 'never', + }], + ruleName: "react/jsx-curly-spacing", + }, + ], + }); + }); +});