UNPKG

tslint-config-xo

Version:
1,241 lines (1,061 loc) 20.6 kB
'use strict'; const path = require('path'); function getRulePackageDirectory(name, suffix) { const packagePath = require.resolve(name); const nodeModulesPath = path.dirname(packagePath); return path.join(nodeModulesPath, suffix || ''); } module.exports = { rulesDirectory: [ getRulePackageDirectory('tslint-eslint-rules', 'dist/rules'), getRulePackageDirectory('tslint-microsoft-contrib'), getRulePackageDirectory('vrsource-tslint-rules', 'rules'), getRulePackageDirectory('tslint-divid', 'rules'), getRulePackageDirectory('tslint-consistent-codestyle'), getRulePackageDirectory('tslint-sonarts', 'lib/rules'), getRulePackageDirectory('tslint-config-security', 'dist/rules') ], rules: { /** * @eslint {comma-dangle} * @provider {tslint} */ 'trailing-comma': [ true, { multiline: 'never', singleline: 'never' } ], /** * @eslint {for-direction} * @unavailable */ // 'for-direction': null, /** * @eslint {getter-return} * @unavailable */ // 'getter-return': null, /** * @eslint {no-async-promise-executor} * @unavailable */ // 'no-async-promise-executor': null, /** * @eslint {no-await-in-loop} * @unavailable */ // 'no-await-in-loop': null, /** * @eslint {no-compare-neg-zero} * @unavailable */ // 'no-compare-neg-zero': null, /** * @eslint {no-cond-assign} * @provider {tslint} */ 'no-conditional-assignment': true, /** * @eslint {no-constant-condition} * @provider {tslint-eslint-rules} */ 'no-constant-condition': true, /** * @eslint {no-control-regex} * @provider {tslint-eslint-rules} */ 'no-control-regex': true, /** * @eslint {no-debugger} * @provider {tslint} */ 'no-debugger': true, /** * @eslint {no-dupe-args} * @notApplicable */ // 'no-dupe-args': null, /** * @eslint {no-dupe-keys} * @notApplicable */ // 'no-dupe-keys': null, /** * @eslint {no-duplicate-case} * @provider {tslint-eslint-rules} */ 'no-duplicate-case': true, /** * @eslint {no-empty-character-class} * @provider {tslint-eslint-rules} */ 'no-empty-character-class': true, /** * @eslint {no-empty} * @provider {tslint} * @missed {allowEmptyCatch} */ 'no-empty': true, /** * @eslint {no-ex-assign} * @provider {tslint-eslint-rules} */ 'no-ex-assign': true, /** * @eslint {no-extra-boolean-cast} * @provider {tslint-eslint-rules} */ 'no-extra-boolean-cast': true, /** * @eslint {no-extra-semi} * @provider {tslint-eslint-rules} */ 'no-extra-semi': true, /** * @eslint {no-func-assign} * @notApplicable */ // 'no-func-assign': null, /** * @eslint {no-inner-declarations} * @provider {tslint-eslint-rules} */ 'no-inner-declarations': [ true, 'functions' ], /** * @eslint {no-invalid-regexp} * @provider {tslint-eslint-rules} */ 'no-invalid-regexp': true, /** * @eslint {no-irregular-whitespace} * @provider {tslint} */ 'no-irregular-whitespace': true, /** * @eslint {no-misleading-character-class} * @unavailable */ // 'no-misleading-character-class': null, /** * @eslint {no-obj-calls} * @notApplicable */ // 'no-obj-calls': null, /** * @eslint {no-prototype-builtins} * @unavailable */ // 'no-prototype-builtins': null, /** * @eslint {no-regex-spaces} * @provider {tslint-eslint-rules} */ 'no-regex-spaces': true, /** * @eslint {no-sparse-arrays} * @provider {tslint} */ 'no-sparse-arrays': true, /** * @eslint {no-template-curly-in-string} * @provider {tslint} */ 'no-invalid-template-strings': true, /** * @eslint {no-unreachable} * @notApplicable */ // 'no-unreachable': null, /** * @eslint {no-unsafe-finally} * @provider {tslint} */ 'no-unsafe-finally': true, /** * @eslint {no-unsafe-negation} * @unavailable */ // 'no-unsafe-negation': null, /** * @eslint {require-atomic-updates} * @unavailable */ // 'require-atomic-updates': null, /** * @eslint {use-isnan} * @provider {tslint} */ 'use-isnan': true, /** * @eslint {valid-typeof} * @provider {tslint-eslint-rules} * @missed {requireStringLiterals} */ 'valid-typeof': true, /** * @eslint {no-unexpected-multiline} * @provider {tslint-eslint-rules} */ 'no-unexpected-multiline': true, /** * @eslint {accessor-pairs} * @unavailable */ // 'accessor-pairs': null, /** * @eslint {array-callback-return} * @unavailable */ // 'array-callback-return': null, /** * @eslint {block-scoped-var} * @provider {tslint} */ 'no-shadowed-variable': true, /** * @eslint {complexity} * @provider {tslint} */ 'cyclomatic-complexity': { severity: 'warning' }, /** * @eslint {curly} * @provider {tslint} */ curly: true, /** * @eslint {default-case} * @provider {tslint} */ 'switch-default': true, /** * @eslint {dot-notation} * @provider {tslint} */ 'no-string-literal': true, /** * @eslint {dot-location} * @unavailable */ // 'dot-location': null, /** * @eslint {eqeqeq} * @provider {tslint} */ 'triple-equals': true, /** * @eslint {guard-for-in} * @provider {tslint} */ forin: true, /** * @eslint {no-alert} * @provider {tslint} */ ban: [ true, 'alert' ], /** * @eslint {no-caller} * @provider {tslint} */ 'no-arg': true, /** * @eslint {no-case-declarations} * @unavailable */ // 'no-case-declarations': null, /** * @eslint {no-div-regex} * @unavailable */ // 'no-div-regex': null, /** * @eslint {no-else-return} * @provider {tslint-consistent-codestyle} */ 'no-else-after-return': [ true, 'allow-else-if' ], /** * @eslint {no-empty-pattern} * @provider (tslint-sonarts) */ 'no-empty-destructuring': true, /** * @eslint {no-eq-null} * @unavailable */ // 'no-eq-null': null, /** * @eslint {no-eval} * @provider {tslint} */ 'no-eval': true, /** * @eslint {no-extend-native} * @unavailable */ // 'no-extend-native': null, /** * @eslint {no-extra-bind} * @provider {tslint} */ 'unnecessary-bind': true, /** * @eslint {no-extra-label} * @unavailable */ // 'no-extra-label': null, /** * @eslint {no-fallthrough} * @provider {tslint} */ 'no-switch-case-fall-through': true, /** * @eslint {no-floating-decimal} * @provider {tslint} */ 'number-literal-format': true, /** * @eslint {no-global-assign} * @unavailable */ // 'no-global-assign': null, /** * @eslint {no-implicit-coercion} * @unavailable */ // 'no-implicit-coercion': null, /** * @eslint {no-implicit-globals} * @unavailable */ // 'no-implicit-globals': null, /** * @eslint {no-implied-eval} * @unavailable */ // 'no-implied-eval': null, /** * @eslint {no-iterator} * @unavailable */ // 'no-iterator': null, /** * @eslint {no-labels} * @provider {tslint-divid} */ 'no-label': true, /** * @eslint {no-lone-blocks} * @unavailable */ // 'no-lone-blocks': null, /** * @eslint {no-multi-spaces} * @provider {tslint-eslint-rules} */ 'no-multi-spaces': [ true, { exceptions: { PropertyAssignment: true } } ], /** * @eslint {no-multi-str} * @provider {tslint-sonarts} */ 'no-multiline-string-literals': true, /** * @eslint {no-new-func} * @eslint {no-array-constructor} * @eslint {no-new-object} * @provider {vrsource-tslint-rules} */ 'prefer-literal': [ true, 'object', 'function', 'array' ], /** * @eslint {no-new-wrappers} * @provider {tslint} */ 'no-construct': true, /** * @eslint {no-new} * @eslint {no-unused-expressions} * @provider {tslint} */ 'no-unused-expression': true, /** * @eslint {no-octal-escape} * @provider {tslint-microsoft-contrib} */ 'no-octal-literal': true, /** * @eslint {no-octal} * @notApplicable */ // 'no-octal': null, /** * @eslint {no-proto} * @unavailable */ // 'no-proto': null, /** * @eslint {no-redeclare} * @provider {tslint} */ 'no-duplicate-variable': true, /** * @eslint {no-return-assign} * @unavailable */ // 'no-return-assign': null, /** * @eslint {no-return-await} * @provider {tslint} */ 'no-return-await': true, /** * @eslint {no-script-url} * @unavailable */ // 'no-script-url': null, /** * @eslint {no-self-assign} * @provider {tslint-sonarts} */ 'no-self-assignment': true, /** * @eslint {no-self-compare} * @provider {tslint-eslint-rules} */ 'ter-no-self-compare': true, /** * @eslint {no-sequences} * @provider {tslint} */ 'ban-comma-operator': true, /** * @eslint {no-throw-literal} * @provider {tslint} */ 'no-string-throw': true, /** * @eslint {no-unmodified-loop-condition} * @unavailable */ // 'no-unmodified-loop-condition': null, /** * @eslint {no-unused-labels} * @unavailable */ // 'no-unused-labels': null, /** * @eslint {no-useless-call} * @unavailable */ // 'no-useless-call': null, /** * @eslint {no-useless-concat} * @unavailable */ // 'no-useless-concat': null, /** * @eslint {no-useless-escape} * @unavailable */ // 'no-useless-escape': null, /** * @eslint {no-useless-return} * @unavailable */ // 'no-useless-return': null, /** * @eslint {no-void} * @unavailable */ // 'no-void': null, /** * @eslint {no-warning-comments} * @provider {tslint-microsoft-contrib} */ 'no-suspicious-comment': { options: ['^TODO', '^FIXME', '^XXX'], severity: 'warning' }, /** * @eslint {no-with} * @provider {tslint-microsoft-contrib} */ 'no-with-statement': true, /** * @eslint {prefer-promise-reject-errors} * @unavailable */ // 'prefer-promise-reject-errors': null, /** * @eslint {radix} * @provider {tslint} */ radix: true, /** * @eslint {wrap-iife} * @unavailable */ // 'wrap-iife': null, /** * @eslint {yoda} * @provider {tslint} */ 'binary-expression-operand-order': true, /** * @eslint {no-delete-var} * @notApplicable */ // 'no-delete-var': null, /** * @eslint {no-label-var} * @unavailable */ // 'no-label-var': null, /** * @eslint {no-restricted-globals} * @unavailable */ // 'no-restricted-globals': null, /** * @eslint {no-shadow-restricted-names} * @unavailable */ // 'no-shadow-restricted-names': null, /** * @eslint {no-undef-init} * @provider {tslint} */ 'no-unnecessary-initializer': true, /** * @eslint {no-undef} * @notApplicable */ // 'no-undef': null, /** * @eslint {no-unused-vars} * @typescript {noUnusedLocals} * @typescript {noUnusedParameters} * @provider {typescript} */ // 'no-unused-variable': null /** * @eslint {handle-callback-err} * @provider {tslint-eslint-rules} */ 'handle-callback-err': { severity: 'warning' }, /** * @eslint {no-buffer-constructor} * @providers {tslint-config-security} */ 'tsr-detect-non-literal-buffer': true, /** * @eslint {no-mixed-requires} * @unavailable */ // 'no-mixed-requires': null, /** * @eslint {no-new-require} * @unavailable */ // 'no-new-require': null, /** * @eslint {no-path-concat} * @unavailable */ // 'no-path-concat': null, /** * @eslint {no-restricted-imports} * @eslint {no-restricted-modules} * @provider {tslint} */ 'import-blacklist': [ true, 'domain', 'freelist', 'smalloc', 'sys', 'colors' ], /** * @eslint {array-bracket-newline} * @unavailable */ // 'array-bracket-newline': null, /** * @eslint {array-bracket-spacing} * @provider {tslint-eslint-rules} */ 'array-bracket-spacing': [ true, 'never' ], /** * @eslint {array-element-newline} * @unavailable */ // 'array-element-newline': null, /** * @eslint {brace-style} * @missed {allowSingleLine} * @provider {tslint} */ 'one-line': [ true, 'check-catch', 'check-finally', 'check-else', 'check-open-brace', 'check-whitespace' ], /** * @eslint {camelcase} * @provider {tslint} */ 'variable-name': [ true, 'check-format', 'allow-leading-underscore', 'allow-trailing-underscore' ], /** * @eslint {capitalized-comments} * @eslint {spaced-comment} * @missed {ignoreInlineComments} * @missed {ignoreConsecutiveComments} * @provider {tslint} */ 'comment-format': [ true, 'check-space', // 'always' 'check-uppercase', // Rule: capitalized-comments { 'ignore-words': ['pragma', 'ignore', 'prettier-ignore'] // ignorePattern } ], /** * @eslint {comma-spacing} * @unavailable */ // 'comma-spacing': null, /** * @eslint {comma-style} * @unavailable */ // 'comma-style': null, /** * @eslint {computed-property-spacing} * @unavailable */ // 'computed-property-spacing': null, /** * @eslint {eol-last} * @provider {tslint} */ eofline: true, /** * @eslint {func-call-spacing} * @linrary {tslint-eslint-rules} */ 'ter-func-call-spacing': [ true, 'never' ], /** * @eslint {func-name-matching} * @unavailable */ // 'func-name-matching': null, /** * @eslint {func-names} * @unavailable */ // 'func-names': null, /** * @eslint {indent} * @provider {tslint-eslint-rules} */ 'ter-indent': [ true, 'tab', { SwitchCase: 1, FunctionDeclaration: { parameters: 1, body: 1 }, FunctionExpression: { parameters: 1, body: 1 }, CallExpression: { arguments: 1 } } ], /** * @eslint {jsx-quotes} * @eslint {quotes} * @provider {tslint} */ quotemark: [ true, 'single', 'jsx-double', // Rule: jsx-quotes 'avoid-escape' ], /** * @eslint {key-spacing} * @unavailable */ // 'key-spacing': null, /** * @eslint {keyword-spacing} * @unavailable */ // 'keyword-spacing': null, /** * @eslint {linebreak-style} * @provider {tslint} */ 'linebreak-style': { options: 'LF', severity: process.platform === 'win32' ? 'off' : 'error' }, /** * @eslint {lines-between-class-members} * @unavailable */ // 'lines-between-class-members': null, /** * @eslint {max-depth} * @unavailable */ // 'max-depth': null, /** * @eslint {max-nested-callbacks} * @unavailable */ // 'max-nested-callbacks': null, /** * @eslint {max-params} * @provider {vrsource-tslint-rules} */ 'max-params': { options: 4, severity: 'warning' }, /** * @eslint {max-statements-per-line} * @provider {tslint-sonarts} */ 'no-statements-same-line': true, /** * @eslint {new-cap} * @notApplicable */ // 'new-cap': null, /** * @eslint {new-parens} * @provider {tslint} */ 'new-parens': true, /** * @eslint {no-lonely-if} * @unavailable */ // 'no-lonely-if': null, /** * @eslint {no-mixed-operators} * @unavailable */ // 'no-mixed-operators': null, /** * @eslint {no-mixed-spaces-and-tabs} * @provider {tslint} */ indent: [ true, 'tabs' ], /** * @eslint {no-multi-assign} * @unavailable */ // 'no-multi-assign': null, /** * @eslint {no-multiple-empty-lines} * @provider {tslint} */ 'no-consecutive-blank-lines': true, /** * @eslint {no-negated-condition} * @unavailable */ // 'no-negated-condition': null, /** * @eslint {no-restricted-syntax} * @duplicate {no-with} * @unavailable */ // 'no-restricted-syntax': null, /** * @eslint {no-whitespace-before-property} * @unavailable */ // 'no-whitespace-before-property': null, /** * @eslint {no-trailing-spaces} * @provider {tslint} */ 'no-trailing-whitespace': true, /** * @eslint {no-unneeded-ternary} * @unavailable */ // 'no-unneeded-ternary': null, /** * @eslint {object-curly-spacing} * @provider {tslint-eslint-rules} */ 'object-curly-spacing': [ true, 'never' ], /** * @eslint {one-var} * @eslint {one-var-declaration-per-line} * @provider {tslint} */ 'one-variable-per-declaration': true, /** * @eslint {operator-assignment} * @unavailable */ // 'operator-assignment': null, /** * @eslint {operator-linebreak} * @unavailable */ // 'operator-linebreak': null, /** * @eslint {padded-blocks} * @provider {tslint-eslint-rules} */ 'ter-padded-blocks': [ true, 'never' ], /** * @eslint {padding-line-between-statements} * @unavailable */ // 'padding-line-between-statements': null, /** * @eslint {quote-props} * @provider {tslint} */ 'object-literal-key-quotes': [ true, 'as-needed' ], /** * @eslint {semi-spacing} * @eslint {semi-spacing} * @eslint {space-before-blocks} * @eslint {space-infix-ops} * @provider {tslint} * @missed {before} */ whitespace: [ true, 'check-operator', // Rule: space-infix-ops 'check-separator', // Rule: semi-spacing 'check-preblock' // Rule: space-before-blocks ], /** * @eslint {semi-style} * @unavailable */ // 'semi-style': null, /** * @eslint {semi} * @provider {tslint} */ semicolon: [ true, 'always' ], /** * @eslint {space-before-function-paren} * @provider {tslint} */ 'space-before-function-paren': [ true, { anonymous: 'always', named: 'never', asyncArrow: 'always' } ], /** * @eslint {space-in-parens} * @provider {tslint} */ 'space-within-parens': [ true, 0 ], /** * @eslint {space-unary-ops} * @unavailable */ // 'space-unary-ops': null, /** * @eslint {switch-colon-spacing} * @unavailable */ // 'switch-colon-spacing': null, /** * @eslint {template-tag-spacing} * @unavailable */ // 'template-tag-spacing': null, /** * @eslint {unicode-bom} * @unavailable */ // 'unicode-bom': null, /** * @eslint {arrow-parens} * @provider {tslint-eslint-rules} */ 'ter-arrow-parens': [ true, 'as-needed' ], /** * @eslint {arrow-spacing} * @provider {tslint-eslint-rules} */ 'ter-arrow-spacing': [ true, { before: true, after: true } ], /** * @eslint {constructor-super} * @notApplicable */ // 'constructor-super': null, /** * @eslint {generator-star-spacing} * @unavailable */ // 'generator-star-spacing': null, /** * @eslint {no-class-assign} * @unavailable */ // 'no-class-assign': null, /** * @eslint {no-const-assign} * @notApplicable */ // 'no-const-assign': null, /** * @eslint {no-dupe-class-members} * @notApplicable */ // 'no-dupe-class-members': null, /** * @eslint {no-new-symbol} * @unavailable */ // 'no-new-symbol': null, /** * @eslint {no-this-before-super} * @notApplicable */ // 'no-this-before-super': null, /** * @eslint {no-useless-computed-key} * @unavailable */ // 'no-useless-computed-key': null, /** * @eslint {no-useless-constructor} * @provider {tslint} */ 'unnecessary-constructor': true, /** * @eslint {no-useless-rename} * @unavailable */ // 'no-useless-rename': null, /** * @eslint {require-yield} * @unavailable */ // 'require-yield': null, /** * @eslint {rest-spread-spacing} * @unavailable */ // 'rest-spread-spacing': null, /** * @eslint {symbol-description} * @unavailable */ // 'symbol-description': null, /** * @eslint {template-curly-spacing} * @unavailable */ // 'template-curly-spacing': null, /** * @eslint {yield-star-spacing} * @unavailable */ // 'yield-star-spacing': null, /** * @eslint {valid-jsdoc} * @provider {tslint-eslint-rules} */ 'valid-jsdoc': { options: { requireReturn: false, requireParamType: false, requireReturnType: false, requireParamDescription: true, requireReturnDescription: true }, severity: 'warning' } } };