Skip to content

Releases: graphql/graphql-js

v14.0.0

30 Aug 15:56
Compare
Choose a tag to compare

Thanks to all contributors for the hard work put into this release, which complies with the latest June 2018 version of the GraphQL Spec

Breaking:

  • Drops support for node v4 and v9, makes sure node v10 is supported (#1338, #1445)
  • Reject invalid scalar value coercion (#1365, #1336)
  • Removes VariablesDefaultValueAllowed validation rule, and ProvidedNonNullArguments became ProvidedRequiredArguments (#1274)
  • Stricter coercion of Scalar Types (#1382)
  • Removes deprecated Introspection fields onOperation, onFragment, and onField (#1385, #1429)
  • GraphQL*Config are now exact types (#1391, #1443)
  • "Schema Change" keys in BreakingChangeType and DangerousChangeType for detecting adding args and input fields changed name (#1492)
  • formatError API changed for error message extensions. To upgrade without changing existing server responses, wrap graphql's formatError:
import { formatError as baseFormatError, /* ... */ } from 'graphql';

{
  // other options
  formatError(error) {
    const { extensions, ...rest } = baseFormatError(error);
    return { ...extensions, ...rest };
  },
}

New:

  • Parse new schema extensions (#1314, #1323)
  • Export SDL AST types (#1315)
  • extendSchema extended with spec-compliant SDL extensions (#1373, #1392, #1441)
  • symbol.toStringTag support (#1297)
  • Expose getOperationRootType(schema, operationAST) (#1345)
  • Package is marked as side-effect free (#1312)
  • validateSchema works with Schema extensions (#1410)
  • validate works on SDL definitions (#1438, #1383)
  • directives can be added to variable definitions, behind experimentalVariableDefinitionDirectives flag (#1437, #1454)
  • ASTNode predicates, like isDefinitionNode and isTypeSystemDefinitionNode (#1459)
  • isRequiredArgument and isRequiredInputField predicates (#1463)

Fixed:

  • Fixes for custom enum types
  • Prettier, Flow and eslint upgrades (#1304, #1319)
  • Babel 7 upgrade (#1350)
  • Introspection query perf improved (#1329)
  • introspectionFromSchema has default options (#1408)
  • buildSchema memory leaks and infinite recursion fixed (#1417, #1427)
  • watch command fixed (#1449)
  • Benchmarking for validation (#1471)

Deprecated:

These will be removed in v15

  • introspectionQuery, use getIntrospectionQuery (#1386)
  • getDescription, use the schema AST node to get descriptions (#1396)
  • isValidJSValue, use coerceValue (#1386)
  • isValidLiteralValue, use validation (#1386)

v14.0.0-rc.2

08 Jun 20:58
9925e50
Compare
Choose a tag to compare
v14.0.0-rc.2 Pre-release
Pre-release

Breaking change reverted:

  • Allows Interfaces to have no implementing Objects (#1376)

v14.0.0-rc.1

08 Jun 04:34
84f41aa
Compare
Choose a tag to compare
v14.0.0-rc.1 Pre-release
Pre-release

NOTE
This is a pre-release. There is a high likelihood there will be more breaking changes introduced prior to the 14.0.0 release.

Breaking:

  • Drops support for node v4, makes sure node v10 is supported (#1338)
  • Reject invalid scalar value coercion (#1365, #1336)
  • Removes VariablesDefaultValueAllowed validation rule, and ProvidedNonNullArguments became ProvidedRequiredArguments (#1274)
  • Requires Interfaces to have at least on implementing Object

New:

  • Parse new schema extensions (#1314, #1323)
  • Export SDL AST types (#1315)
  • extendSchema extended with spec-compliant SDL extensions (#1373)
  • symbol.toStringTag support (#1297)
  • Expose getOperationRootType(schema, operationAST) (#1345)
  • Package is marked as side-effect free (#1312)

Fixed:

  • Fixes for custom enum types
  • Prettier, Flow and eslint upgrades (#1304, #1319)
  • Babel 7 upgrade (#1350)
  • Introspection query perf improved (#1329)

v0.13.2

16 Mar 20:59
Compare
Choose a tag to compare

New:

  • Allow buildSchema() to take options (#1249)
  • Update to Flow v0.68 (#1290)

Fixes:

  • Update iterall (#1254)
  • buildSchema: Make options optional (#1270)

v0.13.1

15 Feb 22:33
Compare
Choose a tag to compare

New:

  • Publish .mjs files for module code to support native esmodules (#1244)
  • Interface type definitions may now be extended with extendSchema (#1222)
  • isValidNameError utility is now exported as a non-throwing alternative to assertValidName (#1237)
  • ExectuableDefinitionNode Flow type is now exported (#1241)

Fixes:

  • extendSchema now preserves (and allows extending) a list of legacy field names which would otherwise be considered invalid (#1235)
  • Replaced a misplaced licensing header (7e68984)

v0.13.0

07 Feb 19:11
Compare
Choose a tag to compare

Breaking:

  • Updated to latest spec for SDL for multiple interface implementations (#1169)

    To continue to support the pre-spec variation, use parse(text, {allowLegacySDLImplementsInterfaces: true})

  • Internal module 'graphql/language/kinds' no longer directly exports enum values #1221

    Not that you were relying on internal modules, were you :)

New:

  • getDescription helper function is now exported (#1165)
  • Allows parsing pre-spec object type SDL with parse(text, {allowLegacySDLEmptyFields: true}) (#1171)
  • Add introspectionFromSchema utility function (#1187)
  • Add lexicographicSortSchema utility function (#1208) (#1220)
  • Allow use of legacy names during schema validation with {allowedLegacyNames: ['__badName']} (#1194)

Fixed:

  • Only trigger "one instance of graphql" error in DEV environments, removing false errors from minified bundles. (#1174)
  • Fix 'astFromValue' to correctly handle integers and strings (#1181)
  • Fix getTypeMap() not including input types used in directives (#1189)
  • Support executeSync with mutations. (#1198)
  • Fix block string printing edge cases (#1190, #1212)
  • Fix SourceLocation incorrect export causing rollup bundling to fail (#1210)
  • Preserve allowedLegacyNames when using extendSchema (#1226) (added since v0.13.0-rc.1)

v0.13.0-rc.1

30 Jan 17:13
Compare
Choose a tag to compare
v0.13.0-rc.1 Pre-release
Pre-release

Breaking:

  • Updated to latest spec for SDL for multiple interface implementations (#1169)

    To continue to support the pre-spec variation, use parse(text, {allowLegacySDLImplementsInterfaces: true})

  • Internal module 'graphql/language/kinds' no longer directly exports enum values #1221

    Not that you were relying on internal modules, were you :)

New:

  • getDescription helper function is now exported (#1165)
  • Allows parsing pre-spec object type SDL with parse(text, {allowLegacySDLEmptyFields: true}) (#1171)
  • Add introspectionFromSchema utility function (#1187)
  • Add lexographicSortSchema utility function (#1208)
  • Allow use of legacy names during schema validation with {allowedLegacyNames: ['__badName']} (#1194)

Fixed:

  • Only trigger "one instance of graphql" error in DEV environments, removing false errors from minified bundles. (#1174)
  • Fix 'astFromValue' to correctly handle integers and strings (#1181)
  • Fix getTypeMap() not including input types used in directives (#1189)
  • Support executeSync with mutations. (#1198)
  • Fix block string printing edge cases (#1190, #1212)
  • Fix SourceLocation incorrect export causing rollup bundling to fail (#1210)

v0.12.3

17 Dec 04:28
Compare
Choose a tag to compare

Fixes:

  • Excluded lock files from deployed npm package

v0.12.2

17 Dec 04:13
Compare
Choose a tag to compare

Fixes:

  • Properly deploy a package on npm which contains es6-modules (#1161)
  • Support 5-year-old legacy GraphQL services (#1162)

v0.12.1

17 Dec 02:36
Compare
Choose a tag to compare

Flow Type Fixes:

  • Removed experimental.const_params Flow option to ensure support for projects which do not enable this option (#1157, #1160)
  • Changed visit() to return any instead of mixed to reduce the scope of the breaking change of adding Flow types for this function.