nullunit/react-gtm

View on GitHub
.eslintrc.json

Summary

Maintainability
Test Coverage
{
  "env": {
    "es6": true,
    "node": true,
    "jest": true
  },
  "globals": {
    "window": false,
    "document": false,
    "test": false,
    "it": false,
    "describe": false,
    "expect": false
  },
  "plugins": [
    "react"
  ],
  "extends": [
    "eslint:all",
    "plugin:react/all"
  ],
  "settings": {
    "react": {
      "pragma": "React",  // Pragma to use, default to "React"
      "version": "detect" // React version. "detect" automatically picks the version you have installed.
    },
    "propWrapperFunctions": [
      // The names of any function used to wrap propTypes, e.g. `forbidExtraProps`. If this isn't set, any propTypes wrapped in a function will be skipped.
      "forbidExtraProps",
      {"property": "freeze", "object": "Object"},
      {"property": "myFavoriteWrapper"}
    ]
  },
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {

    //react
    "react/prefer-stateless-function": "off",
    "react/jsx-curly-spacing": ["error", {"when": "always"}],
    "react/jsx-max-props-per-line": ["error", { "when": "multiline" }],
    "react/jsx-one-expression-per-line": ["error", { "allow": "single-child" }],
    "react/jsx-no-literals": "off",
    "react/require-optimization": "off",
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],

    "func-names": "off",
    "prefer-rest-params": "off",
    "sort-keys": "off",
    "max-params": ["error", { "max": 5 }],
    "max-len": ["error", { "code": 180 }],
    "max-lines-per-function": "off",
    "max-statements": ["error", 40],
    "class-methods-use-this": "off",
    "id-length": "off",
    "spaced-comment": ["error", "never"],
    "capitalized-comments": "off",
    "multiline-comment-style": ["error", "separate-lines"],
    "padded-blocks": ["error", {
      "classes": "always",
      "switches": "always"
    }],
    "no-underscore-dangle": "off",
    "no-magic-numbers": ["error", { "enforceConst": true, "ignore": [0, 1, 2] }],
    "no-eq-null": "off",
    "dot-location": ["error", "property"],
    "array-element-newline": ["error", "consistent"],
    "array-bracket-spacing": ["error", "always", { "objectsInArrays": false, "arraysInArrays": false }],
    "object-property-newline": ["error", { "allowAllPropertiesOnSameLine": true }],
    "no-ternary": "off",
    "multiline-ternary": ["error", "always-multiline"],

    //node
    "no-sync": "error",

    //es6
    "no-var": "error",
    "constructor-super": "error",
    "arrow-parens": ["error", "always"],
    "arrow-spacing": ["error", {
      "before": true,
      "after": true
    }],
    "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": true }],
    "no-duplicate-imports": "error",
    "no-useless-constructor": "error",
    "template-curly-spacing": ["error", "never"],
    "prefer-template": "error",
    "prefer-destructuring": "error",
    "prefer-const": "error",
    "prefer-arrow-callback": "error",
    "object-shorthand": ["error", "always"],
    "object-curly-spacing": ["error", "always"],
    "sort-imports": ["error", {
      "ignoreCase": true,
      "ignoreMemberSort": false,
      "memberSyntaxSortOrder": ["none", "all", "single", "multiple"]
    }],

    "eqeqeq": ["error", "always", {"null": "ignore"}],
    "no-unused-vars": ["error", { "argsIgnorePattern": "req|res|next" }],

    //style
    "block-spacing": "error",
    "comma-spacing": ["error", { "after": true }],
    "comma-dangle": ["error", "never"],
    "curly": "error",
    "brace-style": ["error", "stroustrup"],
    "func-call-spacing": ["error", "never"],
    "no-tabs": "error",
    "one-var": ["error", "never"],
    "space-before-function-paren": ["error", {
      "anonymous": "never",
      "named": "never",
      "asyncArrow": "always"
    }],
    "space-before-blocks": "error",
    "space-in-parens": ["error", "never"],
    "indent": [
      "error",
      4,
      { "SwitchCase": 1 }
    ],
    "linebreak-style": [
      "error",
      "unix"
    ],
    "quotes": [
      "error",
      "single"
    ],
    "semi": [
      "error",
      "always"
    ]
  }
}