Skip to content

1.5.0

Choose a tag to compare

@dolifer dolifer released this 20 Aug 16:35
· 189 commits to main since this release
3a99511

🧱 Breaking Changes

None. This release introduces new APIs while maintaining backward compatibility with existing query building patterns.

🚀 Major Features

Enhanced Query Builder with Fluent API

• New QueryBuilder: Complete rewrite with fluent syntax for building GraphQL queries programmatically
• Field Definitions: Structured field definitions with metadata support for better query organization
• Query Merging: Intelligent query merging with configurable strategies (MergeByDefault, NeverMerge, MergeByFieldPath)

Advanced Dot Notation Support

• Type-aware Field Paths: Support for specifying field types using dot notation (e.g., "User user.profile.name")
• Array Type Markers: Full support for array types including bare [] markers and typed arrays like Int[]
• Nested Field Resolution: Improved handling of complex nested field structures with proper type inference

Performance Optimizations

• Memory Efficiency: Extensive use of Span<T> and ReadOnlySpan<T> for reduced memory allocations
• Optimized Parameters: Use of in parameters for better performance with large data structures
• Field Caching: Intelligent caching of fields by full path for faster lookups

🔧 Core Improvements

Type System Enhancements

• Enhanced Type Detection: Improved parsing of field types from various formats
• Array Support: Better handling of array and nullable type markers

Field Management

• Metadata Support: Add custom metadata to fields for extended functionality
• Alias Handling: Improved alias support with proper resolution and conflict handling
• Path Resolution: New GetPathTo() method for finding paths to specific fields

Query Processing

• Argument Merging: Smart merging of field arguments with conflict resolution
• Variable Detection: Enhanced variable detection from anonymous objects
• Enum Support: New EnumValue type for handling string-based enum configurations

🛠️ Developer Experience

.NET 9.0 Support

• Multi-targeting: Support for .NET 6.0, 7.0, 8.0, and 9.0
• Latest C# Features: Utilizes latest C# language features for better performance and readability