Documentación / Integraciones / SDK de TypeScript
SDK de TypeScript
La CLI funciona sobre una biblioteca. Impórtala para diagnosticar o migrar un repo desde tus propias herramientas.
Instalación
npm install kedgeway. Requiere Node 22.12 o posterior. Incluye las declaraciones de tipos. Para la CLI, consulta Primeros pasos.
API
| Export | Qué hace |
|---|---|
diagnose(opts: { path; ecosystem?; fixture? }) | Escanea el repo y devuelve un Diagnosis (findings y summary). Usa Raven en vivo salvo que pases fixture o un ecosystem. |
diagnoseDetailed(opts) | Las mismas opciones; devuelve { facts, snapshot, diagnosis }. |
scanRepo(path) | Lee los manifiestos y devuelve RepoFacts. Lanza un error si la ruta no existe o no es un directorio. |
diagnoseRepo(facts, snapshot) | El motor de reglas puro: sin I/O. |
createRavenEcosystem(opts?) | Un EcosystemPort respaldado por Stellar Raven. Opciones: authPath e interactive (ponlo en false para fallar de inmediato en lugar de iniciar OAuth). |
loadFixture(file), FakeEcosystem | Snapshots sin conexión. Consulta Fixtures. |
planMigration(facts, snapshot) | Construye un MigrationPlan con cambios de versión y pasos manuales. |
buildGuide(plan, snapshot, hits) | La guía de migración: versión publicada, protocolo, pasos y las notas de Raven cuyo título o url es un documento de migración. |
findImportHits(files, names) | Búsqueda pura de líneas de import de los paquetes indicados. |
applyMigration(plan, { write }) | Dry run por defecto; solo edita archivos cuando write es true. |
migrate(opts) | Diagnostica, planifica y aplica en una sola llamada. Agrega write? a las opciones de diagnose. |
toSarif(detailed, { cwd? }) | Un log SARIF 2.1.0. Es el mismo documento que diagnose --format sarif o --sarif. |
toAnnotations(detailed, { cwd? }) | Comandos de workflow de GitHub, uno por hallazgo. Son las mismas líneas que --format annotations. |
Tipos: Diagnosis, Finding, Severity, EcosystemSnapshot, RepoFacts, MigrationPlan, MigrationStep, MigrationGuide, SourceHit.
Ejemplo sin conexión
Terminal
import { diagnose } from "kedgeway";
const diagnosis = await diagnose({
path: ".",
fixture: "snapshot.json", // see the Fixtures page for the shape
});
console.log(diagnosis.summary); // { critical, warning, info }
for (const f of diagnosis.findings) {
console.log(f.severity, f.code, f.file);
}
process.exitCode = diagnosis.summary.critical > 0 ? 2 : 0;Para datos en vivo, quita fixture o pasa ecosystem: createRavenEcosystem(). Eso requiere una sesión guardada (kedgeway login).