Skip to content

Instantly share code, notes, and snippets.

@VojtechStep
Last active April 5, 2017 18:20
Show Gist options
  • Save VojtechStep/474b8dc69d90b3d10ba164ba63f85cfc to your computer and use it in GitHub Desktop.
Save VojtechStep/474b8dc69d90b3d10ba164ba63f85cfc to your computer and use it in GitHub Desktop.
ESLint config
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"plugins": [
"react",
"import"
],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"parser": "babel-eslint",
"rules": {
// Possible errors
"no-await-in-loop": [1],
"no-compare-neg-zero": [2],
"no-cond-assign": [2, "except-parens"],
"no-console": [1, { "allow": ["error"] }],
"no-constant-condition": [2],
"no-control-regex": [1],
"no-debugger": [2],
"no-dupe-args": [2],
"no-dupe-keys": [2],
"no-duplicate-case": [2],
"no-empty": [1],
"no-empty-character-class": [2],
"no-ex-assign": [2],
"no-extra-boolean-cast": [2],
"no-extra-parens": [1],
"no-extra-semi": [2],
"no-func-assign": [2],
"no-inner-declarations": [2],
"no-invalid-regexp": [2],
"no-irregular-whitespace": [2],
"no-obj-calls": [2],
"no-prototype-builtins": [0],
"no-regex-spaces": [2],
"no-sparse-arrays": [2],
"no-template-curly-in-string": [2],
"no-unexpected-multiline": [2],
"no-unreachable": [2],
"no-unsafe-finally": [2],
"no-unsafe-negation": [2],
"use-isnan": [2],
"valid-jsdoc": [1],
"valid-typeof": [2],
// Best practices
"accessor-pairs": [2],
"array-callback-return": [2],
"block-scoped-var": [2],
"class-methods-use-this": [2],
"complexity": [0],
"consistent-return": [2],
"curly": [1, "multi-or-nest"],
"default-case": [2],
"dot-location": [2, "property"],
"dot-notation": [2],
"eqeqeq": [2],
"guard-for-in": [2],
"no-alert": [1],
"no-caller": [2],
"no-case-declarations": [2],
"no-div-regex": [2],
"no-else-return": [2],
"no-empty-function": [2],
"no-empty-pattern": [2],
"no-eq-null": [2],
"no-eval": [2],
"no-extend-native": [2],
"no-extra-bind": [2],
"no-extra-label": [2],
"no-fallthrough": [2],
"no-floating-decimal": [1],
"no-global-assign": [2],
"no-implicit-coercion": [ 2, { "allow": ["!!"] }],
"no-implicit-globals": [2],
"no-implied-eval": [2],
"no-invalid-this": [2],
"no-iterator": [2],
"no-labels": [0],
"no-lone-blocks": [2],
"no-loop-func": [2],
"no-magic-numbers": [1, {"ignore": [0, 1]}],
"no-multi-spaces": [2],
"no-multi-str": [2],
"no-new": [2],
"no-new-func": [2],
"no-new-wrappers": [2],
"no-octal": [2],
"no-octal-escape": [2],
"no-param-reassign": [2],
"no-proto": [2],
"no-redeclare": [2],
"no-restricted-properties": [0],
"no-return-assign": [2],
"no-return-await": [2],
"no-script-url": [2],
"no-self-assign": [2],
"no-self-compare": [2],
"no-sequences": [2],
"no-throw-literal": [2],
"no-unmodified-loop-condition": [2],
"no-unused-expressions": [2],
"no-unused-labels": [2],
"no-useless-call": [2],
"no-useless-concat": [2],
"no-useless-escape": [2],
"no-useless-return": [2],
"no-void": [2],
"no-warning-comments": [0],
"no-with": [2],
"prefer-promise-reject-errors": [2, {"allowEmptyReject": true}],
"radix": [1, "as-needed"],
"require-await": [2],
"vars-on-top": [2],
"wrap-iife": [2, "inside"],
"yoda": [2, "never", {"exceptRange": true}],
// Strict mode
"strict": [2],
// Variables
"init-declarations": [2],
"no-catch-shadow": [0],
"no-delete-var": [2],
"no-label-var": [2],
"no-restricted-globals": [0],
"no-shadow": [2, {"allow": ["err", "resolve"]}],
"no-shadow-restricted-names": [2],
"no-undef": [2],
"no-undef-init": [2],
"no-undefined": [2],
"no-unused-vars": [2],
"no-use-before-define": [2],
// Node.JS and Common.JS
"callback-return": [1],
"global-require": [2],
"handle-callback-err": [1, "^.*err(?:or)?$"],
"no-mixed-requires": [2],
"no-new-require": [2],
"no-path-concat": [2],
"no-process-env": [0],
"no-process-exit": [2],
"no-restricted-modules": [0],
"no-sync": [0],
// Stylistic issues
"array-bracket-spacing": [2, "never"],
"block-spacing": [2],
"brace-style": [2, "stroustrup"],
"camelcase": [2],
"capitalized-comments": [1, "always", {"ignoreConsecutiveComments": true}],
"comma-dangle": [2, "always-multiline"],
"comma-spacing": [2],
"comma-style": [2],
"computed-property-spacing": [2],
"consistent-this": [0],
"eol-last": [2],
"func-call-spacing": [1, "never"],
"func-name-matching": [1],
"func-names": [0],
"func-style": [1, "declaration", {"allowArrowFunctions": true}],
"id-blacklist": [0],
"id-length": [0],
"id-match": [0],
"indent": [2, "tab", {"SwitchCase": 1, "MemberExpression": 1}],
"jsx-quotes": [2, "prefer-double"],
"key-spacing": [2],
"keyword-spacing": [2],
"line-comment-positions": [0],
"linebreak-style": [0],
"lines-around-comment": [0],
"lines-around-directive": [0],
"max-depth": [0],
"max-len": [1, {"ignoreTrailingComments": true, "ignoreUrls": true}],
"max-lines": [0],
"max-nested-callbacks": [0],
"max-params": [0],
"max-statements": [0],
"max-statements-per-line": [1],
"multiline-ternary": [0],
"new-cap": [2],
"new-parens": [2],
"newline-after-var": [1],
"newline-before-return": [0],
"newline-per-chained-call": [2],
"no-array-constructor": [2],
"no-bitwise": [2, {"allow": ["<<", ">>"]}],
"no-continue": [0],
"no-inline-comments": [1],
"no-lonely-if": [2],
"no-mixed-operators": [2],
"no-mixed-spaces-and-tabs": [2],
"no-multi-assign": [0],
"no-multiple-empty-lines": [2],
"no-negated-condition": [0],
"no-nested-ternary": [0],
"no-new-object": [2],
"no-plusplus": [0],
"no-restricted-syntax": [0],
"no-tabs": [0],
"no-ternary": [0],
"no-trailing-spaces": [2],
"no-underscore-dangle": [2],
"no-unneeded-ternary": [2],
"no-whitespace-before-property": [2],
"nonblock-statement-body-position": [0],
"object-curly-newline": [2, {"multiline": true}],
"object-curly-spacing": [2, "always"],
"object-property-newline": [2],
"one-var": [2, "never"],
"one-var-declaration-per-line": [2],
"operator-assignment": [2],
"operator-linebreak": [2, "after", {"overrides": {"?": "before", ":": "before", "||": "before", "&&": "before"}}],
"padded-blocks": [2, "never"],
"quote-props": [2, "as-needed"],
"quotes": [2, "single"],
"require-jsdoc": [0],
"semi": [2],
"semi-spacing": [2],
"sort-keys": [0],
"sort-vars": [0],
"space-before-blocks": [2],
"space-before-function-paren": [2, {"named": "never", "asyncArrow": "always"}],
"space-in-parens": [2],
"space-infix-ops": [2],
"space-unary-ops": [2, {"words": true, "nonwords": false}],
"spaced-comment": [2],
"template-tag-spacing": [0],
"unicode-bom": [0],
"wrap-regex": [2],
// ECMAScript 6
"arrow-body-style": [2],
"arrow-parens": [2, "as-needed"],
"arrow-spacing": [2],
"constructor-super": [1],
"generator-star-spacing": [2],
"no-class-assign": [2],
"no-confusing-arrow": [0],
"no-const-assign": [2],
"no-dupe-class-members": [2],
"no-duplicate-imports": [2],
"no-new-symbol": [2],
"no-restricted-imports": [0],
"no-this-before-super": [2],
"no-useless-computed-key": [2],
"no-useless-constructor": [2],
"no-useless-rename": [2],
"no-var": [2],
"object-shorthand": [2],
"prefer-arrow-callback": [2],
"prefer-const": [2],
"prefer-destructuring": [2],
"prefer-numeric-literals": [2],
"prefer-rest-params": [2],
"prefer-spread": [2],
"prefer-template": [2],
"require-yield": [2],
"rest-spread-spacing": [2],
"sort-imports": [0],
"template-curly-spacing": [2],
"yield-star-spacing": [0],
// React
"react/display-name": [0],
"react/forbid-component-props": [2],
"react/forbid-elements": [0],
"react/forbid-foreign-prop-types": [2],
"react/forbid-prop-types": [2],
"react/jsx-boolean-value": [2],
"react/jsx-closing-bracket-location": [2, "after-props"],
"react/jsx-curly-spacing": [2, "never"],
"react/jsx-equals-spacing": [2, "never"],
"react/jsx-filename-extension": [2, {"extensions": [".js"]}],
"react/jsx-first-prop-new-line": [2, "multiline"],
"react/jsx-handler-names": [2],
"react/jsx-indent-props": [2, 2],
"react/jsx-indent": [2, 4],
"react/jsx-key": [2],
"react/jsx-max-props-per-line": [2, {"maximum": 3}],
"react/jsx-no-bind": [2, {"ignoreRefs": true, "allowArrowFunctions": true}],
"react/jsx-no-comment-textnodes": [2],
"react/jsx-no-duplicate-props": [2],
"react/jsx-no-literals": [0],
"react/jsx-no-target-blank": [2],
"react/jsx-no-undef": [2],
"react/jsx-pascal-case": [2],
"react/jsx-sort-props": [0],
"react/jsx-space-before-closing": [2],
"react/jsx-tag-spacing": [2, {"closingSlash": "never", "beforeSelfClosing": "always", "afterOpening": "never"}],
"react/jsx-uses-react": [2],
"react/jsx-uses-vars": [2],
"react/jsx-wrap-multilines": [2],
"react/no-array-index-key": [1],
"react/no-children-prop": [2],
"react/no-danger-with-children": [2],
"react/no-danger": [2],
"react/no-deprecated": [2],
"react/no-did-mount-set-state": [2],
"react/no-did-update-set-state": [2],
"react/no-direct-mutation-state": [2],
"react/no-find-dom-node": [2],
"react/no-is-mounted": [2],
"react/no-multi-comp": [2],
"react/no-render-return-value": [2],
"react/no-set-state": [2],
"react/no-string-refs": [2],
"react/no-unescaped-entities": [2],
"react/no-unknown-property": [2],
"react/no-unused-prop-types": [2],
"react/prefer-es6-class": [2],
"react/prefer-stateless-function": [2],
"react/prop-types": [0],
"react/react-in-jsx-scope": [2],
"react/require-default-props": [0],
"react/require-optimization": [0],
"react/require-render-return": [2],
"react/self-closing-comp": [2],
"react/sort-comp": [0],
"react/sort-prop-types": [0],
"react/style-prop-object": [2],
"react/void-dom-elements-no-children": [2],
// Import
"import/default": [2],
"import/export": [2],
"import/extensions": [2],
"import/first": [2],
"import/max-dependencies": [0],
"import/named": [2],
"import/namespace": [2],
"import/newline-after-import": [2],
"import/no-absolute-path": [2],
"import/no-amd": [1],
//"import/no-anonymous-default-export": [2, {"allowArrowFunction": true}],
"import/no-commonjs": [1],
"import/no-deprecated": [2],
"import/no-duplicates": [2],
"import/no-dynamic-require": [2],
"import/no-extraneous-dependencies": [2, {"devDependencies": true}],
"import/no-internal-modules": [0],
"import/no-mutable-exports": [2],
"import/no-named-as-default-member": [2],
"import/no-named-as-default": [2],
"import/no-namespace": [0],
"import/no-nodejs-modules": [0],
"import/no-restricted-paths": [0],
"import/no-unassigned-import": [2],
"import/no-unresolved": [2],
"import/no-webpack-loader-syntax": [2],
"import/order": [2],
"import/prefer-default-export": [1],
"import/unambiguous": [2]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment