# openapi-typesafe — clientes OpenAPI con tipos seguros, listos para TypeScript 7

Un sucesor mantenido y de reemplazo directo para openapi-typescript y openapi-fetch, cuyo autor dejó de mantenerlos en septiembre de 2026. Genera tipos de TypeScript a partir de un esquema OpenAPI 3.0, 3.1 o 3.2 y te da un cliente fetch con tipos completos. El generador ya no usa la API del compilador de TypeScript, así que funciona con TypeScript 5, 6 y 7. Cada versión se comprueba contra 1.820 esquemas reales: 50.960 casos, 0 diferencias inesperadas.

- **Author:** Fedor Chishchin
- **Role:** Mantenedor — fork, reescritura del generador, pruebas de compatibilidad, pipeline de releases
- **Period:** nov. 2026 — actualidad
- **Stack:** TypeScript · Node.js · OpenAPI 3.x · Vitest · GitHub Actions · npm provenance · VitePress
- **Source:** https://fedorthinks.com/es/work/openapi-typesafe

---

<PackageBadges npm="openapi-typesafe" />

Genera los tipos y luego llama a tu API con un cliente tipado:

<Command>npx openapi-typesafe ./openapi.yaml -o ./src/api/schema.d.ts</Command>

## Por qué existe

[openapi-typescript](https://github.com/openapi-ts/openapi-typescript) y `openapi-fetch` son la
forma en que muchos equipos de TypeScript hablan con sus APIs: les das un esquema OpenAPI y
obtienes tipos para cada ruta, parámetro y respuesta. En septiembre de 2026 su autor
[dejó de mantenerlos](https://github.com/openapi-ts/openapi-typescript/issues/2874).

Al mismo tiempo llegó TypeScript 7. Es el port nativo del compilador, y su paquete `typescript`
no tiene API de JavaScript: ni `ts.factory`, ni printer. openapi-typescript construye cada tipo
con `ts.factory`, así que en un proyecto con TypeScript 7 o se niega a instalarse o falla en
cuanto se carga.

Así que miles de proyectos tenían una dependencia sin mantenimiento y a punto de romperse.

## Qué hice

Hice un fork con todo el historial original y puse una sola regla: **migrar debe ser renombrar el
paquete, nada más.** Los mismos flags de CLI, la misma API de Node, la misma salida generada, el
mismo cliente.

- **Un generador sin la API del compilador.** Los tipos se construyen como un pequeño árbol propio
  y se imprimen con nuestro propio printer. No necesita el paquete `typescript` en absoluto, así
  que funciona junto a TypeScript 5, 6 o 7.
- **Soporte para OpenAPI 3.2**, que el original rechaza.
- **Una herramienta de migración** (`openapi-typesafe-migrate`) que pasa un proyecto al nuevo
  paquete: imports, scripts y configuración del paquete.
- **Bindings para TanStack Query** y helpers de tipos compartidos, también como reemplazo directo.

## Cómo sé que es compatible

"Reemplazo directo" es una promesa, así que hay que medirla, no solo afirmarla. Un
[informe de compatibilidad](https://openapi-typesafe.github.io/openapi-typesafe/compatibility)
público compara nuestra salida con openapi-typescript 7.13 en **1.820 documentos OpenAPI reales**:
todo el directorio de APIs.guru más los grandes como GitHub, Stripe, OpenAI, Cloudflare y
Kubernetes. Cada esquema se ejecuta con 28 combinaciones de opciones, o sea **50.960 casos**.

Cada caso se comprueba en tres pasos: los mismos bytes, luego los mismos tipos (una comprobación
estricta de identidad), luego si compila. La última ejecución: **99,87 % idéntico byte a byte,
100 % de tipos idénticos, 0 diferencias inesperadas**. La CI ejecuta el corpus completo cada
noche, y cada versión enlaza su informe.

## Releases seguras

Un generador de código se ejecuta en tu máquina y escribe código en tu proyecto, así que su
cadena de suministro importa:

- dependencias mínimas;
- npm provenance y ningún token de publicación de larga duración;
- un modelo de amenazas, una política de seguridad con tiempos de respuesta y reporte privado de
  vulnerabilidades;
- insignias de OpenSSF Scorecard y OpenSSF Best Practices.

## Hecho para agentes de código

El repo incluye una **agent skill** que enseña a Claude Code (o a cualquier agente que lea
skills) a configurar el cliente, hacer llamadas tipadas, manejar errores y migrar desde
openapi-typescript. Una suite de evals aparte mide esa skill en 34 tareas de programación. El
sitio de documentación sirve `llms.txt`, `llms-full.txt` y una copia en Markdown de cada página.

Lo construí con agentic engineering: los agentes de código escriben el código, y yo me encargo
del diseño, de la regla de compatibilidad y de la prueba de que se cumple.

## Estado

Release candidate: `1.0.0-rc.4` en npm. Los nombres y la salida aún pueden cambiar antes de la
1.0.0; después sigue semantic versioning. Licencia MIT.
