NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1070 most downloaded on npm
A Query Language and Runtime which can target any service.
Last release 1 months ago
28 Aug 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 44 of 45 stable releases
216 versions withdrawn
withdrawn after publishing
12 years old
300 releases · first in 2015
All validation rules are now exported directly
New:
Fixes:
new GraphQLError() (#829)Spec Compliance:
Eliminate false positives reported by findArgChanges (#783).
findArgChanges (#783).One column per quarter.
The findBreakingChanges validation now reports breaking changes made to arguments (#701).
isLeafType check: it no longer performs named type unwrapping and is consistent with the other isCompositeType/isAbstractType checks (#697).console.warn rather than console.error (#717).findBreakingChanges validation now reports breaking changes made to arguments (#701).separateOperations module (#710).Downgrade error to warning for non-spec-compliant use of non-meta fields starting with __ (#692).
__ (#692).default) being used as properties (#693).Added findDeprecatedUsages() #676
New:
Fixes:
assertXXXType() functions help ensure type-correct code using graphql
New:
assertXXXType() functions help ensure type-correct code using graphql (#570)toJSON() and inspect() methods on all GraphQL types for easier debugging (#578)Fixes:
null default (#569)GraphQL parser now returns clearer error messages
Fixes:
GraphQL.js v0.8.0 is now compliant with the most recent version of the GraphQL specification! This release is also the first to include flow types in
GraphQL.js v0.8.0 is now compliant with the most recent version of the GraphQL specification! This release is also the first to include flow types in the NPM package, which should make it easier to use GraphQL in a well typed way. It also includes many new utilities and small improvements. Thanks to everyone who helped with this release!
Breaking & Spec Changes:
info.path value is now a Linked List instead of an Array (#562)info.fieldASTs value has been renamed to info.fieldNodes (#554)formatError now includes the path of field errors (#561)New:
null value as a field argument. (#544)printType lets you print a single GraphQL type using the experimental schema language (#558)defaultResolver, the field resolver used when one is not provided, is now available (#527)Nothing published for this version
Nothing published for this version
Nothing published for this version
Adds utility for comparing schema for breaking changes
New:
resolveType function may return a string type name instance of an instance (#509)Fixes:
Adds isDeprecated field to type definition API, making it easier to use within tools (#496 @asiandrummer)
New:
parseType method, which allows for parsing type references independently of whole GraphQL documents (#506)isDeprecated field to type definition API, making it easier to use within tools (#496 @asiandrummer)Fixes:
Thanks to many contributors, GraphQL v0.7.0 contains many improvements and a few new utilities for those building tools using graphql-js.
Thanks to many contributors, GraphQL v0.7.0 contains many improvements and a few new utilities for those building tools using graphql-js.
Most exciting is that the schema language is now more fully featured than ever and you can create new usable schemas directly from that language, making GraphQL easier to use than ever. Huge thanks to @lacker for his vision and effort in making this happen.
Breaking:
args and context, allowing for more powerful resolvers on your existing data objects (#468 @lacker)New:
schema declaration if their root types are named Query and Mutation (#470)New Utilities:
buildSchema() is a utility for creating a usable GraphQLSchema directly from the GraphQL schema language (#471 @lacker)separateOperations() is a utility for splitting up a GraphQL document with many operations into multiple smaller documents with one operation each (#456)Fixed:
Thanks to the excellent contributions from community members both in the form of code, careful review, and thoughtful discussion. This version of Grap
Thanks to the excellent contributions from community members both in the form of code, careful review, and thoughtful discussion. This version of GraphQL fixes a handful of issues
New:
List fields can now return any iterable collection, not limited to Array, including Backbone.Collection, or Immutable.js Lists. (#449, #300 @mwschall)Fixed:
astFromValue() now requires a Type as a second parameter and properly serializes Enums with different internal values. (#435 @nodkz)JSON.stringify() will now produce a value which is compliant with the GraphQL spec. (#426 @bnewtonius)Int or Float which are not representable by those types, improving debugability and spec compliance. (#391 @stubailo)Builds on npm are now smaller and dependency-free! This should make graphql easier to use in clients like Apollo and Relay.
Builds on npm are now smaller and dependency-free! This should make graphql easier to use in clients like Apollo and Relay.
New:
path property indicating the position in the response which produced the error. (#396)Fixes:
This version introduces directives to the (still experimental) schema language and introduces a @deprecated directive for marking deprecated fields. I…
This version introduces directives to the (still experimental) schema language and introduces a @deprecated directive for marking deprecated fields. It also improves validation error messages, thanks to @yuzhi and @robzhu.
New:
@deprecated directive (#384)Fixes:
@skip and @include (#380)This version is the first reference implementation fully compatible with GraphQL — April 2016. In addition to any relevant breaking changes from the s…
This version is the first reference implementation fully compatible with GraphQL — April 2016. In addition to any relevant breaking changes from the spec, it also has made some breaking changes to its API.
Thanks so much to those who contributed issues and pull requests for your help in improving GraphQL!
Breaking:
graphql and execute functions now accept a context parameter which is distinct from rootValue and available as the third argument to all resolve functions. The additional information is now the fourth argument to resolve functions. Any resolve function which currently uses the third argument will need to be updated in order to use this version of graphql-js. (#326)new GraphQLSchema({ types: [...] }). Types which implement an interface but are otherwise not referenced as a field return type are no longer automatically added to the Schema! Provide types like this directly to new GraphQLSchema to ensure they are included in order to use this version of graphql-js. This fixes a long-standing bug which made it difficult to build multiple related Schema with the same type instances. (#327)New:
Fixes:
@skip and @include are now commutative. (#335) (https://github.com/graphql/graphql-js/commit/47f87fa701cb33fc1fb0ca65b4668c7a14a5ad11)enter and leave when editing the root node in an AST (#298)Many breaking changes which have been planned for some time were introduced in the last few weeks. This beta release should help you test support. A f…
Many breaking changes which have been planned for some time were introduced in the last few weeks. This beta release should help you test support. A full description of changes will be outlined in the final release, please refer to the commit history for detailed information.
Adds validator to ensure variable names are unique
New:
Fix a case where the AST printer could erroneously exclude information from anonymous operations
Fixes:
Utilities for comparing GraphQL types are now exported directly.
New:
Fixes:
u2028 or u2029 characters, to comply with the spec. This is technically breaking, but these are so rare that I doubt anyone will encounter this.The full GraphQL API is now exported from the top module. If you're building a tool that uses GraphQL.js, hopefully this makes it easier to import and
New:
List returns something that is not a list, the error will include the name of the type and field. (#276)Original errors can now be retrieved from any GraphQLError with error.originalError #251.
New:
error.originalError #251.visitWithTypeInfo now supports visitors which edit or break-early.visitInParallel now experimentally supports visitors which edit or break-early.Fixes:
visitInParallel now correctly skips subtrees when a visitor returns false #254.import { extendSchema } from 'graphql/utilities allows extending an existing schema with the GraphQL type definition language
New:
import { extendSchema } from 'graphql/utilities allows extending an existing schema with the GraphQL type definition language (#227)Fixes:
Experimental customizable validation
New:
Validator could false positive and be overly verbose when spreading an unknown fragment
Fixes:
buildClientSchema() now supports deprecated fields #216
New:
buildClientSchema() now supports deprecated fields #216concatAST() utility added, which helps support validation of graphql fragments spread across multiple sources (3a6b4d130f225c275cba3027245ffaff0f4b7799)Fixes:
Broadened legal use of interfaces to allow for additional arguments on implementing fields (see https://github.com/facebook/graphql/pull/110)
New
Supports subscription in the IDL grammar and Schema representation. There is minimal support for subscriptions in the executor - at this point should
New:
subscription in the IDL grammar and Schema representation. There is minimal support for subscriptions in the executor - at this point should still be considered experimental.Validators are aware of inline fragments without type conditions
Fixes:
Operations without names are accepted
Follows GraphQL October
New:
Fixes:
graphql/utilitiesEarly error if deprecation API is misused.
New:
Error object to indicate resolution failure. They can also return Arrays where only certain indices contain Error objects. (#178)getOperationAST() utility added (f66ddf55f93010f7e2ca4ca717d522d4d0d4b12b)Fixes:
Syntax errors related to parsing of 'extend type' declaration #166
Fixes
[Experimental] GraphQL parser/visitor now supports experimental type definition language.
New:
subscription as an operation kind keyword.Fixes:
Name for type, field, and argument names. #145Improves error messaging for Syntax errors.
Fixes:
Asserts that the GraphQLSchema and GraphQLType types are properly constructed, following the "validation" rules defined in the GraphQL Spec
New/Breaking:
graphql/type/validation submodule.Fixes:
isTypeOf is now called (if defined) to assert that GraphQL object types are executing against the correct values #38
Breaking/New:
isTypeOf is now called (if defined) to assert that GraphQL object types are executing against the correct values #38resolve functions now have a new API: resolve(value, args, info), where info is an object which contains the same information which used to be separate arguments, and includes more useful stuff! https://github.com/graphql/graphql-js/blob/master/src/type/definition.js#L359graphql() no longer formats its errors. result.errors is now a list of GraphQLError instances, which provides useful information including stack traces.null for these arguments and fields.coerce and coerceLiteral have been renamed to serialize and parseLiteral respectively.parseValue which is used when interpreting variable values of that type. Previously coerce was being reused for this purpose.Fixed:
Adds all validation rules for uniqueness recently added to the GraphQL spec.
New:
Fixed:
graphql.Fix issue with buildASTSchema when floats are used.
Fixes:
Update print-schema script to work with refactored schema module.
Fixes:
print-schema script to work with refactored schema module.Temporary push to fix mismatch between package.json and tags.
Temporary push to fix mismatch between package.json and tags.
Fix case reported by @steveluscher where overlapping fragments could incorrectly invalidate.
Fixes:
Removes flow comments from npm published JS. Unfortunately the flow-comment transpiler is too buggy at this point in time.
Fixes:
Flow types are included in the npm release in the form of flow-comments. Flow will find and utilize these when you install graphql-js via npm, and if
New:
graphql/type.graphql/language/schema for parsing and working with the GraphQL schema language.graphql/utilities was included which adds a lot of useful functions for building client tools.
submodules.Nothing published for this version
GraphQL submodules are now directly accessible as public API.
New:
GraphQL submodules are now directly accessible as public API.
import { ... } from 'graphql/language';
No changes, just testing auto-publish from Travis CI
No changes, just testing auto-publish from Travis CI
Fixes: - Update dependencies - Read files correctly for tools
Fixes:
Adds schema printer tool which accepts schema definition files and prints the result of an introspection query against that schema.
New:
Adds Schema Definition Language Parser
New:
Fixed:
Validator could result in unhelpful error for some invalid queries
Fixed:
Float parsing rules have expanded to match JSON grammar #68
New:
Fixed:
null can no longer be used as a GraphQL value.on as a fragment nameCommunity crowd-sourced spell-check.
Fixed:
Updated grammar for Directives. @skip and @include directives are now available.
New:
@skip and @include directives are now available.Community crowd-sourced spell-check.
Fixed:
This is the initial public release to npm which includes the GraphQL core functionality as described in the spec.
This is the initial public release to npm which includes the GraphQL core functionality as described in the spec.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →