UNPKG

jslint-configs

Version:

The best linting configurations for JS, React, React Native, Node and Jest

219 lines (215 loc) 10.2 kB
module.exports = { parser: 'babel-eslint', // https://github.com/babel/babel-eslint plugins: [ 'import', ], env: { browser: true, node: true, jest: true, es6: true, }, settings: { 'import/resolver': { node: { moduleDirectory: [ 'node_modules', 'src', ], extensions: [ '.js', '.jsx', '.ts', '.tsx', ], }, }, }, parserOptions: { ecmaVersion: 9, ecmaFeatures: { arrowFunctions: true, blockBindings: true, classes: true, defaultParams: true, destructuring: true, forOf: true, generators: false, modules: true, objectLiteralComputedProperties: true, objectLiteralDuplicateProperties: false, objectLiteralShorthandMethods: true, objectLiteralShorthandProperties: true, spread: true, superInFunctions: true, templateStrings: true, jsx: true, }, }, rules: { /** * Variables */ 'no-var': 2, // http://eslint.org/docs/rules/no-var 'prefer-const': 2, // http://eslint.org/docs/rules/prefer-const 'no-shadow': 2, // http://eslint.org/docs/rules/no-shadow 'no-shadow-restricted-names': 2, // http://eslint.org/docs/rules/no-shadow-restricted-names 'no-undef': 2, // http://eslint.org/docs/rules/no-undef 'no-unused-vars': [2, { // http://eslint.org/docs/rules/no-unused-vars vars: 'local', args: 'after-used', } ], 'no-use-before-define': 2, // http://eslint.org/docs/rules/no-use-before-define /** * Possible errors */ 'no-cond-assign': [2, 'always'], // http://eslint.org/docs/rules/no-cond-assign 'no-console': 1, // http://eslint.org/docs/rules/no-console 'no-debugger': 1, // http://eslint.org/docs/rules/no-debugger 'no-alert': 1, // http://eslint.org/docs/rules/no-alert 'no-constant-condition': 1, // http://eslint.org/docs/rules/no-constant-condition 'no-dupe-keys': 2, // http://eslint.org/docs/rules/no-dupe-keys 'no-duplicate-case': 2, // http://eslint.org/docs/rules/no-duplicate-case 'no-empty': 2, // http://eslint.org/docs/rules/no-empty 'no-ex-assign': 2, // http://eslint.org/docs/rules/no-ex-assign 'no-extra-boolean-cast': 0, // http://eslint.org/docs/rules/no-extra-boolean-cast 'no-extra-semi': 2, // http://eslint.org/docs/rules/no-extra-semi 'no-func-assign': 2, // http://eslint.org/docs/rules/no-func-assign 'no-inner-declarations': 2, // http://eslint.org/docs/rules/no-inner-declarations 'no-invalid-regexp': 2, // http://eslint.org/docs/rules/no-invalid-regexp 'no-irregular-whitespace': 2, // http://eslint.org/docs/rules/no-irregular-whitespace 'no-obj-calls': 2, // http://eslint.org/docs/rules/no-obj-calls 'no-sparse-arrays': 2, // http://eslint.org/docs/rules/no-sparse-arrays 'no-unreachable': 2, // http://eslint.org/docs/rules/no-unreachable 'use-isnan': 2, // http://eslint.org/docs/rules/use-isnan 'block-scoped-var': 2, // http://eslint.org/docs/rules/block-scoped-var /** * Best practices */ 'consistent-return': 2, // http://eslint.org/docs/rules/consistent-return curly: [2, 'multi-line' ], // http://eslint.org/docs/rules/curly 'default-case': 2, // http://eslint.org/docs/rules/default-case 'dot-notation': [2, { // http://eslint.org/docs/rules/dot-notation allowKeywords: true, } ], eqeqeq: 2, // http://eslint.org/docs/rules/eqeqeq 'guard-for-in': 2, // http://eslint.org/docs/rules/guard-for-in 'no-caller': 2, // http://eslint.org/docs/rules/no-caller 'no-else-return': 2, // http://eslint.org/docs/rules/no-else-return 'no-eq-null': 2, // http://eslint.org/docs/rules/no-eq-null 'no-eval': 2, // http://eslint.org/docs/rules/no-eval 'no-extend-native': 2, // http://eslint.org/docs/rules/no-extend-native 'no-extra-bind': 2, // http://eslint.org/docs/rules/no-extra-bind 'no-fallthrough': 2, // http://eslint.org/docs/rules/no-fallthrough 'no-floating-decimal': 2, // http://eslint.org/docs/rules/no-floating-decimal 'no-implied-eval': 2, // http://eslint.org/docs/rules/no-implied-eval 'no-lone-blocks': 2, // http://eslint.org/docs/rules/no-lone-blocks 'no-loop-func': 2, // http://eslint.org/docs/rules/no-loop-func 'no-multi-str': 2, // http://eslint.org/docs/rules/no-multi-str 'no-native-reassign': 2, // http://eslint.org/docs/rules/no-native-reassign 'no-new': 2, // http://eslint.org/docs/rules/no-new 'no-new-func': 2, // http://eslint.org/docs/rules/no-new-func 'no-new-wrappers': 2, // http://eslint.org/docs/rules/no-new-wrappers 'no-octal': 2, // http://eslint.org/docs/rules/no-octal 'no-octal-escape': 2, // http://eslint.org/docs/rules/no-octal-escape 'no-param-reassign': 2, // http://eslint.org/docs/rules/no-param-reassign 'no-proto': 2, // http://eslint.org/docs/rules/no-proto 'no-redeclare': 2, // http://eslint.org/docs/rules/no-redeclare 'no-return-assign': 2, // http://eslint.org/docs/rules/no-return-assign 'no-script-url': 2, // http://eslint.org/docs/rules/no-script-url 'no-self-compare': 2, // http://eslint.org/docs/rules/no-self-compare 'no-sequences': 2, // http://eslint.org/docs/rules/no-sequences 'no-throw-literal': 2, // http://eslint.org/docs/rules/no-throw-literal 'no-with': 2, // http://eslint.org/docs/rules/no-with radix: 2, // http://eslint.org/docs/rules/radix 'vars-on-top': 2, // http://eslint.org/docs/rules/vars-on-top yoda: 2, // http://eslint.org/docs/rules/yoda /** * Style */ indent: [2, 2, { // http://eslint.org/docs/rules/indent SwitchCase: 1, }, ], 'brace-style': [2, '1tbs', { // http://eslint.org/docs/rules/brace-style allowSingleLine: true, }, ], quotes: [2, 'single', // http://eslint.org/docs/rules/quotes 'avoid-escape', ], camelcase: [2, { // http://eslint.org/docs/rules/camelcase properties: 'never', } ], 'comma-spacing': [2, { // http://eslint.org/docs/rules/comma-spacing before: false, after: true, } ], 'comma-dangle': ['error', 'always-multiline'], 'comma-style': [2, 'last'], // http://eslint.org/docs/rules/comma-style 'eol-last': 2, // http://eslint.org/docs/rules/eol-last 'func-names': ['error', 'never' ], // http://eslint.org/docs/rules/func-names 'key-spacing': [2, { // http://eslint.org/docs/rules/key-spacing beforeColon: false, afterColon: true, } ], 'new-cap': [0, { // http://eslint.org/docs/rules/new-cap newIsCap: true, } ], 'no-multiple-empty-lines': [2, { // http://eslint.org/docs/rules/no-multiple-empty-lines max: 2, } ], 'quote-props': [2, // https://eslint.org/docs/rules/quote-props 'as-needed', ], 'no-nested-ternary': 2, // http://eslint.org/docs/rules/no-nested-ternary 'no-new-object': 2, // http://eslint.org/docs/rules/no-new-object 'no-spaced-func': 2, // http://eslint.org/docs/rules/no-spaced-func 'no-trailing-spaces': 2, // http://eslint.org/docs/rules/no-trailing-spaces 'no-extra-parens': [2, 'functions' ], // http://eslint.org/docs/rules/no-extra-parens 'no-underscore-dangle': 0, // http://eslint.org/docs/rules/no-underscore-dangle 'one-var': [2, 'never' ], // http://eslint.org/docs/rules/one-var 'padded-blocks': [2, 'never'], // http://eslint.org/docs/rules/padded-blocks semi: [2, 'always' ], // http://eslint.org/docs/rules/semi 'semi-spacing': [2, { // http://eslint.org/docs/rules/semi-spacing before: false, after: true, } ], 'space-before-blocks': 2, // http://eslint.org/docs/rules/space-before-blocks 'space-before-function-paren': ['error', { asyncArrow: 'always', anonymous: 'always', named: 'never', } ], 'space-infix-ops': 2, // http://eslint.org/docs/rules/space-infix-ops 'spaced-comment': [2, 'always', {// http://eslint.org/docs/rules/spaced-comment exceptions: ['-', '+' ], markers: ['=', '!' ], // space here to support sprockets directives } ], 'max-len': [2, { code: 120 }], 'import/no-unresolved': 2, 'import/named': 2, 'import/default': 2, 'import/no-duplicates': 2, /** * ES6 Rules */ 'arrow-body-style': [2, // https://eslint.org/docs/rules/arrow-body-style 'as-needed', ], 'arrow-parens': [2, // https://eslint.org/docs/rules/arrow-parens 'as-needed', ], 'arrow-spacing': [2, { // https://eslint.org/docs/rules/arrow-spacing before: true, after: true, }], 'generator-star-spacing': [2, { // https://eslint.org/docs/rules/generator-star-spacing after: true, before: false, }], 'no-class-assign': 2, // https://eslint.org/docs/rules/no-class-assign 'no-useless-computed-key': 2, // https://eslint.org/docs/rules/no-useless-computed-key 'no-useless-rename': 2, // https://eslint.org/docs/rules/no-useless-rename }, };