59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
|
|
import js from '@eslint/js';
|
||
|
|
import vue from 'eslint-plugin-vue';
|
||
|
|
import vueParser from 'vue-eslint-parser';
|
||
|
|
import globals from 'globals';
|
||
|
|
|
||
|
|
export default [
|
||
|
|
{ ignores: ['node_modules/**', '../web/dist/**'] },
|
||
|
|
js.configs.recommended,
|
||
|
|
...vue.configs['flat/recommended'],
|
||
|
|
{
|
||
|
|
files: ['**/*.{js,vue}'],
|
||
|
|
languageOptions: {
|
||
|
|
ecmaVersion: 2022,
|
||
|
|
sourceType: 'module',
|
||
|
|
parser: vueParser,
|
||
|
|
parserOptions: {
|
||
|
|
ecmaFeatures: { jsx: false },
|
||
|
|
},
|
||
|
|
globals: {
|
||
|
|
...globals.browser,
|
||
|
|
...globals.node,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
rules: {
|
||
|
|
'no-unused-vars': ['warn', {
|
||
|
|
argsIgnorePattern: '^_',
|
||
|
|
varsIgnorePattern: '^_',
|
||
|
|
caughtErrorsIgnorePattern: '^_',
|
||
|
|
}],
|
||
|
|
'no-empty': ['error', { allowEmptyCatch: true }],
|
||
|
|
'no-case-declarations': 'off',
|
||
|
|
|
||
|
|
// Stylistic rules from vue/recommended that don't match the
|
||
|
|
// existing codebase formatting. Disable rather than churn the
|
||
|
|
// whole tree to satisfy them.
|
||
|
|
'vue/multi-word-component-names': 'off',
|
||
|
|
'vue/no-v-html': 'off',
|
||
|
|
'vue/html-self-closing': 'off',
|
||
|
|
'vue/max-attributes-per-line': 'off',
|
||
|
|
'vue/singleline-html-element-content-newline': 'off',
|
||
|
|
'vue/multiline-html-element-content-newline': 'off',
|
||
|
|
'vue/html-indent': 'off',
|
||
|
|
'vue/html-closing-bracket-newline': 'off',
|
||
|
|
'vue/attributes-order': 'off',
|
||
|
|
'vue/first-attribute-linebreak': 'off',
|
||
|
|
'vue/one-component-per-file': 'off',
|
||
|
|
'vue/order-in-components': 'off',
|
||
|
|
'vue/attribute-hyphenation': 'off',
|
||
|
|
'vue/v-on-event-hyphenation': 'off',
|
||
|
|
|
||
|
|
// Pervasive in form components ported from the Vue 2 codebase
|
||
|
|
// (parent passes a reactive object; child mutates it in place).
|
||
|
|
// Properly fixing this means rewiring those components to emit
|
||
|
|
// updates — a meaningful architectural change, separate task.
|
||
|
|
'vue/no-mutating-props': 'off',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
];
|