Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 1.59 KB

20230607.utiliser-graphql-to-elm.md

File metadata and controls

31 lines (19 loc) · 1.59 KB

Utiliser graphql-to-elm

📝 État

Accepté

🩺 Contexte et énoncé du problème

L'application est écrite en Elm. Le backend est accessible via Hasura avec son API GraphQL. Par conséquent, nous devons appeler GraphQL à partir du code Elm (au lieu de Svelte). Cet appel se fait actuellement soit avec Http.get et la requête en chaîne de charactère, soit avec elm-graphql.

L'appel avec Http.get ne fournit que peu de sécurité, on ne s'assure que du format de la donnée au runtime. L'appel avec elm-graphql fournit la garantie à la compilation que la requête correspond au schéma GraphQL. Cependant, il génère beaucoup de code et ralentit considérablement les outils (elm-ls et elm-review). De plus, l'écriture des requêtes doit se faire en Elm et le code à produire est compliqué.

💡 Proposition de solution

Utiliser graphql-to-elm.

Cette librairie génère du Elm grâce à des requêtes GraphQL écrites dans des fichiers .graphql. Donc l'écriture reste simple.

Lors de la génération, elle s'assure que la requête est valide par rapport au schéma. On bénéficie donc de validation à la compilation.

Enfin, le code généré est beaucoup plus petit (4 fois plus petit) que celui généré par elm-graphql et devrait donc soulager les outils d'analyse statique. À terme, plus nous aurons de requêtes plus ce volume de code pourra grandir.

✨ Décision

Nous décidons d'utiliser graphql-to-elm.