// @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" }], }, }, )