private void writeErrors(ExecutionErrors errors, JsonWriter writer, JsonSerializer serializer) { if (errors == null || errors.Count == 0) { return; } writer.WritePropertyName("errors"); writer.WriteStartArray(); errors.Apply(error => { writer.WriteStartObject(); writer.WritePropertyName("message"); serializer.Serialize(writer, error.Message); if (error.Locations != null) { writer.WritePropertyName("locations"); serializer.Serialize(writer, error.Locations); } writer.WriteEndObject(); }); writer.WriteEndArray(); }
private static void WriteErrors(Utf8JsonWriter writer, ExecutionErrors errors, bool exposeExceptions, JsonSerializerOptions options) { if (errors == null || errors.Count == 0) { return; } writer.WritePropertyName("errors"); writer.WriteStartArray(); errors.Apply(error => { writer.WriteStartObject(); writer.WritePropertyName("message"); // Check if return StackTrace, including all inner exceptions JsonSerializer.Serialize(writer, exposeExceptions ? error.ToString() : error.Message, options); if (error.Locations != null) { writer.WritePropertyName("locations"); writer.WriteStartArray(); error.Locations.Apply(location => { writer.WriteStartObject(); writer.WritePropertyName("line"); JsonSerializer.Serialize(writer, location.Line, options); writer.WritePropertyName("column"); JsonSerializer.Serialize(writer, location.Column, options); writer.WriteEndObject(); }); writer.WriteEndArray(); } if (error.Path != null && error.Path.Any()) { writer.WritePropertyName("path"); JsonSerializer.Serialize(writer, error.Path, options); } WriteErrorExtensions(writer, error, options); writer.WriteEndObject(); }); writer.WriteEndArray(); }