Files
zyrarbot/frontend/eslint.config.js
T
lgooseandClaude Bot 105f3e6c6a chore(frontend): ESLint dla Vue i TypeScriptu
Konfiguracja we flat configu: zalecane zestawy js, typescript-eslint oraz
eslint-plugin-vue. Bloki <script setup lang="ts"> obsługuje vue-eslint-parser
przekazujący zawartość do parsera TypeScriptu.

Odstępstwa od domyślnych reguł:

- vue/multi-word-component-names wyłączone - kafelki panelu mają nazwy
  własne i nie każda jest dwuczłonowa
- no-unused-vars przepuszcza nazwy z prefiksem podkreślenia
- no-console wyłączone dla testu dymnego, który raportuje wynik na stdout

Szablony przepuszczone przez eslint --fix, co ujednoliciło łamanie
atrybutów i domykanie znaczników. Po zmianach kontrola typów, build
i test dymny nadal przechodzą.

Dochodzą skrypty npm: lint (z --max-warnings 0) oraz lint:fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:34:55 +02:00

52 lines
1.3 KiB
JavaScript

import js from '@eslint/js'
import globals from 'globals'
import ts from 'typescript-eslint'
import vue from 'eslint-plugin-vue'
// Kolejność ma znaczenie: w flat config późniejszy wpis nadpisuje wcześniejszy,
// więc wyjątki od reguł muszą stać za blokiem, który te reguły ustawia.
export default ts.config(
{ ignores: ['dist/**', 'node_modules/**'] },
js.configs.recommended,
ts.configs.recommended,
vue.configs['flat/recommended'],
{
// Pliki .vue parsuje vue-eslint-parser, a bloki <script setup lang="ts">
// przekazuje dalej do parsera TypeScriptu.
files: ['**/*.vue'],
languageOptions: {
parserOptions: { parser: ts.parser },
},
},
{
files: ['src/**/*.{ts,vue}'],
languageOptions: { globals: globals.browser },
},
{
files: ['*.mjs', '*.ts'],
languageOptions: { globals: globals.node },
},
{
rules: {
// Kafelki panelu mają nazwy własne, nie zawsze dwuczłonowe.
'vue/multi-word-component-names': 'off',
'no-console': ['warn', { allow: ['warn', 'error'] }],
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
},
},
{
// Test dymny raportuje wynik na stdout - to jego zadanie, nie zapomniany debug.
files: ['smoke-test.mjs'],
rules: { 'no-console': 'off' },
},
)