-
Notifications
You must be signed in to change notification settings - Fork 133
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
Error in datasource when querying using triple quotes syntax containing quotes or newlines #839
Comments
For now I've worked around it with: input = bytes.ReplaceAll(input, []byte("\n"), []byte("\\n")) ... in my datasource before I parse. But this should probably be done earlier. Thanks. |
An update, it's not just newlines. In a query {
foo(bar:
"""
a"bc
""")
} I can't workaround this case easily either, because the outer JSON quotes would need to remain unescaped. |
Hi @mattjohnsonpint, great catch! Would you be open to create a PR? |
@StarpTech - PR created: #843 |
Fixes #839 Note, I considered using `gjson.AppendJSONString` for better performance, but it currently doesn't have an option to disable escaping of HTML characters - which I think would be undesirable here. See tidwall/gjson#362 --------- Co-authored-by: Sergiy 🇺🇦 <[email protected]>
Given a schema such as:
I can accept queries like this:
or:
or with variables (containing any newlines or not):
But I believe I should be able to also do this, and it fails:
I'm using a custom data source with a
JsonVariableRenderer
.With some trace debugging, I believe the problem is here:
graphql-go-tools/v2/pkg/ast/ast_value.go
Lines 146 to 147 in 3c4cb17
Since the string value returned by
d.StringValueContentBytes(value.Ref)
contains a raw newline character, and it's only wrapping it in quotes, the resulting value doesn't have the newline escaped as"\n"
to be valid JSON.The failure occurs in my custom datasource at the start of the
Load
function when I try to unmarshal theinput
string. It should be valid JSON, but in this case it's malformed.A minimal repro will take some time if you need one, but I thought I'd report it in the meantime. Thanks.
The text was updated successfully, but these errors were encountered: