Skip to content
Compare
Choose a tag to compare

v1.2.0-rc.1

Pre-release
Pre-release

Features

  • Breaking Change: AuthChecker type is now "function or class" - update to AuthCheckerFn if the function form is needed in the code
  • support class-based auth checker, which allows for dependency injection
  • allow defining directives for interface types and theirs fields, with inheritance for object types fields (#744)
  • allow deprecating input fields and args (#794)
  • support disabling inferring default values (#793)
  • support readonly arrays for roles of @Authorized decorator (#935)
  • add sync version of buildTypeDefsAndResolvers function (#803)

Fixes

  • Breaking Change: properly emit types nullability when defaultValue is provided and remove ConflictingDefaultWithNullableError error (#751)
  • allow defining extension on field resolver level for fields also defined as a property of the class (#776)
  • fix throwing error when schema with dynamic default value was built again (#787)
  • fix converting inputs with fields of nested array type (#801)
  • disable broken exposing input types fields under a changed name via @Field({ name: "..." })

Others

  • Breaking Change: update graphql-js peer dependency to ^15.5.0
Compare
Choose a tag to compare

Fixes

  • fix crashing when of union's or interface type's resolveType function returns undefined or null (#731)
  • fix crashing when no reflected type available for fields with params decorators (#724)
  • fix not registering object types implementing interface type when interface type is used as object type field type (#736)
  • properly transform nested array of input type classes (#737)
Compare
Choose a tag to compare

Features

  • allow passing custom validation function as validate option to buildSchema
  • support defining deprecation reason and description of enum members (#714)

Fixes

  • Breaking Change: throw error when wrong type of value provided as arg or input for GraphQLISODateTime and GraphQLTimestamp scalars
  • don't include in schema the fields declared as @FieldResolver when that resolvers classes aren't provided in resolvers array
  • fix grammar in CannotDetermineGraphQLTypeError error message
  • properly inherit extensions from parent class and its fields
Compare
Choose a tag to compare

Features

  • Breaking Change: emit in schema only types actually used by provided resolvers classes (#415)
  • Breaking Change: update graphql-js peer dependency to ^15.3.0
  • Breaking Change: update graphql-query-complexity dependency to ^0.7.0 and drop support for fieldConfigEstimator (use fieldExtensionsEstimator instead)
  • Breaking Change: introduce sortedSchema option in PrintSchemaOptions and emit sorted schema file by default
  • Breaking Change: make class-validator a peer dependency of version >=0.12.0 that needs to be installed manually (#366)
  • Breaking Change: remove CannotDetermineTypeError and make other error messages more detailed and specific
  • Breaking Change: remove legacy array inference - now explicit array syntax ([Item]) is required
  • update TypeResolver interface to match with GraphQLTypeResolver from graphql-js
  • add basic support for directives with @Directive() decorator (#369)
  • add possibility to tune up the performance and disable auth & middlewares stack for simple field resolvers (#479)
  • optimize resolvers execution paths to speed up a lot basic scenarios (#488)
  • add @Extensions decorator for putting metadata into GraphQL types config (#521)
  • add support for defining arguments and implementing resolvers for interface types fields (#579)
  • add { autoRegisterImplementations: false } option to prevent automatic emitting in schema all the object types that implements used interface type (#595)
  • allow interfaces to implement other interfaces (#602)
  • expose createResolversMap utility that generates apollo-like resolvers object
  • support IoC containers which .get() method returns a Promise of resolver instance
  • update deps to newest major versions (tslib, graphql-query-complexity)

Fixes

  • Breaking Change: stop returning null for GraphQLTimestamp and GraphQLISODateTime scalars when returned value is not a Date instance - now it throws explicit error instead
  • Breaking Change: fix transforming and validating nested inputs and arrays (#462)
  • refactor union types function syntax handling to prevent possible errors with circular refs
  • remove duplicated entries for resolver classes that use inheritance (#499)
  • fix using name option on interface fields (#567)
  • fix not calling authChecker during subscribe phase for subscriptions (#578)
  • fix using shared union type in multiple schemas
  • fix using shared interface type in multiple schemas
  • fix calling field resolver without providing resolver class to buildSchema
  • fix generated TS union type for union type of object type classes extending themselves (#587)
  • fix using shared union and interface types in multiple schemas when resolveType is used
  • properly inherit directives while extending @InputType or @ObjectType classes (#626)
  • skip transforming empty array items into input classes

Others

  • Breaking Change: change build config to ES2018 - drop support for Node.js < 10.3
  • Breaking Change: remove deprecated DepreciationOptions interface
  • Breaking Change: remove deprecated direct array syntax for declaring union types
Compare
Choose a tag to compare

1.0.0-rc.3

Pre-release
Pre-release

Features

  • Breaking Change: remove legacy array inference - now explicit array syntax ([Item]) is required
  • Breaking Change: update graphql-js peer dependency to ^15.1.0
  • update deps to newest major versions (tslib, graphql-query-complexity)
Compare
Choose a tag to compare

1.0.0-rc.2

Pre-release
Pre-release

Features

  • expose createResolversMap utility that generates apollo-like resolvers object
  • support IoC containers which .get() method returns a Promise of resolver instance

Fixes

  • properly inherit directives while extending @InputType or @ObjectType classes (#626)
  • skip transforming empty array items into input classes
Compare
Choose a tag to compare

1.0.0-rc.1

Pre-release
Pre-release

Features

  • Breaking Change: emit in schema only types actually used by provided resolvers classes (#415)
  • Breaking Change: update graphql-js peer dependency to ^15.0.0
  • Breaking Change: update graphql-query-complexity dependency to ^0.5.0 and drop support for fieldConfigEstimator (use fieldExtensionsEstimator instead)
  • Breaking Change: introduce sortedSchema option in PrintSchemaOptions and emit sorted schema file by default
  • Breaking Change: make class-validator a peer dependency of version >=0.12.0 that needs to be installed manually (#366)
  • Breaking Change: remove CannotDetermineTypeError and make other error messages more detailed and specific
  • update TypeResolver interface to match with GraphQLTypeResolver from graphql-js
  • add basic support for directives with @Directive() decorator (#369)
  • add possibility to tune up the performance and disable auth & middlewares stack for simple field resolvers (#479)
  • optimize resolvers execution paths to speed up a lot basic scenarios (#488)
  • add @Extensions decorator for putting metadata into GraphQL types config (#521)
  • add support for defining arguments and implementing resolvers for interface types fields (#579)
  • add { autoRegisterImplementations: false } option to prevent automatic emitting in schema all the object types that implements used interface type (#595)
  • allow interfaces to implement other interfaces (#602)

Fixes

  • Breaking Change: stop returning null for GraphQLTimestamp and GraphQLISODateTime scalars when returned value is not a Date instance - now it throws explicit error instead
  • refactor union types function syntax handling to prevent possible errors with circular refs
  • fix transforming and validating nested inputs and arrays (#462)
  • remove duplicated entries for resolver classes that use inheritance (#499)
  • fix using name option on interface fields (#567)
  • fix not calling authChecker during subscribe phase for subscriptions (#578)
  • fix using shared union type in multiple schemas
  • fix using shared interface type in multiple schemas
  • fix calling field resolver without providing resolver class to buildSchema
  • fix generated TS union type for union type of object type classes extending themselves (#587)
  • fix using shared union and interface types in multiple schemas when resolveType is used

Others

  • Breaking Change: change build config to ES2018 - drop support for Node.js < 10.3
  • Breaking Change: remove deprecated DepreciationOptions interface
  • Breaking Change: remove deprecated direct array syntax for declaring union types
Compare
Choose a tag to compare

Fixes

  • fix leaking resolver source code in MissingSubscriptionTopicsError error message (#489)
Compare
Choose a tag to compare

Features

  • rename DepreciationOptions interface to DeprecationOptions and deprecate the old one
  • update deps to newest minor versions (tslib, semver, graphql-query-complexity and glob)
  • support nested array types (@Field(type => [[Int]])) (#393)
  • deprecate the direct array syntax for union types

Fixes

  • fix errors on circular refs in union types (#364) by adding the function syntax (() => TClassTypes)
Compare
Choose a tag to compare

Features

  • add support for creating custom parameter decorators (#329)
  • allow to provide custom subscribe function in @Subscription decorator (#328)