kedgeway

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

ExportQué 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), FakeEcosystemSnapshots 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).