journal-media-vue/eslint.config.mts
gcch ff2a3a25e5
All checks were successful
ci/woodpecker/push/publish_instable Pipeline was successful
2025-02-25
2025-02-25 14:46:17 +01:00

76 lines
2.8 KiB
TypeScript

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"],
{
name: "ts/no-annoying-rules",
rules: {
"@typescript-eslint/no-misused-spread": "off",
"perfectionist/sort-modules": "off",
},
},
);