#137 Escape Newlines in GraphQL String Values
There's probably a more elegant way to accomplish this, but it's working for me.
I don't see any test coverage for the BaseClasses resource, but point me in that direction if I'm wrong.
You can use JsonEncodedText.Encode instead. If there is a new line in GraphQL values it should be
"Value" : "Line1\nLine2" or "Value" : """Line1 Line2"""
As is the generator, generate it "Value": "Line1 Line2"
JsonEncodedText.Encode(...) from System.Text.Json? I didn't think there was an assumed dependency on that package. JsonConvert.ToString could be used, but the regex approach would remain in the case where GRAPHQL_GENERATOR_DISABLE_NEWTONSOFT_JSON is set.
Given the above, I'm inclined to switch to the triple-quote approach. It seems best not to have different string-escape behavior between Netwonsoft being enabled or not.
I updated the PR to use Block Strings, which required updating a bunch of the tests. It's still not perfect, as the spec points out that non-printable ASCII characters can't be used with Block Strings. I'm good with that tradeoff, but interested to hear @Husqvik's take.
I'm also working on a Mac, which required normalizing line endings in the string comparisons being done throughout the tests. The only test that I couldn't fully get passing locally was MultipleFileGeneration: it compares file sizes, which will be platform dependent because of line endings. It passes in AppVeyor though 🤷♂️.
The generation could be updated to force line endings, but I'm not prepared to go that far right now.
Fixed in https://github.com/Husqvik/GraphQlClientGenerator/commit/628b7aa012d5924a7035c82c282cd5078e4f4c68