Nuevas características en TypeScript que pueden mejorar nuestro flujo de trabajo de GraphQL.
This talk has been presented at GraphQL Galaxy 2020, check out the latest edition of this Tech Conference.
Nuevas características en TypeScript que pueden mejorar nuestro flujo de trabajo de GraphQL.
This talk has been presented at GraphQL Galaxy 2020, check out the latest edition of this Tech Conference.
GraphQL Cogen es un proyecto de código abierto iniciado por Lhothan, que genera TypeScript, C Sharp, Java y más a partir de esquemas de GraphQL. Se utiliza para mantener sincronizados los sistemas de tipos de GraphQL y TypeScript y para generar código que mejora la experiencia de desarrollo y la seguridad de tipos.
Al mantener sincronizados los sistemas de tipos de GraphQL y TypeScript, GraphQL Cogen asegura que cualquier cambio en el esquema de GraphQL se refleje correctamente en el código de TypeScript, lo que reduce los errores en tiempo de ejecución relacionados con discrepancias de tipos.
Uno de los complementos más populares de GraphQL Cogen para TypeScript es el que genera tipos de TypeScript directamente desde el esquema de GraphQL. Otro complemento destacado es TypeScript React Apollo, que genera hooks de React listos para usar basados en Apollo Client y operaciones de GraphQL.
El Type Document Node es un complemento en GraphQL Cogen que genera un nodo de documento a partir de operaciones de GraphQL, incluyendo los tipos de las variables y los resultados integrados, lo que permite usar estos tipos automáticamente en bibliotecas compatibles sin necesidad de especificaciones adicionales.
GraphQL Cogen es muy flexible y permite integrarse con una amplia gama de herramientas y lenguajes. Genera código no solo para JavaScript y TypeScript, sino también para otros lenguajes como C# y Java, y puede usarse con herramientas como Webpack, Gatsby, Next.js, además de soportar frameworks como Apollo, Oracle, Vue, Stencil y Angular.
TypeScript 4.1 introduce la capacidad de realizar manipulaciones de cadenas a nivel del compilador. Esto permite, por ejemplo, tomar definiciones de tipo en cadenas y convertirlas directamente en tipos de TypeScript, facilitando la integración y manipulación de datos entre TypeScript y GraphQL.
Los interesados en contribuir a GraphQL Cogen pueden unirse a la comunidad y colaborar en el desarrollo de nuevos complementos o mejoras. Es posible contactar a Lhothan o a otros miembros del gremio a través del canal de Discord para más información y formas de participación.
Soy Lhothan, el CTO de The Guild, un grupo de desarrolladores de código abierto enfocado en la integración de GraphQL y TypeScript. Mantener el esquema de GraphQL y el código de TypeScript sincronizados es crucial para reducir errores en tiempo de ejecución. GraphQL Cogen es una herramienta flexible que genera tipos y código de TypeScript para mejorar la experiencia del desarrollador y la seguridad de tipos. Vamos a profundizar en los complementos más populares, comenzando con TypeScript, que genera tipos basados en el esquema y las operaciones de GraphQL. También generamos código, como el complemento TypeScript React Apollo.
Hola a todos. Mi nombre es Lhothan. Soy el CTO de un grupo llamado The Guild. Somos un grupo de desarrolladores de código abierto enfocados principalmente en GraphQL y su ecosistema. Hoy estoy aquí para hablar con ustedes sobre GraphQL, TypeScript, la integración de ambos y las herramientas relacionadas. Y también un poco sobre la próxima generación de integración de TypeScript y GraphQL.
Así que empecemos con lo básico. ¿Por qué necesitamos esta integración? Cada lenguaje tiene su propio sistema de tipos. GraphQL tiene su propio sistema de tipos donde se define el esquema de GraphQL. Se llama SDL y luego tenemos TypeScript, que tiene su propio sistema de tipos. Entonces, al escribir el esquema de GraphQL, necesitas mantener sincronizado tu SDL de GraphQL donde defines el esquema real y tu código de TypeScript donde escribes tu implementación real en los resolvers. Puedes hacerlo manualmente y mantenerlo sincronizado manualmente o puedes usar herramientas para eso. Esto es de lo que voy a hablar en este caso. Mantener los dos sistemas de tipos sincronizados es muy importante porque, considera un campo que has eliminado o agregado a tu esquema de GraphQL, debe reflejarse en el código de TypeScript. Por lo tanto, mantener estos dos sincronizados es importante y probablemente reducirá la mayoría de tus errores en tiempo de ejecución relacionados con GraphQL y TypeScript.
Hace unos años tuve problemas con GraphQL y TypeScript, así que comencé con un pequeño proyecto de código abierto llamado GraphQL Cogen. Esto fue hace cuatro años y hoy tenemos una gran comunidad y no solo generamos TypeScript, también generamos C Sharp, Java y mucho más, y generamos más que solo tipos, generamos un código real que puede ayudarte a mejorar tu experiencia de desarrollo y tu seguridad de tipos. Cogen es una herramienta muy flexible, puedes escribir tus propios complementos y configurar la salida para que se ajuste al proceso de generación y agregar tu propio código, así que es bastante genial. Voy a hablar un poco sobre los complementos más populares que tenemos hoy en día que están relacionados con TypeScript. El primero es TypeScript, el que mencioné antes. Este complemento simplemente genera tipos de TypeScript a partir de tu esquema de GraphQL y esto parece muy similar porque los sistemas de tipos son algo similares y nuestro objetivo es generar código en TypeScript que sea lo más similar posible al esquema de GraphQL. Pero el esquema de GraphQL no lo es todo. También tenemos consultas, mutaciones y todo lo que involucra un conjunto de selección, que es una de las características más poderosas de GraphQL, la capacidad de elegir campos y seleccionar exactamente lo que necesitas y no más que eso.
Dado el hecho de que puedes elegir los campos, significa que tus tipos son algo dinámicos y se basan en tu selección de campos. También generamos tipos basados en tus operaciones de GraphQL. Entonces, cuando lo uses en tu código, tendrás una seguridad de tipos completa. Pero esto son solo tipos. También generamos más. Como dije, generamos código. Así que aquí
El complemento genera hooks de React listos para usar basados en Apollo Client y tus operaciones. Compila previamente las operaciones de GraphQL y crea hooks basados en el nombre de la operación. No se necesita especificar manualmente el tipo, ya que los tipos están integrados en los hooks generados. La herramienta también genera una firma completa de Resolvers, utilidades para varios frameworks y admite múltiples lenguajes e integración con varias herramientas. Pruébalo con la demostración en vivo en nuestro sitio web.
Hay una firma de Resolvers. Entonces, si eres un desarrollador de backend que escribe tu esquema y implementación de GraphQL, puedes generar una firma completa de Resolvers a partir de tu esquema e integrar tus propios tipos de modelo en esa firma. Generamos algunas utilidades para Apollo Client, pero no solo eso, también para Oracle, solicitud de GraphQL, Vue, Stencil, Angular, lo que sea. Y no solo es JavaScript y TypeScript, también generamos más para otros lenguajes, e integramos básicamente con todas las herramientas disponibles en este tipo de ecosistema. Entonces, puedes usarlo con Webpack y con Gatsby y Next.js. Y recientemente hemos introducido un nuevo complemento para React query, si lo estás usando. Así que pruébalo, tenemos una demostración en vivo muy agradable en nuestro sitio web, puedes probarlo y ver cuál es la salida basada en la entrada que puedes cambiar o agregar. Así que pruébalo.
We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career
Comments