// https://eslint.org/docs/user-guide/configuring module.exports = { root: true, parserOptions: { parser: '@typescript-eslint/parser', extraFileExtensions: ['.vue'], }, env: { browser: true, }, globals: { process: "readonly" }, extends: [ // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 'plugin:vue/recommended', // 'plugin:vue/recommended', 'eslint:recommended', 'plugin:@typescript-eslint/eslint-recommended', ], // required to lint *.vue files plugins: [ 'vue', '@typescript-eslint' ], overrides: [{ files: ['*.ts','*.tsx'], rules: { 'no-unused-vars': 'off' } }], // add your custom rules here rules: { // allow async-await 'generator-star-spacing': 'off', // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'indent': 'off', 'semi': ['error', 'always'], 'space-before-function-paren': 'off', 'comma-dangle': 'off', // vue rules 'vue/require-prop-types': 'off', //todo: should we do this? 'vue/require-default-prop': 'off', //todo: should we do this? 'vue/attributes-order': ['error', { 'order': [ 'OTHER_ATTR', 'DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'EVENTS', 'CONTENT' ] }], "vue/multi-word-component-names": ["off", { "ignores": [] }], 'vue/order-in-components': ['error', { 'order': [ 'el', 'name', 'parent', 'functional', ['delimiters', 'comments'], ['props', 'propsData'], 'mixins', ['components', 'directives', 'filters'], 'data', 'extends', 'inheritAttrs', 'model', 'computed', 'watch', 'LIFECYCLE_HOOKS', 'methods', ['template', 'render'], 'renderError' ] }] } };