module.exports = {
  parser: 'babel-eslint',
  parserOptions: {
    ecmaVersion: 2019,
    sourceType: 'module',
    ecmaFeatures: {
      modules: true
    }
  },
  env: {
    es2020: true,
    browser: true,
    mocha: true,
    node: true
  },
  extends: ['eslint:recommended', 'prettier'],
  plugins: ['svelte3', 'html', 'optimize-regex', 'prettier'],
  overrides: [
    {
      files: ['*.svelte'],
      processor: 'svelte3/svelte3'
    }
  ],
  rules: {
    'id-blacklist': ['warn', 'cb', 'err', 'req', 'res'],
    'optimize-regex/optimize-regex': 'off',
    'prettier/prettier': ['off', { singleQuote: true, semi: false, printWidth: 256 }],
    'no-console': 'off',
    'no-debugger': 'warn',
    'no-fallthrough': 'off',
    'no-undef': 'warn',
    'no-unused-vars': ['error', { args: 'none' }]
  },
  settings: {
    'svelte3/ignore-warnings': warning => {
      let ignore_warning = false

      switch (warning.code) {
        case 'unused-export-let':
          ignore_warning = true
          break
        default:
          break
      }

      return ignore_warning
    },
    'svelte3/ignore-styles': () => true
  },
  globals: {
    CONFIG: true,
    _: true,
    __$$self: true,
    connections: true,
    datastore: true,
    Pointer: true,
    theme: true,
    moment: true,
    DateTime: true,
    Duration: true,
    Interval: true,
    requireYAML: true,
    system_uuid: true,
    system_path: true,
    system_topic: true
  }
}