TS a GraphQL SDL
Generador de esquemas GraphQL SDL

Conversor de interfaces TypeScript a esquemas GraphQL SDL

Referencia técnica para desarrolladores sobre la conversión de interfaces, tipos y enums de TypeScript en esquemas GraphQL SDL listos para producción.

Preajustes
Entrada de interfaces y tipos TypeScript
# No TypeScript interfaces, types, or enums detected in source.
# Paste TypeScript definitions or select a scenario preset above.
Tipos definidos
0 Tipos e Inputs
Campos totales
0 Campos generados
Enums y uniones
0.97ms (AST de cliente puro)

Análisis AST en el cliente

Todas las interfaces, alias de tipos y enums de TypeScript se analizan localmente en la memoria del navegador sin enviar código a servidores remotos.

Generación completa de SDL de GraphQL

Convierte modelos complejos de TypeScript en tipos de objetos, tipos de entrada, enums, uniones y escalares personalizados de GraphQL SDL estándar.

Listo para producción y exportación multitab

Exporte definiciones de esquema completas (.graphql), tipos de entrada independientes o firmas de resolutores con copia y descarga instantáneas.

Referencia técnica y guía de arquitectura

Guía Rápida de TypeScript a GraphQL SDL — Guía de referencia

Referencia técnica para desarrolladores sobre la conversión de interfaces, tipos y enums de TypeScript en esquemas GraphQL SDL listos para producción.

Parámetros clave y controles

nullabilityMode'ts' | 'strict' | 'nullable'

Controla la nulabilidad de los campos en GraphQL. 'ts' traslada la opcionalidad (? y null); 'strict' impone no nulo (!) en todos los campos no opcionales; 'nullable' elimina los modificadores de obligatoriedad.

Por defecto: 'ts'
autoMapIdboolean

Convierte propiedades de TypeScript llamadas id, _id o que finalizan en Id desde string o number al escalar nativo ID de GraphQL.

Por defecto: true
smartNumbersboolean

Diferencia los tipos number de TypeScript en escalares GraphQL Int o Float basándose en convenciones de nombres y análisis del AST.

Por defecto: true
generateInputsboolean

Deriva tipos de objeto input de GraphQL a partir de las interfaces, omitiendo identificadores de solo lectura y adaptando subtipos anidados.

Por defecto: true
parseDeprecationboolean

Detecta etiquetas JSDoc @deprecated en propiedades de TypeScript y las traduce a directivas @deprecated(reason: "...") de GraphQL.

Por defecto: true

Consejos profesionales y mejores prácticas

Conservar Documentación JSDoc

Añada comentarios JSDoc multilínea (`/** ... */`) a las interfaces de TypeScript para que el generador los exporte como bloques descriptivos de triple comilla compatibles con GraphQL SDL.

Mapear Enums y Uniones de TS

Defina uniones de literales de cadena (`type Status = 'OPEN' | 'CLOSED'`) para generar enums nativos de GraphQL en lugar de degradar los valores al escalar primitivo String.

Separar Objetos Input de SDL

Active `generateInputs` al diseñar mutaciones para estructurar tipos `input` específicos que omitan automáticamente campos de solo lectura como identificadores autogenerados o fechas de creación.

Declarar Escalares de Fecha

Habilite `declareScalars` para inyectar automáticamente definiciones `scalar DateTime` en la raíz del esquema al detectar tipos `Date` nativos de TypeScript o cadenas ISO.

Errores comunes y solución de problemas

Referencias circulares entre interfaces TypeScript provocan advertencias de recursión

Interrumpa las dependencias bidireccionales marcando los campos de relación como opcionales (nulables) o mediante uniones, permitiendo emitir el esquema SDL sin desbordamiento de pila.

Tipos de utilidad como Omit<T, K> o Pick<T, K> no expanden sus campos correspondientes

Convierta tipos mapeados y utilidades en declaraciones de interfaz explícitas antes de transformar el código, o use `tsc --declaration` para proporcionar nodos estructurales resueltos.

Preguntas frecuentes (FAQ)

¿El código TypeScript se analiza y transforma íntegramente en el navegador local?▼

Sí. Toda la tokenización y la conversión de AST a SDL de GraphQL se ejecutan en el entorno local del navegador. Ningún fragmento de código ni estructura se transmite a servidores externos.

¿Cómo procesa el conversor la herencia de interfaces TypeScript con extends?▼

Dado que los tipos de objeto de GraphQL no soportan herencia directa, el conversor aplana los campos de la interfaz base integrándolos directamente en el tipo GraphQL generado.

¿Puede el generador crear tipos input de GraphQL independientes para mutaciones?▼

Sí. Al habilitar `generateInputs`, la utilidad crea tipos `input` complementarios con el sufijo `Input`, eliminando automáticamente claves primarias autogeneradas y relaciones recursivas.

¿Cómo se transforman las uniones de literales de cadena de TS en GraphQL?▼

Las uniones puras de cadenas literales (como `'DRAFT' | 'PUBLISHED' | 'ARCHIVED'`) se traducen en bloques `enum` de GraphQL, mientras que las uniones de objetos complejos se estructuran como `union`.

Herramientas y utilidades relacionadas

Todas las herramientas →