馃寠 A GraphQL implementation in Gleam
1# Changelog 2 3## 2.1.4 4 5### Fixed 6 7- Variables are now preserved when executing nested object and list selections. Previously, variables were lost when traversing into nested contexts, causing variable references in nested fields to resolve as empty. 8 9## 2.1.3 10 11### Fixed 12 13- Union type resolution now works for fields wrapped in NonNull (e.g., `NonNull(UnionType)`). Previously, the executor only checked for bare `UnionType`, missing cases where unions were wrapped. 14 15## 2.1.2 16 17### Fixed 18 19- Union type resolution now uses a canonical type registry, ensuring resolved types have complete field definitions 20- Made `build_type_map` public in introspection module for building type registries 21- Added `get_union_type_resolver` to extract the type resolver function from union types 22- Added `resolve_union_type_with_registry` for registry-based union resolution 23 24## 2.1.1 25 26### Fixed 27 28- Inline fragments on union types within arrays now resolve correctly (was skipping union type resolution for `List[NonNull[Union]]` items) 29- Union types are now always traversed during introspection on first encounter, ensuring their `possibleTypes` are properly collected 30 31## 2.1.0 32 33### Added 34 35- Argument type validation: list arguments now produce helpful errors when passed objects instead of lists 36- `isOneOf` field in type introspection for INPUT_OBJECT types (GraphQL spec compliance) 37- Introspection types are now returned in alphabetical order by name 38 39## 2.0.0 40 41### Added 42 43- Support for variable default values (`$name: Type = defaultValue`) 44- Default values are applied during execution when variables are not provided 45- Provided variables override default values 46- New `schema.named_type_name` function to get the base type name without List/NonNull wrappers 47 48### Fixed 49 50- Integer and float literal arguments are now correctly converted to `value.Int` and `value.Float` instead of `value.String` 51- Fragment spread type condition matching now works correctly when parent type is wrapped in NonNull or List 52- Inline fragment type condition matching now works correctly with wrapped types 53- `__typename` introspection now returns the concrete type name without modifiers 54 55### Breaking Changes 56 57- `Variable` type now has 3 fields: `Variable(name, type_, default_value)` instead of 2 58- Code pattern matching on `Variable` must be updated to include the third field 59- Migration: Add `None` or `_` as the third argument when constructing or matching `Variable` 60 61## 1.1.0 62 63### Added 64 65- Support for list types in variable definitions (`[Type]`, `[Type!]`, `[Type]!`, `[Type!]!`) 66 67## 1.0.1 68 69- Initial release