module.exports = { parser: 'vue-eslint-parser', plugins: ['@typescript-eslint', 'prettier'], root: true, env: { node: true, }, extends: [ '@vue/typescript/recommended', 'plugin:vue/essential', '@vue/standard', 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier', ], parserOptions: { ecmaVersion: 2020, }, rules: { '@typescript-eslint/ban-types': 'off', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/member-delimiter-style': [ 'error', { multiline: { delimiter: 'none', }, singleline: { delimiter: 'comma', }, }, ], '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-empty-function': 'off', 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'space-before-function-paren': ['error', 'never'], 'prefer-rest-params': "off", 'vue/array-bracket-spacing': 'error', 'vue/arrow-spacing': 'error', 'vue/block-spacing': 'error', 'vue/brace-style': 'error', 'vue/camelcase': 'error', 'vue/comma-dangle': 'error', 'vue/component-name-in-template-casing': ['error', 'kebab-case'], 'vue/eqeqeq': 'error', 'vue/key-spacing': 'error', 'vue/match-component-file-name': 'error', 'vue/object-curly-spacing': 'error', }, overrides: [ { files: [ '**/__tests__/*.{j,t}s?(x)', '**/tests/**/*.spec.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)', ], env: { jest: true, }, }, ], }