- add postinstall script for printing info on console about supporting the project
- add support for setting default nullability for fields and return types (#297)
- add
skipCheck
option inbuildSchema
to disable checking the correctness of a schema
- fix generating plain resolvers for queries and mutations (compatibility with Apollo client state)
- add support for emitting schema file in not existing directory (#269)
- drop support for Node.js v6 (end of LTS in April 2019)
- fix typings discovery support for WebStorm (#276)
- allow for returning plain objects when using
ObjectType
s that implementsInterfaceType
s or extends other classes (#160)
- Breaking Change: make
graphql-js
packages a peer dependencies, bumpgraphql
to^14.1.1
and@types/graphql
to^14.0.7
(#239) - Breaking Change: remove
useContainer
function and allow to register container bybuildSchema
options (#241) - Breaking Change: change the default
PrintSchemaOptions
optioncommentDescriptions
to false (no more#
comments in SDL) - add support for passing
PrintSchemaOptions
inbuildSchema.emitSchemaFile
(e.g.commentDescriptions: true
to restore previous behavior) - add
buildTypeDefsAndResolvers
utils function for generating apollo-liketypeDefs
andresolvers
pair (#233) - add support for generic types (#255)
- Breaking Change: remove the
formatArgumentValidationError
helper as it's not compatible and not needed in new Apollo Server (#258) - fix calling return type getter function
@Field(type => Foo)
before finishing module evaluation (allow for extending circular classes usingrequire
) - fix nullifying other custom method decorators - call the method on target instance, not the stored reference to original function (#247)
- fix throwing error when extending non args class in the
@ArgsType()
class - prevent unnecessary conversion of an object that is already an instance of the requested type (avoid constructor side-effects)
- add support for default values in schema (#203)
- add support for lists with nullable items (#211)
- fix browser shim (compatibility with polyfills for decorator support)
- Breaking Change: upgrade
graphql
to^14.0.2
,graphql-subscriptions
to^1.0.0
and@types/graphql
to^14.0.2
- update all other dependencies
- drop support for Node.js v9
- add capability to emit the schema definition file (*.gql) as a
buildSchema
option - add
emitSchemaDefinitionFile
helper function for emitting the schema SDL
- Breaking Change: change
ClassType
type and export it in package index - Breaking Change: refactor generic
createUnionType
to remove the 10 types limit (note: requires TypeScript >=3.0.1) - add support for subscribing to dynamic topics - based on args/ctx/root (#137)
- add support for query complexity analysis - integration with
graphql-query-complexity
(#139)
- fix missing loosely typed overload signature for
createUnionType
(remove the 10 types limit)
- make
class-validator
a virtual peer dependency and update it to newest0.9.1
version - add support for creating scoped containers (#113)
- add reflect-metadata checks and informative error if no polyfill provided
- update
@types/graphql
to latest version (^0.13.3
)
- fix throwing error when
of => objectType
wasn't provided in abstract resolver class - fix calling
Object.assign
with boolean arguments (#111)
- add support for using type classes in browser (configure webpack to use decorators shim)
- fix swallowing false argument value (#101)
- fix bug with overriding methods from parent resolver class (#95)
- Breaking Change: remove deprecated
ActionData
andFilterActionData
interfaces - add support for resolver classes inheritance
- add
name
decorator option for@Field
and@FieldResolver
decorators that allows to set the schema name different than the property name
- make auth checker feature generic typed (default
string
for backward compatibility)
- attach
MetadataStorage
to global scope (support multiple packages/modules) - rename and deprecate
ActionData
andFilterActionData
interfaces toResolverData
andResolverFilterData
- add support for returning null instead of throwing authorization error (
authMode
property ofbuildSchema
config) - add support for generating object type field in schema from method with
@FieldResolver
- fix bug when converting object scalars to target class instance (#65)
- add support for creating and attaching middlewares, guards and interceptors to fields and resolvers
- Breaking Change: remove deprecated decorators with
GraphQL
prefix and{ array: true }
type option
- add
buildSchemaSync
function to build the schema synchronously (unsafe! without additional errors checks) - update package dependencies
- Breaking Change: update
@types/graphql
to0.13.0
- decorator option
validate
is now merged withbuildSchema
'svalidate
config instead of overwriting it
- fix bug with extending non-TypeGraphQL classes
- add support for GraphQL subscriptions using
graphql-subscriptions
- update package dependencies
- deprecate
{ array: true }
type option
- add
@Info()
decorator for injecting GraphQL resolve info to resolvers - add support for injecting parts of
root
andcontext
objects with@Root("field")
and@Ctx("field")
decorators
- add base support for GraphQL enums using TypeScript enums
- add support for defining GraphQL unions
- add support for importing resolvers from file path glob
- deprecate decorators with
GraphQL
prefix - use@ArgsType
,@InputType
,@InterfaceType
,@ObjectType
and@Resolver
instead
- fix not working array type notation in circular dependencies (correct thunk generation)
- add authorization feature -
@Authorized
decorator andauthChecker
function in schema options (see docs) - add support for defining array type using mongoose-like notation
[Type]
- Breaking Change: remove deprecated
@GraphQLArgumentType
decorator - use@GraphQLArgsType
instead
- add support for defining GraphQL interfaces and implementing it by object types
- add support for extending input, args, object and interface types classes
- add support for implementing GraphQL interfaces without decorators duplication
- Breaking Change: make
buildSchema
async - now it returns a Promise ofGraphQLSchema
- rename and deprecate
@GraphQLArgumentType
decorator - use@GraphQLArgsType
instead
- allow for no args in
@GraphQLResolver
decorator to keep consistency with other resolver classes
- create instance of root object when it's type provided in resolver
- change
Date
scalar names toGraphQLISODateTime
andGraphQLTimestamp
- support only
Date
objects (instances) serialization inGraphQLTimestamp
(and inGraphQLISODateTime
too) - update package dependencies
- add test suite with 92%+ coverage
- Breaking change: switch array
nullable
option behavior from[Type]!
to[Type!]
- add more detailed type reflection error message (parameters support)
- fix
ResolverInterface
resolver function type (allow additional parameters) - add support for named param in
@GraphQLResolver
lambda and for object class as param
- add basic support for automatic arguments and inputs validation using
class-validator
- add interface
ResolverInterface
for type checking of resolver class methods (field resolvers) - update
graphql
dependency from^0.12.3
to^0.13.0
- fix default values for arg/input fields (class property initializers) - use
new
instead ofObject.create
- add support for descriptions in schema (types, args, queries, etc.)
- add support for declaring depreciation reason on object fields and queries/mutations
- fix scalars ID alias (GraphQLID not GraphQLString)
- add support for Date type (built-in scalar)
- add support for custom scalars (and mapping it to TS types)
- change
@Context
decorator name to@Ctx
- fix missing type args in schema when declared in field resolver
- fix missing resolver function when defined as type field method
- fix creating instances of root object when internal fields are Promises (switch from
plainToClass
to vanilla JS) - fix converting field and resolvers args errors while converting gql objects (weird
prototype
stuffs)
- add support for omitting return type when use type options, in selected decorators (
@Field
,@Arg
)
- fix class getter resolvers bug - missing fields from prototype (
plainToClass
bug)