Veamos cada una de sus líneas. En este archivo, estoy diciendo que tome del esquema, este que acabamos de ver, mi GraphQL y genere mi archivo TS generado por origen utilizando el script de tipo graphql-codegen-plugin. En mi paquete de JSON, he tomado este graphql-codegen-cli y el complemento para TypeScript y he generado este script GQL.
Entonces, cuando ejecuto en una nueva terminal, yarn gql, va a generar este archivo source-generated graphql.ts. Toma un poco de tiempo, así que lo he pre-creado. Y aquí tenemos la primera instancia en esta charla de algunos tipos de TypeScript que se crean para nuestro endpoint de GraphQL. Si recuerdas el endpoint, viste que había una consulta que tenía dos cosas, dos all, que es una matriz de cadenas, y un random, que es una sola cadena. Estos tipos son un poco más complicados de lo que esperaba, pero está bien. Y eso es increíble. Podemos generar tipos completos de TypeScript para nuestros esquemas de GraphQL con un solo comando, yarn gql. Y ese es solo uno de los complementos que tenemos disponibles, el de TypeScript. Estos complementos son increíblemente configurables, y tengo enlaces a la documentación al final de estas diapositivas. Puedes generar hooks, componentes, componentes de orden superior, todo tipo de cosas locas para tu código.
Ahora, aquellos de ustedes que usan archivos .graphql pueden haber experimentado esto, pero para aquellos que no lo hacen, pueden crear un archivo .graphql para sus consultas de GraphQL y obtener un bonito resaltado de sintaxis y características de ejecución del editor IDE en él. Me gusta hacer esto, porque facilita que mi generación de código GraphQL cree funciones, componentes y tipos para mí. En este archivo queries.graphql, he dicho que en mi aplicación me gustaría tener dos consultas disponibles. Obtengo la consulta all, que devuelve todo, y la consulta random, que devuelve aleatorio. He configurado un archivo gql operations para mi archivo code gen dash operations yaml, que examina estos documentos, estas consultas.graphql, y agrega este complemento de operaciones de TypeScript. Entonces, si hago yarn gql, olvidé el comando, gql operations, ahí lo tenemos, y echo un vistazo a mi archivo de operaciones GraphQL, aquí vemos que no solo tengo tipos para todas mis consultas, similares a antes, ahora tengo tipos para mis consultas específicas, estas muy específicas que he definido en mi archivo GraphQL. Mi consulta random está específicamente tomando una cadena aleatoria, o mejor dicho, devolviendo una cadena aleatoria. Sus variables son, esta es otra forma de decir nada. Eso es asombroso. Ahora, si tengo código que necesita interactuar con mis consultas de GraphQL, puedo tener tipos generados automáticamente para los tipos de retorno de esas consultas, lo cual es súper útil. Puede que estés pensando, está bien, eso es agradable, has generado tipos para cosas, podrías haberlos escrito a mano. ¿Cómo son realmente útiles estos archivos .graphql? ¿Cómo se utilizan realmente en algo bueno? Para mostrarte eso, ahora presentaré Apollo, que es un conjunto fantástico de herramientas y CLIs y trucos para GraphQL. Apollo proporciona un conjunto de herramientas para administrar GraphQL, y en particular hoy vamos a ver sus áreas de generación de código, la forma en que interactúa e integra con GraphQL code-gen. Y no quiero engañarte, hay muchas cosas geniales en Apollo. Cada una de las cuales honestamente podría tener una gran lista de charlas de conferencias, cosas de servidor, paneles de control para tus implementaciones, federación para unificar múltiples puntos finales de GraphQL. Es increíble la cantidad de cosas que han hecho, y muy doloroso poder hablar en este tiempo limitado solo de una. Pero así es la vida.
Comments