module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/vue3-essential',
    '@vue/airbnb',
    '@vue/typescript/recommended',
  ],
  parserOptions: {
    ecmaVersion: 2020,
  },
  rules: {
    'no-console': 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'import/prefer-default-export': 'off',
    'no-useless-constructor': 'off',
    '@typescript-eslint/no-useless-constructor': ['error'],
    'class-methods-use-this': 'off',
    "@typescript-eslint/no-this-alias": [
      "error",
      {
        "allowDestructuring": true,
        "allowedNames": ["self"],
      }
    ],
    'no-param-reassign': ["error", { "props": false }],
    'camelcase': 'off',
    '@typescript-eslint/no-non-null-assertion': 'off',

    // typescript will provide similar error messages, potentially conflicting ones, for
    // the following rules, so we disable them
    'no-undef': 'off',
    'no-undef-init': 'off',
    'import/extensions': 'off',

    // error on imports using ../vue/src paths - use e.g. `from 'CoreHome'` instead
    'no-restricted-imports': ['error', {
      patterns: ['**/vue/src'],
    }],
  },
};
