2025-06-13 15:21:27 +02:00
|
|
|
// @ts-check
|
|
|
|
|
import stylistic from '@stylistic/eslint-plugin'
|
|
|
|
|
import parserVue from 'vue-eslint-parser'
|
|
|
|
|
import simpleImportSort from "eslint-plugin-simple-import-sort"
|
2024-05-28 16:57:02 +00:00
|
|
|
import withNuxt from './.nuxt/eslint.config.mjs'
|
|
|
|
|
|
|
|
|
|
export default withNuxt(
|
2025-06-13 15:21:27 +02:00
|
|
|
{
|
|
|
|
|
files: ['**/*.vue', '**/*.ts', '**/*.js'],
|
|
|
|
|
plugins: {
|
|
|
|
|
'@stylistic': stylistic,
|
|
|
|
|
"simple-import-sort": simpleImportSort,
|
|
|
|
|
},
|
|
|
|
|
languageOptions: {
|
|
|
|
|
parser: parserVue,
|
|
|
|
|
},
|
|
|
|
|
rules: {
|
|
|
|
|
"simple-import-sort/imports": "error",
|
|
|
|
|
"simple-import-sort/exports": "error",
|
|
|
|
|
'@stylistic/no-multiple-empty-lines': 'error',
|
|
|
|
|
'@stylistic/comma-dangle': ['error', {
|
|
|
|
|
arrays: 'always-multiline',
|
|
|
|
|
objects: 'always-multiline',
|
|
|
|
|
imports: 'always-multiline',
|
|
|
|
|
exports: 'never',
|
|
|
|
|
functions: 'always-multiline',
|
|
|
|
|
}],
|
|
|
|
|
'@stylistic/block-spacing': ['error'],
|
|
|
|
|
'@stylistic/object-curly-spacing': ['error', 'always'],
|
|
|
|
|
'@stylistic/indent': ['error', 2],
|
|
|
|
|
'@stylistic/quotes': ['error', 'single'],
|
|
|
|
|
'@stylistic/semi': ['error', 'never'],
|
|
|
|
|
'@stylistic/member-delimiter-style': [
|
|
|
|
|
'error',
|
|
|
|
|
{
|
|
|
|
|
multiline: {
|
|
|
|
|
delimiter: 'none',
|
|
|
|
|
requireLast: true,
|
|
|
|
|
},
|
|
|
|
|
singleline: {
|
|
|
|
|
delimiter: 'semi',
|
|
|
|
|
requireLast: false,
|
|
|
|
|
},
|
|
|
|
|
multilineDetection: 'brackets',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
'@typescript-eslint/no-unused-vars': [
|
|
|
|
|
'error',
|
|
|
|
|
{
|
|
|
|
|
args: 'all',
|
|
|
|
|
argsIgnorePattern: '^_',
|
|
|
|
|
caughtErrors: 'all',
|
|
|
|
|
caughtErrorsIgnorePattern: '^_',
|
|
|
|
|
destructuredArrayIgnorePattern: '^_',
|
|
|
|
|
varsIgnorePattern: '^_',
|
|
|
|
|
ignoreRestSiblings: true,
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
"vue/no-bare-strings-in-template": ["error", {
|
|
|
|
|
"allowlist": [
|
|
|
|
|
"(", ")", ",", ".", "&", "+", "-", "=", "*", "/", "#", "%", "!", "?", ":", "[", "]", "{", "}", "<", ">", "\u00b7", "\u2022", "\u2010", "\u2013", "\u2014", "\u2212", "|"
|
|
|
|
|
],
|
|
|
|
|
"attributes": {
|
|
|
|
|
"/.+/": ["title", "label", "aria-label", "aria-placeholder", "aria-roledescription", "aria-valuetext"],
|
|
|
|
|
"input": ["placeholder"],
|
|
|
|
|
"img": ["alt"],
|
|
|
|
|
"inplace-edit-textfield": ["empty-text"],
|
|
|
|
|
"inplace-edit-textarea": ["empty-text"]
|
|
|
|
|
},
|
|
|
|
|
"directives": ["v-text"]
|
|
|
|
|
}],
|
|
|
|
|
"vue/no-useless-v-bind": ["error", {
|
|
|
|
|
"ignoreIncludesComment": false,
|
|
|
|
|
"ignoreStringEscape": false
|
|
|
|
|
}],
|
|
|
|
|
"vue/no-useless-mustaches": ["error", {
|
|
|
|
|
"ignoreIncludesComment": false,
|
|
|
|
|
"ignoreStringEscape": false
|
|
|
|
|
}],
|
|
|
|
|
"vue/html-closing-bracket-spacing": ["error", {
|
|
|
|
|
"startTag": "never",
|
|
|
|
|
"endTag": "never",
|
|
|
|
|
"selfClosingTag": "always"
|
|
|
|
|
}],
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-05-28 16:57:02 +00:00
|
|
|
)
|