chore: strengthen backend eslint profile
This commit is contained in:
@@ -122,6 +122,34 @@ Required checks настраиваются отдельно в Gitea: налич
|
||||
runtime-валидацию. В обычном коде нужны инициализация или сужение типа
|
||||
после проверки значения.
|
||||
|
||||
## ESLint
|
||||
|
||||
`npm run lint` проверяет весь authored TypeScript и JavaScript, включая scripts
|
||||
и configs. `npm run lint:fix` (также `npm run format`) применяет безопасные
|
||||
автоисправления. Форматирование принадлежит ESLint Stylistic: два пробела,
|
||||
одинарные кавычки и точки с запятой; Prettier не используется.
|
||||
|
||||
Профиль: ESLint recommended, typescript-eslint recommendedTypeChecked,
|
||||
Node, NestJS typed, Jest, import-x с TypeScript resolver, SonarJS, RegExp,
|
||||
Security, Perfectionist recommended-natural и Stylistic customize.
|
||||
NestJS проверяется в production TS, Jest — в specs/e2e; generated Prisma,
|
||||
dist и coverage исключены. DI imports сохраняют runtime metadata.
|
||||
|
||||
Исключения конфигурации: private backend не публикуется в npm;
|
||||
TS imports разрешает import-x вместо Node resolver; IsIn проверяет domain
|
||||
unions. Автосортировка объектов, классов, модулей и декораторов отключена,
|
||||
поскольку порядок может влиять на runtime. Остальные точечные исключения
|
||||
объясняют false positives непосредственно в коде.
|
||||
|
||||
`eslint-suppressions.json` — штатный ESLint baseline только для существующих
|
||||
SonarJS cognitive-complexity, no-nested-conditional и no-nested-template-literals.
|
||||
Это отложенный refactor, а не исправленные нарушения. Baseline ограничен
|
||||
файлами и количеством сообщений; новые файлы и превышение количества блокируют
|
||||
lint. Он не защищает от усложнения уже учтённой функции при прежнем количестве
|
||||
сообщений — это остаётся предметом review. При сокращении долга обновляйте
|
||||
baseline командой `npx eslint . --prune-suppressions`; не пересоздавайте его
|
||||
для обхода новых ошибок. Security, TypeScript и Jest в baseline не включены.
|
||||
|
||||
## SonarQube
|
||||
|
||||
Проект `wealthledger-backend` на `https://sonarqube.personal.ksv741.ru`
|
||||
|
||||
Reference in New Issue
Block a user