Skip to content

Releases: graphpql/graphpinator

1.0 rc1

14 Jan 16:29
d1ece60
Compare
Choose a tag to compare
  • Raised minimal PHP version to 8
    • Improves overall code quality and finally allows to add typehints on few rare places where it was not possible before
    • 0.25.x with PHP 7.4 is still supported
  • Fully reworked normalisation of values
    • In previous versions values were validated late - during query execution, which is not a great solution. It also does not comply to GraphQL specs.
  • Fully reworked modules
    • Added four different hooks into execution pipeline, instead of only one. Its is also possible to skip and replace some of the pipeline steps. This allows all new kinds of module functionality - eg. Persisted Queries and Query Cost Validation modules, which are coming soon in future version.
    • This also led to improvements and code cleanup in Upload module.
  • Enhanced directives
    • Added afterResolve function and renamed current resolve to beforeResolve. This allows directives to not only do something before field resolution, but also do something after and work with the resolved value.
    • Added option for directives to validate type on which are used during normalisation.
  • Removed final constructor argument for Field (arguments)
    • Its is now required to use setter method with fluent interface
    • Added static method Field::create in order to improve ergonomics with fluent interface (Removes ugly parenthesis which are necessary when using keyword new)
  • Removed final constructor argument for Argument (default value)
    • Its is now required to use setter method with fluent interface
    • Added static method Argument::create in order to improve ergonomics with fluent interface (Removes ugly parenthesis which are necessary when using keyword new)
  • Where directives
    • New opt-in executive directives to filter resolved list values.
    • This directive does not replace native filtering, which should be implemented by the GraphQL service. The goal is to save bandwidth when client knows its going to throw the data anyways, in cases where this specific filtering is not supported by the service itself.
  • Moved Tokenizer to separate package

Improved error messages in interface constraint validation

09 Jan 19:11
e8b1329
Compare
Choose a tag to compare
v0.25.10

added new error messages to tests

Fixed resolution of lists with nulls

04 Jan 12:21
7aa7850
Compare
Choose a tag to compare
v0.25.9

Fixed bug with null list value

Added duplicate argument exception

07 Dec 16:02
2f46fd3
Compare
Choose a tag to compare
v0.25.8

Added duplicate argument exception

Improved error message for unknown input field

02 Dec 17:21
4d968b6
Compare
Choose a tag to compare
v0.25.7

Added unknown input field exception

Improved value validation flow & messages

21 Nov 16:39
Compare
Choose a tag to compare
  • Improved value validation flow
  • Improved value validation messages, value errors in resolution are not outputed
  • Improved Void type value validation

Fixed objectconstraint::exactlyOne condition in special case

18 Nov 18:28
Compare
Choose a tag to compare
  • Fixed objectConstraint::exactlyOne giving incorrect results when not all conditioned fields included in result

ID input coercion

17 Nov 13:29
Compare
Choose a tag to compare

ID type allows int to be received, but is converted to string. On output, it always needs to be string.

Constraint contravarince/covariance

13 Nov 00:44
a4beb5c
Compare
Choose a tag to compare
  • interface contract now validates contravariance of argument constraints and covariance of field constraints

Improved variable and value errors & removed some dead code

10 Nov 19:36
Compare
Choose a tag to compare