UNPKG

eslint-config-backdraft

Version:

eslint rules for the backdraft family of projects

1,002 lines (1,001 loc) 26 kB
module.exports = { env: { es6: true, }, plugins: [ 'import', ], parserOptions: { ecmaVersion: 6, sourceType: 'module', ecmaFeatures: { generators: false, objectLiteralDuplicateProperties: false, } }, settings: { 'import/resolver': { node: { extensions: ['.js'], }, }, 'import/extensions': [ '.js' ], 'import/core-modules': [], 'import/ignore': [ 'node_modules', '\\.(coffee|scss|css|less|hbs|svg|json)$', ], }, rules: { 'array-bracket-newline': [ 'off', 'consistent' ], 'array-bracket-spacing': [ 'error', 'never' ], 'array-callback-return': [ 'error', { 'allowImplicit': true } ], 'array-element-newline': [ 'off', { 'multiline': true, 'minItems': 3 } ], 'arrow-body-style': [ 'off' ], 'arrow-parens': [ 'error', 'as-needed' ], 'arrow-spacing': [ 'error', { 'before': true, 'after': true } ], 'block-scoped-var': 'error', 'block-spacing': [ 'error', 'always' ], 'brace-style': [ 'error', '1tbs', { 'allowSingleLine': true } ], 'camelcase': [ 'error', { 'properties': 'never' } ], 'capitalized-comments': [ 'off', 'never', { 'line': { 'ignorePattern': '.*', 'ignoreInlineComments': true, 'ignoreConsecutiveComments': true }, 'block': { 'ignorePattern': '.*', 'ignoreInlineComments': true, 'ignoreConsecutiveComments': true } } ], 'comma-dangle': 'off', 'comma-spacing': [ 'error', { 'before': false, 'after': true } ], 'comma-style': [ 'error', 'last', { 'exceptions': { 'ArrayExpression': false, 'ArrayPattern': false, 'ArrowFunctionExpression': false, 'CallExpression': false, 'FunctionDeclaration': false, 'FunctionExpression': false, 'ImportDeclaration': false, 'ObjectExpression': false, 'ObjectPattern': false, 'VariableDeclaration': false, 'NewExpression': false } } ], 'complexity': [ 'off', 11 ], 'computed-property-spacing': [ 'error', 'never' ], 'consistent-return': 'error', 'constructor-super': 'error', 'curly': [ 'error', 'multi-line' ], 'default-case': [ 'error' ], 'dot-location': [ 'error', 'property' ], 'dot-notation': [ 'error', { 'allowKeywords': true } ], 'eol-last': [ 'error', 'always' ], 'eqeqeq': [ 'error', 'always' ], 'for-direction': 'error', 'func-call-spacing': [ 'error', 'never' ], 'func-name-matching': [ 'off', 'always', { 'includeCommonJSModuleExports': false } ], 'func-names': 'warn', 'func-style': [ 'off', 'expression' ], 'function-paren-newline': [ 'error', 'consistent' ], 'generator-star-spacing': [ 'error', { 'before': false, 'after': true } ], 'getter-return': [ 'error', { 'allowImplicit': true } ], 'global-require': 'error', 'guard-for-in': 'error', 'import/dynamic-import-chunkname': [ 'off', { 'importFunctions': [], 'webpackChunknameFormat': '[0-9a-zA-Z-_/.]+' } ], 'import/export': 'error', 'import/first': 'error', 'import/max-dependencies': [ 'off', { 'max': 10 } ], 'import/named': 'error', 'import/newline-after-import': 'error', 'import/no-absolute-path': 'error', 'import/no-amd': 'error', 'import/no-anonymous-default-export': [ 'off', { 'allowArray': false, 'allowArrowFunction': false, 'allowAnonymousClass': false, 'allowAnonymousFunction': false, 'allowLiteral': false, 'allowObject': false } ], 'import/no-cycle': [ 'error', ], 'import/no-duplicates': 'error', 'import/no-dynamic-require': 'error', 'import/no-internal-modules': [ 'off', { 'allow': [] } ], 'import/no-mutable-exports': 'error', 'import/no-named-as-default': 'error', 'import/no-named-as-default-member': 'error', 'import/no-named-default': 'error', 'import/no-self-import': 'error', 'import/no-unresolved': [ 'error', { 'commonjs': true, 'caseSensitive': true } ], 'import/no-useless-path-segments': 'error', 'import/no-webpack-loader-syntax': 'error', 'import/order': [ 'error', { 'groups': [ [ 'builtin', 'external', 'internal' ] ] } ], 'indent': [ 'error', 4, { 'SwitchCase': 1 } ], 'key-spacing': [ 'error', { 'mode': 'minimum' } ], 'keyword-spacing': [ 'error', { 'before': true, 'after': true, 'overrides': { 'return': { 'after': true }, 'throw': { 'after': true }, 'case': { 'after': true } } } ], 'line-comment-position': [ 'off', { 'position': 'above', 'ignorePattern': "", 'applyDefaultPatterns': true } ], 'linebreak-style': [ 'error', 'unix' ], 'lines-around-directive': [ 'error', { 'before': 'always', 'after': 'always' } ], 'lines-between-class-members': [ 'error', 'always', { 'exceptAfterSingleLine': true } ], 'max-classes-per-file': [ 'off' ], 'max-depth': [ 'off', 4 ], 'max-len': [ 'warn', 130, 2, { 'ignoreUrls': true, 'ignoreComments': false, 'ignoreRegExpLiterals': true, 'ignoreStrings': true, 'ignoreTemplateLiterals': true } ], 'max-lines': [ 'off', { 'max': 300, 'skipBlankLines': true, 'skipComments': true } ], 'max-lines-per-function': [ 'off', { 'max': 50, 'skipBlankLines': true, 'skipComments': true, 'IIFEs': true } ], 'max-params': [ 'off', 3 ], 'max-statements': [ 'off', 10 ], 'max-statements-per-line': [ 'off', { 'max': 1 } ], 'multiline-comment-style': [ 'off', 'starred-block' ], 'multiline-ternary': [ 'off', 'never' ], 'new-cap': [ 'error', { 'newIsCap': true, 'newIsCapExceptions': [], 'capIsNew': false, 'capIsNewExceptions': [ 'Immutable.Map', 'Immutable.Set', 'Immutable.List' ] } ], 'new-parens': 'error', 'newline-per-chained-call': [ 'error', { 'ignoreChainWithDepth': 4 } ], 'no-alert': 'warn', 'no-array-constructor': 'error', 'no-await-in-loop': 'error', 'no-bitwise': 'error', 'no-buffer-constructor': 'error', 'no-caller': 'error', 'no-case-declarations': 'error', 'no-class-assign': 'error', 'no-compare-neg-zero': 'error', 'no-cond-assign': [ 'error', 'except-parens' ], 'no-console': 'warn', 'no-const-assign': 'error', 'no-constant-condition': 'warn', 'no-control-regex': 'error', 'no-debugger': 'error', 'no-delete-var': 'error', 'no-dupe-args': 'error', 'no-dupe-class-members': 'error', 'no-dupe-keys': 'error', 'no-duplicate-case': 'error', 'no-else-return': [ 'off' ], 'no-empty': 'error', 'no-empty-character-class': 'error', 'no-empty-function': [ 'error' ], 'no-empty-pattern': 'error', 'no-eq-null': 'error', 'no-eval': 'error', 'no-ex-assign': 'error', 'no-extend-native': 'error', 'no-extra-bind': 'error', 'no-extra-boolean-cast': 'error', 'no-extra-label': 'error', 'no-extra-parens': [ 'off', 'all', { 'conditionalAssign': true, 'nestedBinaryExpressions': false, 'returnAssign': false, 'enforceForArrowConditionals': false } ], 'no-extra-semi': 'error', 'no-fallthrough': 'error', 'no-floating-decimal': 'error', 'no-func-assign': 'error', 'no-global-assign': [ 'error', { 'exceptions': [] } ], 'no-implicit-coercion': [ 'off', { 'boolean': false, 'number': true, 'string': true, 'allow': [] } ], 'no-implied-eval': 'error', 'no-inner-declarations': 'error', 'no-invalid-regexp': 'error', 'no-irregular-whitespace': 'error', 'no-iterator': 'error', 'no-label-var': 'error', 'no-labels': [ 'error', { 'allowLoop': false, 'allowSwitch': false } ], 'no-lone-blocks': 'error', 'no-lonely-if': 'error', 'no-loop-func': 'error', 'no-magic-numbers': [ 'off', { 'ignore': [], 'ignoreArrayIndexes': true, 'enforceConst': true, 'detectObjects': false } ], 'no-mixed-operators': [ 'error', { 'allowSamePrecedence': true } ], 'no-mixed-requires': [ 'off', false ], 'no-mixed-spaces-and-tabs': 'error', 'no-multi-assign': [ 'off' ], 'no-multi-spaces': [ 'error', { 'ignoreEOLComments': true, 'exceptions': { 'ArrayExpression': true, 'VariableDeclarator': true } } ], 'no-multi-str': 'error', 'no-multiple-empty-lines': [ 'error', { 'max': 2, 'maxEOF': 0 } ], 'no-nested-ternary': 'off', 'no-new': 'error', 'no-new-func': 'error', 'no-new-object': 'error', 'no-new-require': 'error', 'no-new-symbol': 'error', 'no-new-wrappers': 'error', 'no-obj-calls': 'error', 'no-octal': 'error', 'no-octal-escape': 'error', 'no-param-reassign': [ 'off' ], 'no-path-concat': 'error', 'no-plusplus': 'off', 'no-proto': 'error', 'no-redeclare': 'error', 'no-regex-spaces': 'error', 'no-restricted-globals': [ 'error', 'isFinite', 'isNaN', 'addEventListener', 'blur', 'close', 'closed', 'confirm', 'defaultStatus', 'event', 'external', 'defaultstatus', 'find', 'focus', 'frameElement', 'frames', 'history', 'innerHeight', 'innerWidth', 'length', 'location', 'locationbar', 'menubar', 'moveBy', 'moveTo', 'name', 'onblur', 'onerror', 'onfocus', 'onload', 'onresize', 'onunload', 'open', 'opener', 'opera', 'outerHeight', 'outerWidth', 'pageXOffset', 'pageYOffset', 'parent', 'print', 'removeEventListener', 'resizeBy', 'resizeTo', 'screen', 'screenLeft', 'screenTop', 'screenX', 'screenY', 'scroll', 'scrollbars', 'scrollBy', 'scrollTo', 'scrollX', 'scrollY', 'self', 'status', 'statusbar', 'stop', 'toolbar', 'top' ], 'no-restricted-imports': [ 'off', { 'paths': [], 'patterns': [] } ], 'no-restricted-properties': [ 'error', { 'object': 'arguments', 'property': 'callee', 'message': 'arguments.callee is deprecated' }, { 'object': 'global', 'property': 'isFinite', 'message': 'Please use Number.isFinite instead' }, { 'object': 'self', 'property': 'isFinite', 'message': 'Please use Number.isFinite instead' }, { 'object': 'window', 'property': 'isFinite', 'message': 'Please use Number.isFinite instead' }, { 'object': 'global', 'property': 'isNaN', 'message': 'Please use Number.isNaN instead' }, { 'object': 'self', 'property': 'isNaN', 'message': 'Please use Number.isNaN instead' }, { 'object': 'window', 'property': 'isNaN', 'message': 'Please use Number.isNaN instead' }, { 'property': '__defineGetter__', 'message': 'Please use Object.defineProperty instead.' }, { 'property': '__defineSetter__', 'message': 'Please use Object.defineProperty instead.' }, { 'object': 'Math', 'property': 'pow', 'message': 'Use the exponentiation operator (**) instead.' } ], 'no-restricted-syntax': [ 'error', { 'selector': 'ForInStatement', 'message': 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.' }, { 'selector': 'LabeledStatement', 'message': 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.' }, { 'selector': 'WithStatement', 'message': '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.' } ], 'no-return-assign': [ 'error', 'except-parens' ], 'no-return-await': 'error', 'no-script-url': 'error', 'no-self-assign': [ 'error', { 'props': false } ], 'no-self-compare': 'error', 'no-sequences': 'error', 'no-shadow': 'warn', 'no-spaced-func': 'error', 'no-sparse-arrays': 'error', 'no-tabs': 'error', 'no-template-curly-in-string': 'error', 'no-this-before-super': 'error', 'no-throw-literal': 'error', 'no-trailing-spaces': [ 'error', { 'skipBlankLines': false, 'ignoreComments': false } ], 'no-undef': 'error', 'no-undef-init': 'error', 'no-unexpected-multiline': 'error', 'no-unneeded-ternary': [ 'error', { 'defaultAssignment': false } ], 'no-unreachable': 'error', 'no-unsafe-finally': 'error', 'no-unsafe-negation': 'error', 'no-unused-expressions': [ 'error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': false } ], 'no-unused-labels': 'error', 'no-unused-vars': [ 'error', { 'vars': 'all', 'args': 'after-used', 'ignoreRestSiblings': true } ], 'no-use-before-define': [ 'error', { 'functions': false, 'classes': true } ], 'no-useless-computed-key': 'error', 'no-useless-concat': 'error', 'no-useless-constructor': 'error', 'no-useless-escape': 'error', 'no-useless-rename': [ 'error', { 'ignoreDestructuring': false, 'ignoreImport': false, 'ignoreExport': false } ], 'no-useless-return': 'error', 'no-var': 'error', 'no-void': 'error', 'no-warning-comments': [ 'off', { 'terms': [ 'todo', 'fixme', 'xxx' ], 'location': 'start' } ], 'no-whitespace-before-property': 'error', 'no-with': 'error', 'nonblock-statement-body-position': [ 'error', 'beside', { 'overrides': {} } ], 'object-curly-newline': [ 'error', { 'multiline': true, 'consistent': true } ], // 'object-curly-spacing': [ // 'error', // 'always' // ], 'object-curly-spacing': [ 'off' ], 'object-property-newline': [ 'error', { 'allowAllPropertiesOnSameLine': true } ], 'object-shorthand': [ 'error', 'always', { 'ignoreConstructors': false, 'avoidQuotes': true } ], 'one-var': 'off', 'one-var-declaration-per-line': [ 'error', 'always' ], 'operator-assignment': [ 'error', 'always' ], 'padded-blocks': [ 'error', { 'blocks': 'never', 'classes': 'never', 'switches': 'never' } ], 'padding-line-between-statements': [ 'off' ], 'prefer-arrow-callback': [ 'error', { 'allowNamedFunctions': false, 'allowUnboundThis': true } ], 'prefer-const': [ 'error', { 'destructuring': 'all' } ], 'prefer-numeric-literals': 'error', 'prefer-object-spread': 'error', 'prefer-promise-reject-errors': [ 'error', { 'allowEmptyReject': true } ], 'prefer-rest-params': 'error', 'prefer-spread': 'error', 'prefer-template': 'error', 'quote-props': [ 'error', 'as-needed', { 'keywords': false, 'unnecessary': true, 'numbers': false } ], 'quotes': [ 'error', 'single', { 'avoidEscape': true } ], 'radix': 'error', 'require-yield': 'error', 'rest-spread-spacing': [ 'error', 'never' ], 'semi': [ 'error', 'always' ], 'semi-spacing': [ 'error', { 'before': false, 'after': true } ], 'semi-style': [ 'error', 'last' ], 'sort-imports': [ 'off', { 'ignoreCase': false, 'ignoreMemberSort': false, 'memberSyntaxSortOrder': [ 'none', 'all', 'multiple', 'single' ] } ], 'sort-keys': [ 'off', 'asc', { 'caseSensitive': false, 'natural': true } ], 'sort-vars': 'off', 'space-before-blocks': 'error', 'space-before-function-paren': [ 'error', { 'anonymous': 'always', 'named': 'never', 'asyncArrow': 'always' } ], 'space-in-parens': [ 'error', 'never' ], 'space-infix-ops': 'error', 'space-unary-ops': [ 'error', { 'words': true, 'nonwords': false, 'overrides': {} } ], 'spaced-comment': [ 'error', 'always', { 'line': { 'exceptions': [ '-', '+' ], 'markers': [ '=', '!' ] }, 'block': { 'exceptions': [ '-', '+' ], 'markers': [ '=', '!' ], 'balanced': true } } ], 'strict': [ 'error', 'never' ], 'switch-colon-spacing': [ 'error', { 'after': true, 'before': false } ], 'symbol-description': 'error', 'template-curly-spacing': 'error', 'template-tag-spacing': [ 'error', 'never' ], 'unicode-bom': [ 'error', 'never' ], 'use-isnan': 'error', 'valid-typeof': [ 'error', { 'requireStringLiterals': true } ], 'vars-on-top': 'error', 'wrap-iife': [ 'error', 'outside', { 'functionPrototypeMethods': false } ], 'yield-star-spacing': [ 'error', 'after' ], 'yoda': 'error' } };