Presets de Frameworks
archlint usa presets basados en YAML para entender patrones específicos de frameworks y reducir los falsos positivos.
Cómo funciona
archlint detecta automáticamente frameworks analizando las dependencias en package.json y los archivos de configuración. También puedes extender explícitamente presets en tu .archlint.yaml:
extends:
- nestjs
- ./my-company-preset.yamlPresets Integrados
- nestjs: Para aplicaciones NestJS.
- nextjs: Para proyectos Next.js.
- react: Para bibliotecas y aplicaciones React.
- oclif: Para herramientas CLI construidas con oclif.
Presets Personalizados
Un archivo de preset es un archivo de configuración estándar de archlint con una sección adicional detect para el autodiscovery.
Estructura
name: my-framework
version: 1
# Reglas para autodetección
detect:
packages:
any_of: ['my-core-pkg']
files:
any_of: ['my-framework.config.js']
# Reglas globales
rules:
layer_violation: high
dead_symbols:
ignore_methods: ['onInit', 'onDestroy']
vendor_coupling:
ignore_packages: ['my-framework/*']
# Sobrescrituras específicas por ruta
overrides:
- files: ['**/*.controller.ts']
rules:
lcom: off
# Patrones para análisis de código muerto
entry_points:
- '**/*.controller.ts'Cargar Presets Personalizados
Puedes cargar presets desde archivos locales o URLs:
extends:
- ./presets/shared.yaml
- https://raw.githubusercontent.com/org/archlint-presets/main/standard.yamlLógica de Fusión
Los presets se fusionan en el orden en que se especifican. La prioridad es:
- Configuración del usuario en
.archlint.yaml(la más alta) - Presets en la lista
extends - Presets detectados automáticamente
- Configuración predeterminada de archlint (la más baja)
Para configuraciones basadas en listas (como entry_points o ignore_packages dentro de las reglas), archlint realiza una unión de todos los valores. Las reglas y las sobrescrituras se fusionan recursivamente.