A weekly newsletter of the best news, articles and projects about GraphQL

GraphQL Foundation Working Group Updates

GraphQL Foundation Marketing Committee

The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the Foundation and the projects. They meet regularly, and welcome participation from Foundation and community members. The meeting agendas and minutes are open and available in meetings. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact operations@graphql.org.

TypeScript migration for GraphQL.js

We are happy to announce that the Typescript migration of the GraphQL.js codebase is done and main is now fully Typescript! Version 16.0.0-alpha.2 was released with the latest main branch. Help us test it out and improve while we progress towards a major release. Now that the migration is behind us, we can integrate new features like stream and defer into main!

GraphQL Foundation Working Group Updates

Advancing no introspection at root of Subscription operation

The group decided to disallow since it doesn’t work in the reference implementation. During the graphql-js implementation some issues were discovered around fragments that are being fixed. Read more here.

Default value coercion update

Currently this is a case where infinite loops can occur. The WG is working to figure out how to avoid this in the spec here.

Defer/stream updates

The official experimental branch of graphql-js/express-graphql. The WG is working to update the initialCount, validation rule in GraphQL.js, and the spec.

Schema Coordinates Spec

The RFC and spec edit have been out for a few months with credit due to everyone who has reviewed those. Last time the field arguments were the discussion there were two main contenders: Query.business(id:) versus Query.business.id. The WG is looking for consensus. The discussion summarized can be found here.

GraphQL Foundation Working Group Updates

GraphQL over WebSockets

This discussion topic proposes taking on the standardization of GraphQL over the WebSocket protocol. Together with that discussion, a new library for the WebSocket protocol has been created. Read the blog post to understand the reasoning behind this work and for links to the protocol RFC and the implementation library.

Tagged Type RFC

This is an RFC for a new "Tagged" type to be added to GraphQL to help address the input polymorphism feature gap. Originally proposed as the @oneField directive, the Tagged type has evolved into an entire new type in the type system, and is currently the lead proposal from the Input Unions Working Group. If you have use-cases for input polymorphism, please take a look. Feedback is very welcome.

Standardize naming for "Field coordinates"

This PR proposes the following 2 RFCs: formalizing the naming and definition of field coordinates and formalizing the way in which a Field Node (and list thereof) contained within a query document can be serialized as field coordinates. The RFC is filed, and the next action is to turn this into an actual spec edit.

Allowing deprecation of inputs

Discussed whether the spec should allow deprecating an input that is required.

@defer/@stream

@lilianammmatos and @robrichard have made big progress on @deferer & @stream. A new experimental version of graphql-js was released with their changes and we want your help to try it out!

Query ambiguity: discussion of replacement terms

In the GraphQL ecosystem the term "query" can seem overloaded and ambiguous - sometimes it refers to the query operation type or a query operation, sometimes it refers to a GraphQL request or a GraphQL document containing operations, sometimes it refers to the contents of selection sets (as in "query reuse"), and sometimes it is used as a verb to refer to the generic act of querying a server for information. The WG discussed the best way to remove this ambiguity and how to move forward.

Custom Scalars subproject

@andimarek and @eapache started the GraphQL Scalars initiative.