All Versions
252
Latest Version
Avg Release Cycle
21 days
Latest Release
753 days ago
Changelog History
Page 18
Changelog History
Page 18
-
v1.5.5 Changes
March 31, 2017๐ Bug Fixes
- ๐ Improve threadsafety of
lazy_resolve
cache, useConcurrent::Map
if it's available #631 - Properly handle unexpeced input objects #638
- ๐ Handle errors during definition by preseriving the definition #632
- ๐ Fix
nil
input for nullable list types #637, #639 - ๐ Handle invalid schema IDL with a validation error #647
- 0๏ธโฃ Properly serialize input object default values #635
- ๐ Fix
as:
on mutationinput_field
#650 - ๐ Fix null propagation for
nil
members of non-null list types #649
- ๐ Improve threadsafety of
-
v1.5.4 Changes
March 22, 2017๐ฅ Breaking Changes
- ๐ Stop supporting deprecated one-argument schema masks #616
๐ Bug Fixes
- 0๏ธโฃ Return a client error for unknown variable types when default value is provided or when directives are present #627
- ๐ Fix validation performance regression on nested abstract fragment conditions #622, #624
- Put back
InternalRepresentation::Node#parent
and fix it for fragment fields #621 - Ensure enum names are strings #619
-
v1.5.3 Changes
March 20, 2017๐ Bug Fixes
- ๐ Fix infinite loop triggered by user input. #620 This query would cause an infinite loop:
query { ...frag } fragment frag on Query { __typename } fragment frag on Query { ...frag }
- Validate fragment name uniqueness #618
-
v1.5.2 Changes
March 16, 2017๐ฅ Breaking Changes
- ๐ Parse errors are no longer raised to the application. #607 Instead, they're returned to the client in the
"errors"
key. To preserve the previous behavior, you can implementSchema#parse_error
to raise the error:
MySchema = GraphQL::Schema.define do # ... parse_error ->(err, ctx) { raise(err) } end
๐ New Features
- โ Add
graphq:enum
generator #611 - ๐ Parse errors are returned to the client instead of raised #607
๐ Bug Fixes
- ๐ Handle negative cursor pagination args as
0
#612 - Properly handle returned
GraphQL::ExecutionError
s from connection resolves #610 - Properly handle invalid nulls in lazy scalar fields #609
- Properly handle invalid input objects passed to enum arguments #604
- ๐ Fix introspection response of enum default values #605
- ๐ Allow
Schema.from_definition
default resolver hashes to have defaults #608
- ๐ Parse errors are no longer raised to the application. #607 Instead, they're returned to the client in the
-
v1.5.1 Changes
March 12, 2017๐ Bug fixes
- ๐ Fix rewrite performance regressions from 1.5.0 #599
- โ Remove unused
GraphQL::Execution::Lazy
initialization API #597
-
v1.5.0 Changes
March 10, 2017๐ฅ Breaking changes
- Only UTF-8-encoded strings will be returned by
String
fields. Strings with other encodings (or objects whose#to_s
method returns a string with a different encoding) will returnnil
instead of that string. #517
To opt into the previous behavior, you can modify
GraphQL::STRING_TYPE
:# app/graphql/my_schema.rb # Restore previous string behavior: GraphQL::STRING_TYPE.coerce_result = ->(value) { value.to_s } MySchema = GraphQL::Schema.define { ... }
- Substantial changes to the internal query representation (#512, #536). Query analyzers may notice some changes:
- Nodes skipped by directives are not visited
- Nodes are always on object types, so
Node#owner_type
always returns an object type. (Interfaces and Unions are replaced with concrete object types which are valid in the current scope.)
See changes to
Analysis::QueryComplexity
for an example migration. Here are some other specific changes:- Nodes are tracked on object types only, not interface or union types
- Deprecated, buggy
Node#children
andNode#path
were removed - Buggy
#included
was removed - Nodes excluded by directives are entirely absent from the rewritten tree
- Internal
InternalRepresentation::Selection
was removed (no longer needed) Node#spreads
was replaced byNode#ast_spreads
which returns a Set
๐ New features
Schema#validate
returns a list of errors for a query string #513implements ...
adds interfaces to object types without inherit-by-default #548, #574GraphQL::Relay::RangeAdd
for implementingRANGE_ADD
mutations #587- ๐
use ...
definition method for plugins #565 - ๐ Rails generators #521, #580
GraphQL::Function
for reusable resolve behavior with arguments & return type #545- ๐ Support for Ruby 2.4 #475
- Relay
node
&nodes
field can be extended with a custom block #552 - ๐ Performance improvements:
- Resolve fragments only once when validating #504
- Reuse
Arguments
objects #500 - Skip needless
FieldResult
s #482 - Remove overhead from
ensure_defined
#483 - Benchmark & Profile tasks for gem maintenance #520, #579
- Fetch
has_next_page
while fetching items inRelationConnection
#556 - Merge selections on concrete object types ahead of time #512
- ๐ Support runnable schemas with
Schema.from_definition
#567, #584
๐ Bug fixes
- ๐ Support different arguments on non-overlapping typed fragments #512
- Don't include children of
@skip
ped nodes when parallel branches are not skipped #536 - ๐ Fix offset in ArrayConnection when it's larger than the array #571
- Add missing
frozen_string_literal
comments #589
- Only UTF-8-encoded strings will be returned by
-
v1.4.5 Changes
March 06, 2017๐ Bug Fixes
- When an operation name is provided but no such operation is present, return an error (instead of executing the first operation) #563
- Require unique operation names #563
- Require selections on root type #563
- If a non-null field returns
null
, don't resolve any more sibling fields. #575
-
v1.4.4 Changes
February 17, 2017๐ New features
Relay::Node.field
andRelay::Node.plural_field
accept a customresolve:
argument #550Relay::BaseConnection#context
provides access to the query context #537- ๐ Allow re-assigning
Field#name
#541 - ๐ Support
return_interfaces
onRelay::Mutation
s #533 BaseType#to_definition
stringifies the type to IDL #539argument ... as:
can be used to alias an argument inside the resolve function #542
๐ Bug fixes
- ๐ Fix negative offset from cursors on PostgresQL #510
- ๐ Fix circular dependency issue on
.connection_type
s #535 - ๐ Better error when
Relay::Mutation.resolve
doesn't return a Hash
-
v1.4.3 Changes
February 08, 2017๐ New features
GraphQL::Relay::Node.plural_field
finds multiple nodes by UUID #525
๐ Bug fixes
- Properly handle errors from lazy mutation results #528
- ๐ Encode all parsed strings as UTF-8 #516
- ๐ Improve error messages #501 #519
-
v1.4.2 Changes
January 23, 2017๐ Bug fixes
- Absent variables aren't present in
args
(again!) #494 - Ensure definitions were executed when accessing
Field#resolve_proc
#502 (This could have caused errors when multiple instrumenters modified the same field in the schema.)
- Absent variables aren't present in