Skip to content

Instantly share code, notes, and snippets.

@BiosBoy
Created January 13, 2019 17:15
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BiosBoy/118dd6bef60b36d6a1034f10f83ffe45 to your computer and use it in GitHub Desktop.
Save BiosBoy/118dd6bef60b36d6a1034f10f83ffe45 to your computer and use it in GitHub Desktop.
{
"extends": ["airbnb", "plugin:import/react"],
"parser": "babel-eslint",
"plugins": [
"react",
"react-hooks",
"import",
"jest"
],
"env": {
"browser": true,
"node": true,
"jest/globals": true
},
"settings": {
"import/parser": "babel-eslint",
"import/ignore": [
"node_modules"
],
"import/resolver": {
"webpack": {
"config": "./webpack.config.js"
},
"node": {
"paths": [
"./"
],
"extensions": [".js",".jsx",".ts",".tsx"]
}
},
"react": {
"pragma": "React",
"version": "16.7"
}
},
"globals": {
"jest": true,
"react_disableWarnings": true,
"react_enableWarnings": true,
"__NODE_ENV__": false,
"__PORT__": false,
"__DEV__": false,
"__TEST__": false,
"__PROD__": false,
"__COVERAGE__": false
},
"rules": {
"react-hooks/rules-of-hooks": "error",
"indent": [
1,
2,
{
"SwitchCase": 1
}
],
"import/extensions": [1, "always", {
"js": "never",
"jsx": "never",
"json": "never",
"ts": "never",
"tsx": "never",
".tsx": "never"
}],
"import/no-named-as-default": 0,
"linebreak-style": [1, "unix"],
"no-restricted-imports": [1, "lodash"],
"no-restricted-globals": [2, "find"],
"no-var": 0,
"no-shadow": 1,
"vars-on-top": 0,
"consistent-return": 1,
"no-unused-vars": ["error", { "vars": "all", "args": "all", "ignoreRestSiblings": false, "argsIgnorePattern": "^nextProps|^nextState" }],
"no-cond-assign": [1, "always"],
"default-case": 1,
"no-use-before-define": 1,
"one-var-declaration-per-line": 1,
"no-confusing-arrow": 1,
"arrow-body-style": 0,
"prefer-arrow-callback": 1,
"no-case-declarations": 1,
"newline-per-chained-call": 1,
"no-restricted-syntax": 1,
"guard-for-in": 1,
"no-mixed-operators": 0,
"no-continue": 1,
"func-name-matching": 1,
"prefer-template": 1,
"no-useless-escape": 1,
"new-parens": 1,
"class-methods-use-this": 1,
"no-return-assign": 1,
"no-plusplus": [1, { "allowForLoopAfterthoughts": true }],
"no-restricted-properties": 1,
"prefer-promise-reject-errors": [1, {"allowEmptyReject": false}],
"one-var": [
1,
"never"
],
"object-curly-newline": ["error", { "multiline": true, "consistent": true }],
"max-len": [2, { "code": 120, "ignoreStrings": true }],
"quotes": ["error", "single", { "avoidEscape": true }],
"dot-location": [
2,
"property"
],
"operator-linebreak": [
2,
"after",
{
"overrides": {
">": "before",
">=": "before",
"<": "before",
"<=": "before",
"||": "before",
"&&": "before",
"+": "before",
"-": "before"
}
}
],
"max-statements": [
2,
15
],
"max-depth": [
1,
2
],
"complexity": [
2,
10
],
"max-params": [
1,
3
],
"max-nested-callbacks": [
2,
3
],
"space-before-function-paren": [
2,
"never"
],
"semi": ["error", "always"],
"prefer-const": 1,
"no-param-reassign": [
1,
{
"props": false
}
],
"dot-notation": "off",
"allowAfterThis": true,
"no-console": "off",
"curly": 0,
"comma-dangle": [
2,
"never"
],
"func-style": [
2,
"declaration",
{
"allowArrowFunctions": true
}
],
"newline-after-var": [
2,
"always"
],
"new-cap": [
2,
{
"capIsNewExceptions": [
"When",
"Then",
"Given",
"Nothing",
"T",
"F"
],
"newIsCap": false,
"capIsNew": false
}
],
"no-unused-expressions": [
2,
{
"allowShortCircuit": true,
"allowTernary": true
}
],
"no-underscore-dangle": [
0,
{
"allowAfterThis": true,
"allow": [
"__REDUX_DEVTOOLS_EXTENSION__",
"__REDUX_DEVTOOLS_EXTENSION_COMPOSE__",
"__DEV__",
"__INITIAL_STATE__",
"_exception",
"__html"
]
}
],
"arrow-parens": [
2,
"as-needed",
{
"requireForBlockBody": false
}
],
"jsx-quotes": [
2,
"prefer-single"
],
"react/jsx-indent": [
1,
2
],
"jsx-a11y/img-has-alt": 0,
"jsx-a11y/aria-role": 1,
"jsx-a11y/label-has-for": 0,
"jsx-a11y/href-no-hash": 0,
"jsx-a11y/html-has-lang": 1,
"jsx-a11y/no-static-element-interactions": 1,
"jsx-a11y/anchor-has-content": 1,
"jsx-a11y/no-noninteractive-element-interactions": 1,
"jsx-a11y/alt-text": 1,
"jsx-a11y/iframe-has-title": 1,
"jsx-a11y/no-autofocus": 1,
"jsx-a11y/media-has-caption": 1,
"jsx-a11y/no-noninteractive-tabindex": 1,
"jsx-a11y/no-noninteractive-element-to-interactive-role": 1,
"jsx-a11y/interactive-supports-focus": 1,
"react/no-array-index-key": 1,
"react/no-will-update-set-state": 1,
"react/require-default-props": 1,
"react/style-prop-object": 0,
"react/jsx-first-prop-new-line": 1,
"react/jsx-one-expression-per-line": 0,
"react/prefer-stateless-function": [
0,
{
"ignorePureComponents": true
}
],
"react/jsx-no-bind": 2,
"react/no-direct-mutation-state": 2,
"react/jsx-key": 2,
"react/no-find-dom-node": 1,
"react/require-optimization": [1, {"allowDecorators": ["pureRender", "connect"]}],
"react/jsx-filename-extension": 0,
"react/jsx-no-target-blank": 2,
"react/no-children-prop": 1,
"react/forbid-prop-types": [
2,
{
"forbid": ["any"]
}
],
"quote-props": [
1,
"as-needed"
],
"react/prop-types": 2,
"react/display-name": [
1,
{
"ignoreTranspilerName": false
}
],
"react/jsx-indent-props": [
1,
2
],
"react/no-multi-comp": [
1,
{
"ignoreStateless": true
}
],
"react/jsx-handler-names": [
1,
{
"eventHandlerPrefix": "_handle",
"eventHandlerPropPrefix": "on"
}
],
"no-else-return": [
"error",
{
"allowElseIf": true
}
],
"react/jsx-max-props-per-line": [1, { "maximum": 2 }],
"react/jsx-wrap-multilines": 0,
"react/no-unused-prop-types": 1,
"react/sort-comp": [
2,
{
"order": [
"static-methods",
"mixins",
"displayName",
"actions",
"contextTypes",
"childContextTypes",
"propTypes",
"defaultProps",
"pure",
"statics",
"state",
"constructor",
"getDefaultProps",
"getInitialState",
"getChildContext",
"getStoresState",
"componentWillMount",
"componentDidMount",
"componentWillReceiveProps",
"shouldComponentUpdate",
"componentWillUpdate",
"componentDidUpdate",
"componentWillUnmount",
"/^component.+$/",
"/^get.+$/",
"/^on.+$/",
"/^handle.+$/",
"everything-else",
"/^render.+$/",
"render"
]
}
],
"import/no-unresolved": [
2,
{
"commonjs": true,
"amd": false
}
],
"import/no-commonjs": [0, { "allowPrimitiveModules": true }],
"import/named": 2,
"import/namespace": 2,
"import/default": 2,
"import/prefer-default-export": 1,
"import/newline-after-import": 0,
"import/unambiguous": 0,
"import/no-webpack-loader-syntax": 1,
"import/first": 1,
"import/no-dynamic-require": 1,
"import/no-deprecated": 1,
"import/no-extraneous-dependencies": 0,
"jest/no-disabled-tests": "warn",
"jest/no-focused-tests": "error",
"jest/no-identical-title": "error",
"jest/valid-expect": "error",
"no-multiple-empty-lines": [2, {
"max": 1
}]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment