- The Guild Newsletter
- Posts
- The Guild Newsletter #4: the next GraphQL Codegen experience, Yoga v3
The Guild Newsletter #4: the next GraphQL Codegen experience, Yoga v3
September has been a strong month, with advancements in all our projects!
GraphQL Code Generator and Yoga continue to move toward the v3 milestone, along with Mesh preparing for v1, with many documentation improvements and feature additions.
GraphQL Hive also stepped forward on the documentation side with better guides for self-hosted setup.
Finally, Conferences are back, and we are happy to be part of many of them and more to come!
Announcements
GraphQL Code Generator: the new developer experience
While the work on the v3 roadmap continues, two major improvements have been shipped to codegen.
First, GraphQL Code Generator now support and encourage TypeScript configuration file (codegen.ts), graphql-codegen/[email protected].
Moving to TypeScript configuration provides autocompletion and avoids typos, with better integrations with nowadays projects and IDEs.
Another major improvement is the client preset release that delivers the best developer experience when building GraphQL applications.
The newly released `client` preset brings you typed GraphQL Queries and Mutations with no need to import types or other generated code (hooks).
Just use the provided graphql() helper function to define your GraphQL documents and get an instant typed GraphQL experience, will all framework.
Conferences are back, and so are we!
September resumes conferences, and we are happy to be part of many of them!
Laurin talked about GraphQL Code Generator's new developer experience at the GraphQL Conf, summarised by Uri in this Twitter thread 🧵
Uri was also present at the GraphQL Conf, sharing everything you need to know about GraphQL Hive and especially sharing how The Guild is using GraphQL in all of its projects; be ready for some gems content ahead! 💎
We will speak at many conferences in the upcoming months (GraphQL Galaxy, Øredev, and more); stay tuned!
The Guild ecosystem
GraphQL Yoga: v3, Bun support, GraphiQL 2.0
We are pleased to announce that GraphQL Yoga 3 is now available as an alpha release.
Yoga 3 is a major milestone with simplified packaging (a single package for all environments), embedded GraphiQL 2.0, Bun.js support, and more! 🚀
While the complete list of changes can be found in the changelog, here are the major changes to keep in mind:
Drop of Node 12.x support (Node 14.x minimum is required)
a single NPM package for all environments graphql-yoga instead of @graphql-yoga/common and @graphql-yoga/node
Yoga is now fully "GraphQL over HTTP" spec compliant
Yoga, as a subgraph, has complete compatibility against the Apollo Federation Specification
Many documentation improvements (versioned docs)
You can find our Yoga v2 -> v3 migration guide in our documentation.
Please try this new major alpha release, we can't wait to have your feedback!
GraphQL Hive: Open-source improvements, External Composition API
As we continue onboarding new users, some asked for easier self-hosted installation.
We recently released dedicated docker images and documentation, now available from the GraphQL Hive repository.
More information is available in the dedicated "Self-hosting GraphQL Hive" documentation and the announcement blog post below:
Host your own GraphQL Hive instance.
We are also happy to announce that GraphQL Hive supports Apollo Router 1.0 with a dedicated docker image.
Hive also now supports external schema composition, allowing users to build and validate Schema outside of GraphQL Hive.
More detail can be found on the dedicated documentation page.
GraphQL Mesh: documentation improvements, GraphiQL 2.0 support
GraphQL Mesh now relies on Yoga v3, gaining advantages of all its new features and improvements (Bun.js support, GraphiQL 2.0, and more).
Also, on top of many documentation improvements, Mesh documentation now offers a dedicated "Plugins" section that covers many use cases:
Security: Depth limits, Rate limiting
Authentication
Advanced caching
Error handling: Sentry, error masking
Monitoring: Hive
Logging
Tracing: NewRelic, Datadog, StatsD, Apollo Tracing
Finally, the new OpenAPI handler is now GA with a dedicated documentation and migration guide.
The former handler version was based on OpenAPI-to-GraphQL, whereas the new one is based on our JSON Schema handler.
Moving to JSON Schema handler brings better performance and easier future evolution of this source handler.
Please let us know if you need any assistance with migrating (via GitHub Discussions or our website chat).
GraphQL ESLint: Vue and Svelte support, performance improvements
With GraphQL ESLint v3.12.0, our ESLint tool becomes a more multilanguage linter. A new minor update adds support for linting GraphQL documents from vue and svelte files.
Also, this update improves performance for linting code files and adds support for configuring gql, graphql, /* GraphQL */ keywords via GraphQL Config.
The new examples contain configuration vue/svelte projects and configuration for multi-project to lint GraphQL documents from 2 different GraphQL schemas.
`whatwg-node`: Bun support
We stay committed to the Node.js ecosystem by pushing forward the capabilities of our whatwg-node packages, helping in building platform-agnostic JavaScript servers.
@whatwg-node/server now support Bun.js, allowing any JavaScript server library developer to create HTTP servers that can run on any environment!
JavaScript runs everywhere, so should your servers - here is how - The Guild Blog — www.the-guild.dev
A new way to make any Javascript server platform-agnostic.
Releases
[email protected]: ESLint parser, plugin, and set rules for GraphQL
[email protected]: 4.0 is out with support for Angular 14!
GraphQL Inspector v3.4.0: new audit command is available.
As always, we are eager to get your feedback on all those recent releases; please feel free to reach out with any of the mediums listed below.
Stay up to date by following us on Twitter, and don’t hesitate to reach out to us by:
Replying to this issue
Opening an issue on our projects
Chat with us via our websites
Send an email to [email protected]