Files
Florian Körner 1647e67d1d Consolidate ESLint into a single root config with Vue support
Merges the editor's per-workspace Vue ESLint config into the root via
@vue/eslint-config-typescript, so a single eslint.config.mjs governs
the entire monorepo (JS core, CLI, converter, docs, editor). Drops the
per-workspace lint scripts and runs everything through one root
`eslint . --cache` invocation; the warm cache lands in .eslintcache
(gitignored).

Switches to plain eslint-config-prettier (the @vue variant pulls in
eslint-plugin-prettier, which surfaces Prettier formatting as lint
warnings — Prettier already has its own command). Declares Node and
browser globals via the `globals` package so console/process/fetch are
recognised across all source. Drops the now-unused @eslint/compat,
@vue/eslint-config-prettier, and eslint-plugin-jsdoc devDependencies.

Removes the per-workspace lint script and the editor's lint:fix script
in favour of a root-level lint:fix command.
2026-04-11 23:05:54 +02:00

51 lines
1.1 KiB
JavaScript

import eslint from '@eslint/js';
import stylistic from '@stylistic/eslint-plugin';
import prettier from 'eslint-config-prettier';
import {
defineConfigWithVueTs,
vueTsConfigs,
} from '@vue/eslint-config-typescript';
import pluginVue from 'eslint-plugin-vue';
import globals from 'globals';
export default defineConfigWithVueTs(
eslint.configs.recommended,
...pluginVue.configs['flat/essential'],
vueTsConfigs.recommended,
{
languageOptions: {
globals: {
...globals.node,
...globals.browser,
},
},
plugins: {
'@stylistic': stylistic,
},
rules: {
curly: ['error', 'all'],
'@stylistic/multiline-comment-style': [
'error',
'separate-lines',
{ checkJSDoc: false },
],
'vue/multi-word-component-names': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
},
},
prettier,
{
ignores: [
'node_modules/',
'**/lib/',
'**/dist/',
'**/dist-ssr/',
'**/coverage/',
'**/.vitepress/cache/',
'**/.vitepress/dist/',
'**/*.js',
],
},
);