Published by wravery over 5 years ago
Results for empty lists or types with no members should be included in the results. See issue #39 for more details.
Published by wravery over 5 years ago
Results for empty lists or types with no members should be included in the results. See issue #39 for more details.
Published by wravery over 5 years ago
I found bug #37 testing the last release against Relay. I added some asserts to one of the unit tests to protect this field in the future.
Published by wravery over 5 years ago
I found bug #37 testing the last release against Relay. I added some asserts to one of the unit tests to protect this field in the future.
Published by wravery over 5 years ago
The change which breaks compatibility with v1.x in this release is an update to the peg::ast
definition and parsing functions. It's much simpler now, with less std::unique_ptr
juggling and pointer dereferencing.
Other than that, this release should be identical to v1.2.0. It brings the following changes from v1.1.0:
findOperationDefinition
to figure out the operation type.Published by wravery over 5 years ago
Cherry-picking compatible fixes and features from the master branch for v1.2.0:
findOperationDefinition
to figure out the operation type.Published by wravery over 5 years ago
I need to make a couple of breaking API changes to fix the next set of bugs, so I'm separating the latest changes in a v1.1.x branch. The next release should be v2.0.0, unless I need to make any bug fixes in v1.x.x before then.
The new feature that bumped this up from the v1.0.x series is support for subscription arguments and filters based on those arguments. I also fixed a couple of bugs in response::Value
which didn't require breaking changes to the API.
Published by wravery almost 6 years ago
I found and fixed several bugs with a private schema I started working on that includes enum values as resolver parameters, types with multiple interface implementations, and nested JSON objects in some of the test data.
Published by wravery almost 6 years ago
The same bug I fixed in v1.0.1 also exists in the schemagen
list value visitor in DefaultValueVisitor
.
Published by wravery almost 6 years ago
There was a bug in the GraphQL list value parser which expected an intermediate node in the parse tree between the list and the items in the list. Passing list values as variables works around the bug, but if you build a list in the GraphQL query (including inserting a variable value into a list) it would dereference an out of bounds vector element on an empty vector.
Published by wravery almost 6 years ago
All planned features and testing are done, so let's call it complete. 💯
I built it into an Electron app with a Node native module and I got GraphiQL working against that, which uncovered some gaps in the Introspection support. I plan on publishing the native module and the GraphiQL app which consumes it as samples under my own account rather than trying to integrate them as complete projects into this one. Relevant code snippets might make their way into the documentation.
I also added runtime @directive
support. You can declare custom directives in the schema and they will be included in the Introspection. If you include directives in your queries at runtime, they will be passed to each of the getField
interface accessors in a response::Value
2-level map.
To support passing directives and adding future parameters, I defined a parameter block struct service::FieldParams
. The signature of the generated interfaces should not need to change again just to support passing new contextual or environmental parameters into them, which will make it easier to perform non-breaking minor-version updates in the future.
Published by wravery almost 6 years ago
This release incorporates several large refactors since v0.6. It's much closer to a v1.0 release than before, but there are still a couple of Issues to work through before jumping to v1.0.
Highlights include:
std::future<>
and service::RequestState
The downside is that if you have a lot of custom code in your interface implementations or callers, the signatures of most of these methods changed quite a bit, particularly for the async support. I don't anticipate needing to break the interface again between now and v1.0.
Published by wravery almost 6 years ago
"..."_graphql
, much like the graphql
function in Relay which instructs the relay-compiler to preprocess queries embedded in JS/JSX (or TS/TSX for TypeScript).rapidjson::Value
objects included in the results document should be constructed in place using the target document's own allocator.Published by wravery almost 6 years ago
Making the build compatible with package managers such as vcpkg
without requiring additional patches.
Published by wravery almost 6 years ago
This release doesn't have any runtime dependencies on building other projects. All of the dependencies are header-only libraries now.
Published by wravery almost 6 years ago
Published by wravery about 6 years ago
While there's still more to do and it's not ready for v1.0, I think this is ready for use in another project now. So I'm dropping the pre-release flag from this release.
This version updates the documentation and samples, plus some tweaks to the CMake configuration to make it easier to create a vcpkg
port from this release.
Published by wravery about 6 years ago
See the README file for instructions on getting started on Linux or Windows.