Files
dancefinder-app/eslint.config.mjs
T

88 lines
2.7 KiB
JavaScript
Raw Normal View History

// @ts-check
import stylistic from '@stylistic/eslint-plugin'
import parserVue from 'vue-eslint-parser'
import simpleImportSort from "eslint-plugin-simple-import-sort"
import withNuxt from './.nuxt/eslint.config.mjs'
export default withNuxt(
{
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"
}],
},
},
)