---
  extends:
    - airbnb-base

  parser:
    babel-eslint

  settings:
    ecmascript: 7

  parserOptions:
    ecmaFeatures:
      modules: true
      destructuring: true
      experimentalObjectRestSpread: true
      classes: true
      forOf: true
      blockBindings: true
      arrowFunctions: true

  env:
    browser: true
    jest: true

  rules:
    # -------------
    # General Rules
    # -------------

    arrow-body-style: 0
    prefer-arrow-callback: 0
    arrow-parens: 0
    no-param-reassign: 0
    no-new: 0
    no-restricted-syntax: 0
    consistent-return: 0
    key-spacing: 0
    no-multi-spaces: 0
    no-await-in-loop: 0
    no-continue: 0
    no-underscore-dangle: 0
    no-multiple-empty-lines: [2, { "max": 1 }]
    one-var: 0
    global-require: 0
    class-methods-use-this: 0
    comma-dangle: ["error", {
      "arrays": "always-multiline",
      "objects": "always-multiline",
      "imports": "always-multiline",
      "exports": "always-multiline",
      "functions": "never"
    }]
    func-names: 0
    function-paren-newline: 0
    indent: 2
    new-cap: 0
    no-plusplus: 0
    no-return-assign: 0
    quote-props: 0
    quotes: ["error", "single", {avoidEscape: true}]
    template-curly-spacing: 0
    no-unused-expressions: 0
    no-console: 0
    import/no-named-as-default: 0
    jsx-a11y/anchor-is-valid: 0
    linebreak-style: 0
    no-nested-ternary: 0
    no-async-promise-executor: 0

    # ------------
    # Import Rules
    # ------------

    import/extensions: 0
    import/no-extraneous-dependencies: 0
    import/no-unresolved: 0
    import/prefer-default-export: 0
