-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve sources of variable values #3811
Merged
yaacovCR
merged 4 commits into
graphql:main
from
yaacovCR:variable-value-sources-rebased
Sep 29, 2024
Merged
Preserve sources of variable values #3811
yaacovCR
merged 4 commits into
graphql:main
from
yaacovCR:variable-value-sources-rebased
Sep 29, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
✅ Deploy Preview for compassionate-pike-271cb3 ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Hi @yaacovCR, I'm @github-actions bot happy to help you with this PR 👋 Supported commandsPlease post this commands in separate comments and only one per comment:
|
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
from
December 31, 2022 20:37
89c7b8d
to
a24779c
Compare
Merged
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
from
January 1, 2023 19:37
a24779c
to
9e6cf99
Compare
I guess this should technically be a BREAKING CHANGE as the signature changes for |
yaacovCR
added
PR: breaking change 💥
implementation requires increase of "major" version number
and removed
PR: internal 🏠
labels
Jan 12, 2023
mjmahone
reviewed
Jan 12, 2023
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
2 times, most recently
from
January 31, 2023 19:47
65145f9
to
ce33974
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
5 times, most recently
from
February 6, 2023 12:53
12f67c0
to
d8feffe
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
2 times, most recently
from
May 31, 2023 11:38
d8486ae
to
2211b7a
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
from
March 20, 2024 11:25
2211b7a
to
9f85bc3
Compare
Merged
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
from
September 15, 2024 10:37
9f85bc3
to
2906851
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
4 times, most recently
from
September 15, 2024 11:43
9dfe0a9
to
3d8be34
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
4 times, most recently
from
September 15, 2024 14:17
9e7a08b
to
12f30ec
Compare
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
6 times, most recently
from
September 17, 2024 13:56
2fe5343
to
55b9361
Compare
JoviDeCroock
approved these changes
Sep 18, 2024
JoviDeCroock
approved these changes
Sep 28, 2024
By way of introducing type `VariableValues`, allows `getVariableValues` to return both the coerced values as well as the original sources, which are then made available in `ExecutionContext`.
breaking change, have to do it in v17 or would have to wait until v18
yaacovCR
force-pushed
the
variable-value-sources-rebased
branch
from
September 28, 2024 21:14
958681c
to
c3e220d
Compare
yaacovCR
added a commit
that referenced
this pull request
Sep 29, 2024
[#3065 rebased on main](#3065). Depends on #3811 @leebyron comments from original PR: > **Provides the "Value to Literal" methods in this [data flow chart](https://user-images.githubusercontent.com/50130/118379946-51ac5300-b593-11eb-839f-c483ecfbc875.png).** > > * Adds `valueToLiteral()` which takes an external input value and translates it to a literal, allowing for custom scalars to define this behavior. > > **This also adds important changes to Input Coercion, especially for custom scalars:** > > * The value provided to `parseLiteral` is now `ConstValueNode` and the second `variables` argument has been removed. For all built-in scalars this has no effect, but any custom scalars which use complex literals no longer need to do variable reconciliation manually (in fact most do not -- this has been an easy subtle bug to miss). > This behavior is possible with the addition of `replaceVariables` Changes to the original: 1. Instead of changing the signature of `parseLiteral()`, a new method `parseConstLiteral()` has been added with the simpler signature. `parseLiteral()` has been marked for deprecation. 2. `replaceVariables()` has access to operation and fragment variables. Co-authored-by: Lee Byron <lee.byron@robinhood.com>
yaacovCR
added a commit
that referenced
this pull request
Oct 27, 2024
[#3049 rebased on main](#3049). This is the last rebased PR from the original PR stack concluding with #3049. * Rebased: #3809 [Original: #3092] * Rebased: #3810 [Original: #3074] * Rebased: #3811 [Original: #3077] * Rebased: #3812 [Original: #3065] * Rebased: #3813 [Original: #3086] * Rebased: #3814 (this PR) [Original: #3049] Update: #3044 and #3145 have been separated from this stack. Changes from original PR: 1. `astFromValue()` is deprecated instead of being removed. @leebyron comments from #3049, the original PR: > Implements [graphql/graphql-spec#793](graphql/graphql-spec#793) > > * BREAKING: Changes default values from being represented as an assumed-coerced "internal input value" to a pre-coerced "external input value" (See chart below). > This allows programmatically provided default values to be represented in the same domain as values sent to the service via variable values, and allows it to have well defined methods for both transforming into a printed GraphQL literal string for introspection / schema printing (via `valueToLiteral()`) or coercing into an "internal input value" for use at runtime (via `coerceInputValue()`) > To support this change in value type, this PR adds two related behavioral changes: > > * Adds coercion of default values from external to internal at runtime (within `coerceInputValue()`) > * Removes `astFromValue()`, replacing it with `valueToLiteral()` for use in introspection and schema printing. `astFromValue()` performed unsafe "uncoercion" to convert an "Internal input value" directly to a "GraphQL Literal AST", where `valueToLiteral()` performs a well defined transform from "External input value" to "GraphQL Literal AST". > * Adds validation of default values during schema validation. > Since assumed-coerced "internal" values may not pass "external" validation (for example, Enum values), an additional validation error has been included which attempts to detect this case and report a strategy for resolution. > > Here's a broad overview of the intended end state: > > ![GraphQL Value Flow](https://user-images.githubusercontent.com/50130/118379946-51ac5300-b593-11eb-839f-c483ecfbc875.png) --------- Co-authored-by: Lee Byron <lee@leebyron.com>
yaacovCR
added a commit
to yaacovCR/graphql-js
that referenced
this pull request
Nov 26, 2024
graphql#3811 internally preserved the sources of variable values so that we could properly replace variables within complex scalars, but it also exposed this within the GraphQLResolveInfo interface available to resolvers in a breaking manner, by changing the type of the `variableValues` property. This PR reverts the change to the `variableValues` property, but exposed the extended variable information under a new `variableValuesWithSources` property.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#3077 rebased on main.
Depends on #3810
@leebyron comments from original PR: