github graphql-compose/graphql-compose v4.0.0

latest releases: v9.0.10, v9.0.9, v9.0.8...
6 years ago

4.0.0 (2018-04-16)

This release contains big improvement for solving hoisting problems with types which import each other.

Breaking changes may or may not hit your plugins built on top of graphql-compose. All my plugins already updated and fixes were very small. Breaking changes hit only plugins and did not hit my apps code. So most users may upgrade graphql-compose and its plugins without any code changes.

Before 4.0.0 graphql-compose keep field configs in graphql-js format. Now it keeps it in own format, which allows changing any fields or args without resolving the whole type definition. You may safely wrap in thunk (closure, arrow function) any fieldConfig, argConfig or just type property in these configs. They will be fully resolved by graphql-js on startup phase, or partially when you make additional transformations of desired fields or args. In most cases, it helps to avoid hoisting problems with keeping the convenient ability of type transformations.

Features

  • TypeComposer: add methods getFieldArgType(), getFieldConfig() (08b6897)
  • TypeComposer: improve "hoisting problem" tenacity, improve flowtype defs (f10be34)
  • InputTypeComposer: add getFieldConfig() method (1f9891b)
  • InputTypeComposer: improve "hoisting problem" tenacity, improve flowtype defs (dcca7d0)
  • Resolver: add getArgConfig(), extendArg() methods (a6b15eb)
  • Resolver: improve "hoisting problem" tenacity, improve flowtype defs (a6a3092)
  • TypeMapper: createType() method now returns same type for equal TypeDefinitionString (3d14dc1)
  • toInputObject: use new TypeComposer.getFieldConfig() method (fc58b69)
  • configAsThunk: add resolveArgConfigAsThunk() method. (ebc9583)

BREAKING CHANGES

  • TypeComposer: TypeComposer.getField() and TypeComposer.getFields() now return
    ComposeFieldConfig instead of GraphQLFieldConfig. Use new InputTypeComposer.getFieldConfig() method if you want to get GraphQLFieldConfig.
  • InputTypeComposer: InputTypeComposer.getField() and InputTypeComposer.getFields() now return
    ComposeInputFieldConfig instead of GraphQLInputFieldConfig. Use new
    InputTypeComposer.getFieldConfig() method if you want to get GraphQLInputFieldConfig.
  • Resolver: Resolver.type property now keep ComposeOutputType.
    Use Resolver.getType() method if you want to get GraphQLOutputType.
  • Resolver: Resolver.getArg() and Resolver.getArgs() now return
    ComposeFieldConfigArgument instead of GraphQLFieldConfigArgument. Use
    new Resolver.getArgConfig() method if you want to get
    GraphQLFieldConfigArgument.
  • toInputObject: convertInputObjectField() now get and return
    GraphQLType instead of FieldConfig.

Don't miss a new graphql-compose release

NewReleases is sending notifications on new releases.