Simulador Inteligente de Impacto para Código TypeScript y APIs Node.js.
Predice qué funciones, endpoints y módulos aguas arriba se verán afectados por un cambio de código o firma antes de hacer commit o merge.
No necesitas instalar nada previamente. Puedes ejecutarlo directamente con npx en cualquier proyecto TypeScript:
# 1. Indexar el proyecto (crea el mapa de llamadas local en milisegundos)
npx @pegasus35d/impactlens-cli init
# 2. Modifica una función o archivo en tu editor...
# 3. Descubre de inmediato qué se romperá aguas arriba
npx @pegasus35d/impactlens-cli diffO si prefieres tener el comando impactlens disponible de forma permanente:
npm install -g @pegasus35d/impactlens-cli- Antes de empezar a programar: Ejecuta
impactlens initen la raíz de tu proyecto para capturar el estado base. - Editas tu código: Modificas firmas, eliminas funciones o cambias parámetros.
- Analizas el impacto: Ejecutas
impactlens diffpara ver la lista de llamadores (callers) y endpoints afectados.
Si estás en una rama de desarrollo y quieres saber qué romperá respecto a main o master:
# Ver en texto plano
impactlens diff --base main --head feature/mi-nueva-funcion
# Ver en formato Markdown
impactlens diff --base main --head feature/mi-nueva-funcion --format markdown
# Guardar el informe en un archivo
impactlens diff --base main --head feature/mi-nueva-funcion --output reporte.mdPara que ImpactLens comente automáticamente en cada Pull Request de tu equipo con un reporte colapsable y sin generar spam (actualiza el mismo comentario en cada nuevo push):
Crea el archivo .github/workflows/impactlens.yml en tu repositorio:
name: ImpactLens PR Analysis
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write
jobs:
impact-analysis:
name: Predict Code Impact
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Necesario para diffs entre ramas
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Run ImpactLens
uses: impactlens/action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
threshold: '0.3'Indexa los archivos .ts / .js, extrae firmas y construye el grafo en .impactlens/index.sqlite.
| Opción | Descripción | Defecto |
|---|---|---|
--db <ruta> |
Ubicación del archivo de base de datos SQLite | .impactlens/index.sqlite |
--force |
Fuerza la reindexación de todos los archivos ignorando la caché | false |
Calcula la onda expansiva del impacto hacia los llamadores aguas arriba.
| Opción | Descripción | Defecto |
|---|---|---|
--base <ref> |
Rama o commit base (ej: main, master, HEAD~1) |
index local |
--head <ref> |
Rama o commit con cambios (ej: feature/xyz, HEAD) |
working tree |
--format <tipo> |
Formato de salida (text, markdown, json) |
text |
--threshold <num> |
Umbral de confianza mínimo (0.0 a 1.0) |
0.3 |
--output <archivo> |
Guarda el reporte directamente en un archivo | Consola |
En la carpeta examples/demo-api encontrarás un proyecto Express de prueba con instrucciones para clonar, hacer cambios y probar el análisis en menos de 1 minuto.
MIT © pegasus35d