Dibuja mi repo

Qué depende de un archivo

GET https://seerepo.com/api/v1/repos/:repo/impact

Dice qué depende de un archivo, o de uno de sus exports, antes de que lo toques. En JavaScript y TypeScript sigue lo que el código de verdad nombra: un archivo que importa otro y solo usa otra cosa de él no cuenta. En otros lenguajes va por imports enteros, y lo dice.

Los tipos no se siguen: un archivo que solo usa un tipo de otro no sale aquí. Cuando rompes un tipo ya te avisa el compilador.

Petición

Parámetro Dónde Descripción
repo ruta El id del repo, o dueño/nombre con %2F.
path consulta El archivo, desde la raíz del repo.
name consulta Opcional. Uno de sus exports.
to consulta Opcional. Otro archivo: un camino más corto desde él hasta este.
curl "https://seerepo.com/api/v1/repos/6ad79fd8e89233277ded17c9/impact?path=lib/env.ts" \
  -H "Authorization: Bearer $SEEREPO_KEY"

Respuesta

Campo Tipo Descripción
data.how string symbols, por lo que de verdad se nombra, o files, por imports enteros.
data.direct.total number Los archivos que lo nombran ellos mismos.
data.direct.files[] string Hasta 30 de ellos.
data.direct.names object Qué exportaciones nombra cada uno de esos archivos, por archivo. Vacío cuando el lenguaje no tiene símbolos que seguir.
data.reach.total number Todos los archivos que dependen de él, directo o a través de otros.
data.reach.modules[] object Dónde viven: path, name y files, los de más primero.
data.pages.total number Las páginas a las que llega, la suya si es una.
data.pages.routes[] object Hasta 30: route y path.
data.processes[] string Los procesos a los que llega: web, worker.
data.route array|null Solo con to: los archivos desde ahí hasta este, o null si no hay camino.
data.everyRequest.pages number Solo en lo que el framework corre antes de cada página que le toca, como el middleware de Next: cuántas páginas tiene el repo.
data.tests.total, data.tests.files[] number, string Las pruebas que lo nombran, importándolo o simulándolo, y las cinco primeras. No están en direct ni en reach.

Ejemplo

{
  "status": "success",
  "data": {
    "path": "lib/env.ts",
    "how": "symbols",
    "direct": { "total": 2, "files": ["lib/mail.ts", "worker/index.ts"] },
    "reach": { "total": 5, "modules": [{ "path": "/account", "name": "Cuenta", "files": 3 }] },
    "pages": { "total": 1, "routes": [{ "route": "/settings", "path": "app/settings/page.tsx" }] },
    "processes": ["web", "worker"]
  }
}

Errores

Estado Código Cuándo
400 bad_path No se dio ningún archivo.
402 plan_required El repo pasa de su tope y solo enseña su primer nivel.
404 unknown_file SeeRepo no leyó ese archivo como parte del producto. Eso no significa que nadie lo use.
404 unknown_language SeeRepo no sigue los imports de ese lenguaje. Eso no significa que nada dependa de él.
404 unknown_export El archivo no exporta ese nombre. El mensaje dice cuáles sí.
404 not_read_yet SeeRepo lo lee en el próximo push del repo.