This commit is contained in:
gcch 2025-02-20 09:05:21 +01:00
commit 98131c3b78
29 changed files with 2003 additions and 0 deletions

80
eslint.config.mts Normal file
View file

@ -0,0 +1,80 @@
import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript";
import perfectionist from "eslint-plugin-perfectionist";
import vue from "eslint-plugin-vue";
import globals from "globals";
export default defineConfigWithVueTs(
{
files: ["**/*.{js,mjs,ts,mts,vue}"],
languageOptions: {
ecmaVersion: "latest",
globals: {
...globals.browser,
...globals.es2025,
},
},
name: "app/files-to-lint",
},
{
ignores: [".cache/", "dist/", "node_modules/"],
name: "app/files-to-ignore",
},
vueTsConfigs.strictTypeChecked,
vueTsConfigs.stylisticTypeChecked,
vue.configs["flat/recommended"],
{
name: "app/no-vue-formatting",
rules: {
"vue/array-bracket-newline": "off",
"vue/array-bracket-spacing": "off",
"vue/array-element-newline": "off",
"vue/arrow-spacing": "off",
"vue/attributes-order": ["error", {
alphabetical: true,
}],
"vue/block-spacing": "off",
"vue/block-tag-newline": "off",
"vue/brace-style": "off",
"vue/comma-dangle": "off",
"vue/comma-spacing": "off",
"vue/comma-style": "off",
"vue/dot-location": "off",
"vue/first-attribute-linebreak": "off",
"vue/func-call-spacing": "off",
"vue/html-closing-bracket-newline": "off",
"vue/html-closing-bracket-spacing": "off",
"vue/html-comment-content-newline": "off",
"vue/html-comment-content-spacing": "off",
"vue/html-comment-indent": "off",
"vue/html-indent": "off",
"vue/html-quotes": "off",
"vue/html-self-closing": "off",
"vue/key-spacing": "off",
"vue/keyword-spacing": "off",
"vue/max-attributes-per-line": "off",
"vue/max-len": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/multiline-ternary": "off",
"vue/new-line-between-multi-line-property": "off",
"vue/no-extra-parens": "off",
"vue/no-multi-spaces": "off",
"vue/no-spaces-around-equal-signs-in-attribute": "off",
"vue/object-curly-newline": "off",
"vue/object-curly-spacing": "off",
"vue/object-property-newline": "off",
"vue/operator-linebreak": "off",
"vue/padding-line-between-blocks": "off",
"vue/padding-line-between-tags": "off",
"vue/padding-lines-in-component-definition": "off",
"vue/quote-props": "off",
"vue/script-indent": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/space-in-parens": "off",
"vue/space-infix-ops": "off",
"vue/space-unary-ops": "off",
"vue/template-curly-spacing": "off",
"vue/v-for-delimiter-style": "off",
},
},
perfectionist.configs["recommended-natural"],
);