Пресеты фреймворков
archlint использует пресеты на базе YAML, чтобы понимать специфичные для фреймворков паттерны и уменьшать количество ложных срабатываний.
Как это работает
archlint автоматически определяет фреймворки, анализируя зависимости в package.json и конфигурационные файлы. Вы также можете явно указать пресеты в вашем .archlint.yaml:
yaml
extends:
- nestjs
- ./my-company-preset.yamlВстроенные пресеты
- nestjs: Для приложений NestJS.
- nextjs: Для проектов Next.js.
- react: Для библиотек и приложений React.
- oclif: Для CLI инструментов, созданных с помощью oclif.
Кастомные пресеты
Файл пресета — это стандартный файл конфигурации archlint с дополнительной секцией detect для автоопределения.
Структура
yaml
name: my-framework
version: 1
# Правила для автоопределения
detect:
packages:
any_of: ['my-core-pkg']
files:
any_of: ['my-framework.config.js']
# Глобальные правила
rules:
layer_violation: high
dead_symbols:
ignore_methods: ['onInit', 'onDestroy']
vendor_coupling:
ignore_packages: ['my-framework/*']
# Переопределения по путям
overrides:
- files: ['**/*.controller.ts']
rules:
lcom: off
# Паттерны для анализа мертвого кода
entry_points:
- '**/*.controller.ts'Загрузка кастомных пресетов
Вы можете загружать пресеты из локальных файлов или по URL:
yaml
extends:
- ./presets/shared.yaml
- https://raw.githubusercontent.com/org/archlint-presets/main/standard.yamlЛогика объединения
Пресеты объединяются в том порядке, в котором они указаны. Приоритет следующий:
- Конфигурация пользователя в
.archlint.yaml(самый высокий) - Пресеты из списка
extends - Автоматически определенные пресеты
- Настройки archlint по умолчанию (самый низкий)
Для списков (таких, как entry_points или ignore_packages внутри правил) archlint выполняет объединение (union) всех значений. Правила и переопределения объединяются рекурсивно.