mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-24 14:12:40 +00:00
71 lines
2.8 KiB
JavaScript
71 lines
2.8 KiB
JavaScript
import react from "eslint-plugin-react";
|
|
import jest from "eslint-plugin-jest";
|
|
import globals from "globals";
|
|
|
|
export default [{
|
|
ignores: ["build/"]
|
|
},
|
|
{
|
|
files : ['**/*.js', '**/*.jsx'],
|
|
plugins : { react, jest },
|
|
languageOptions : {
|
|
ecmaVersion : "latest",
|
|
sourceType : "module",
|
|
parserOptions : { ecmaFeatures: { jsx: true } },
|
|
globals : { ...globals.browser, ...globals.node }
|
|
},
|
|
rules: {
|
|
/** Errors **/
|
|
"camelcase" : ["error", { properties: "never" }],
|
|
"no-array-constructor" : "error",
|
|
"no-iterator" : "error",
|
|
"no-nested-ternary" : "error",
|
|
"no-new-object" : "error",
|
|
"no-proto" : "error",
|
|
"react/jsx-no-bind" : ["error", { allowArrowFunctions: true }],
|
|
"react/jsx-uses-react" : "error",
|
|
"react/prefer-es6-class" : ["error", "never"],
|
|
"jest/valid-expect" : ["error", { maxArgs: 3 }],
|
|
|
|
/** Warnings **/
|
|
"max-lines" : ["warn", { max: 200, skipComments: true, skipBlankLines: true }],
|
|
"max-depth" : ["warn", { max: 4 }],
|
|
"max-params" : ["warn", { max: 5 }],
|
|
"no-restricted-syntax" : ["warn", "ClassDeclaration", "SwitchStatement"],
|
|
"no-unused-vars" : ["warn", { vars: "all", args: "none", varsIgnorePattern: "config|_|cx|createClass" }],
|
|
"react/jsx-uses-vars" : "warn",
|
|
|
|
/** Fixable **/
|
|
"arrow-parens" : ["warn", "always"],
|
|
"brace-style" : ["warn", "1tbs", { allowSingleLine: true }],
|
|
"jsx-quotes" : ["warn", "prefer-single"],
|
|
"no-var" : "warn",
|
|
"prefer-const" : "warn",
|
|
"prefer-template" : "warn",
|
|
"quotes" : ["warn", "single", { allowTemplateLiterals: true }],
|
|
"semi" : ["warn", "always"],
|
|
|
|
/** Whitespace **/
|
|
"array-bracket-spacing" : ["warn", "never"],
|
|
"arrow-spacing" : ["warn", { before: false, after: false }],
|
|
"comma-spacing" : ["warn", { before: false, after: true }],
|
|
"indent" : ["warn", "tab", { MemberExpression: "off" }],
|
|
"linebreak-style" : "off",
|
|
"no-trailing-spaces" : "warn",
|
|
"no-whitespace-before-property" : "warn",
|
|
"object-curly-spacing" : ["warn", "always"],
|
|
"react/jsx-indent-props" : ["warn", "tab"],
|
|
"space-in-parens" : ["warn", "never"],
|
|
"template-curly-spacing" : ["warn", "never"],
|
|
"keyword-spacing" : ["warn", {
|
|
before : true,
|
|
after : true,
|
|
overrides : { if: { before: false, after: false } }
|
|
}],
|
|
"key-spacing" : ["warn", {
|
|
multiLine : { beforeColon: true, afterColon: true, align: "colon" },
|
|
singleLine : { beforeColon: false, afterColon: true }
|
|
}]
|
|
}
|
|
}
|
|
]; |