module.exports = {
  root: true,
  env: {
    es6: true,
    node: true
  },
  extends: [
    'plugin:vue/recommended',
    '@vue/standard',
    'airbnb-base'
  ],
  rules: {
    'import/no-unresolved': 'off',
    'linebreak-style': 'off',
    'max-len': [
      'error',
      {
        code: 450,
        tabWidth: 2,
        ignoreUrls: true,
        ignoreRegExpLiterals: true,
        ignoreComments: true
      }
    ],
    'prefer-destructuring': [
      'error',
      {
        array: false,
        object: false
      },
      {
        enforceForRenamedProperties: false
      }
    ],
    'global-require': 'off',
    'template-curly-spacing': 'off',
    'indent': 'off',
    'no-plusplus': 'off',
    'no-console': 'off',
    'no-debugger': 'off',
    'vue/html-closing-bracket-newline': 'off',
    'vue/html-self-closing': 'off',
    'vue/component-name-in-template-casing': 'off',
    'comma-dangle': [
      'error',
      'never'
    ],
    'semi': [
      'error',
      'never'
    ],
    'quote-props': [
      'error',
      'consistent-as-needed'
    ],
    'space-before-function-paren': [
      'error',
      'always'
    ],
    'object-curly-newline': 'off',
    'no-underscore-dangle': 'off',
    'no-shadow': [
      'error',
      {
        allow: [
          'state'
        ]
      }
    ],
    'no-param-reassign': [
      'error',
      {
        props: true,
        ignorePropertyModificationsFor: [
          'acc',
          'state',
          'el',
          'Vue'
        ]
      }
    ]
  },
  parserOptions: {
    parser: 'babel-eslint',
    allowImportExportEverywhere: true
  },
  plugins: [
    'graphql'
  ]
}
