Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d0928cc
remove extension fields and use DataMemberName
rose-a Feb 7, 2020
f019bd6
create interfaces
rose-a Feb 7, 2020
50827f2
move newtonsoft serialization to GraphQL.Client.Serializer.Newtonsoft
rose-a Feb 9, 2020
5ece68c
add constructor for di
rose-a Feb 9, 2020
c4b5e0f
create Extension classes to allow for custom json converters
rose-a Feb 11, 2020
0609ea3
automatically create the first discovered serializer if none has been…
rose-a Feb 11, 2020
b138e27
create LocalExecutionClient
rose-a Feb 11, 2020
a2dc540
create test setup for serializers
rose-a Feb 11, 2020
0c66960
homogenize stream consuming serialization methods
rose-a Feb 11, 2020
6aba359
implement system.text.json serializer
rose-a Feb 11, 2020
48249b2
remove netstandard2.1 target
rose-a Feb 11, 2020
28053f3
override request classes for system.text.json
rose-a Feb 11, 2020
98a53bf
add SerializeToStringTest theory (data incomplete)
rose-a Feb 11, 2020
82a0a31
create converter for JSON.Net to achieve the same result as with syst…
rose-a Feb 12, 2020
949afca
consolidate constructors, add mandatory serializer settings in constr…
rose-a Feb 12, 2020
2545928
test basic functionality of serializer without camelCase
rose-a Feb 12, 2020
e2402cb
fix naming for NewtonSoft
rose-a Feb 12, 2020
4557e27
test websocket serialization
rose-a Feb 12, 2020
a6f192b
remove Options classes from serializers, fix GraphQLWebsocketRequest …
rose-a Feb 12, 2020
a47cae1
run websocket tests for all available serializers
rose-a Feb 12, 2020
673ccaa
Fix example in README.md
rose-a Feb 13, 2020
94c2d91
restructure test classes
rose-a Feb 14, 2020
1a35989
Update README.md
rose-a Feb 16, 2020
dfb3810
Merge pull request #160 from graphql-dotnet/pluggable-serializers
rose-a Feb 17, 2020
bfa906b
fix dispose on websocket
rose-a Feb 17, 2020
d3fa686
refactor disposing to better match steven clearys example
rose-a Feb 17, 2020
72500b5
cleanup websocket code
rose-a Feb 17, 2020
56bde94
add some comments
rose-a Feb 17, 2020
3401000
create observable for the websockets connection state
rose-a Feb 17, 2020
c546271
add OnWebsocketConnected callback
rose-a Feb 17, 2020
1080536
add tests for callback and WebsocketConnectionState
rose-a Feb 18, 2020
e12ea5b
fix "Connecting" status
rose-a Feb 18, 2020
40c9108
fix doc comment in src/GraphQL.Client/GraphQLHttpClientOptions.cs
rose-a Feb 18, 2020
d276793
extend timeout on CanHandleSubscriptionError test
rose-a Feb 18, 2020
2446f80
Merge pull request #164 from graphql-dotnet/websocket-connection-status
rose-a Feb 18, 2020
03d22ce
create branche workflow for ubuntu
rose-a Feb 19, 2020
bac4977
inject environment using ::set-env
rose-a Feb 19, 2020
5dae880
output current version before build
rose-a Feb 19, 2020
b9710b3
should run on ubuntu without installing dotnet first
rose-a Feb 19, 2020
fcde0a4
disable dotnet telemetry
rose-a Feb 19, 2020
30d372b
remove commented dotnet setup steps
rose-a Feb 19, 2020
c2991b5
add ReferenceAssemblies package to allow net461 build on ubuntu vm
rose-a Feb 19, 2020
cde1924
rename type param to eliminate build warning
rose-a Feb 19, 2020
5a98799
disable branch workflow on windows
rose-a Feb 19, 2020
61b8adc
ignore all branches
rose-a Feb 19, 2020
fc16757
put colons around wildcard
rose-a Feb 19, 2020
cd41f4b
fix connection status test
rose-a Feb 19, 2020
34b7d03
test publish job on branch workflow
rose-a Feb 19, 2020
76c1be9
fix publish job to publish all packages
rose-a Feb 19, 2020
33b99e9
use for loop to publish packages
rose-a Feb 19, 2020
00a4875
fix for loop
rose-a Feb 19, 2020
cb59c74
enable continuous deployment mode for all branches
rose-a Feb 19, 2020
d5e313c
create main workflow for ubuntu
rose-a Feb 19, 2020
35052f6
cd into nupkg dir
rose-a Feb 19, 2020
3ac99ef
try package upload workaround
rose-a Feb 20, 2020
94f9cb7
fix secret
rose-a Feb 20, 2020
43e8201
move publish step to main workflow
rose-a Feb 20, 2020
0e9456d
Merge pull request #167 from graphql-dotnet/actions-on-linux
rose-a Feb 20, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/workflows/branches-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Branch workflow (Ubuntu)
on:
push:
branches-ignore:
- develop
- 'release/**'
- 'releases/**'
env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
jobs:
generateVersionInfo:
name: GenerateVersionInfo
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Restore dotnet tools
run: dotnet tool restore
- name: Fetch complete repository
run: git fetch
- name: Generate version info from git history
run: dotnet gitversion /output json > gitversion.json
- name: Upload version info file
uses: actions/upload-artifact@v1
with:
name: gitversion
path: gitversion.json

build:
name: Build
needs: generateVersionInfo
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version info file
uses: actions/download-artifact@v1
with:
name: gitversion
path: ./
- name: Inject version info into environment
run: jq -r 'to_entries|map("::set-env name=GitVersion_\(.key)::\(.value|tostring)")|.[]' gitversion.json
- name: Build solution
run: echo "Current version is \"$GitVersion_SemVer\"" && dotnet build -c Release
- name: Create NuGet packages
run: dotnet pack -c Release --no-build -o nupkg
- name: Upload nuget packages
uses: actions/upload-artifact@v1
with:
name: nupkg
path: nupkg

test:
name: Test
needs: [build, generateVersionInfo]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version info file
uses: actions/download-artifact@v1
with:
name: gitversion
path: ./
- name: Inject version info into environment
run: jq -r 'to_entries|map("::set-env name=GitVersion_\(.key)::\(.value|tostring)")|.[]' gitversion.json
- name: Run tests
run: echo "Current version is \"$GitVersion_SemVer\"" && dotnet test -c Release
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
name: Branch workflow
on:
on:
push:
branches-ignore:
- develop
- 'release/**'
- 'releases/**'
- '**'
jobs:
generateVersionInfo:
name: GenerateVersionInfo
Expand Down
92 changes: 92 additions & 0 deletions .github/workflows/main-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Main workflow (Ubuntu)
on:
push:
branches:
- develop
- 'release/**'
- 'releases/**'
tags:
- v*
- V*
env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
jobs:
generateVersionInfo:
name: GenerateVersionInfo
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Restore dotnet tools
run: dotnet tool restore
- name: Fetch complete repository
run: git fetch
- name: Generate version info from git history
run: dotnet gitversion /output json > gitversion.json
- name: Upload version info file
uses: actions/upload-artifact@v1
with:
name: gitversion
path: gitversion.json

build:
name: Build
needs: generateVersionInfo
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version info file
uses: actions/download-artifact@v1
with:
name: gitversion
path: ./
- name: Inject version info into environment
run: jq -r 'to_entries|map("::set-env name=GitVersion_\(.key)::\(.value|tostring)")|.[]' gitversion.json
- name: Build solution
run: echo "Current version is \"$GitVersion_SemVer\"" && dotnet build -c Release
- name: Create NuGet packages
run: dotnet pack -c Release --no-build -o nupkg
- name: Upload nuget packages
uses: actions/upload-artifact@v1
with:
name: nupkg
path: nupkg

test:
name: Test
needs: [build, generateVersionInfo]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version info file
uses: actions/download-artifact@v1
with:
name: gitversion
path: ./
- name: Inject version info into environment
run: jq -r 'to_entries|map("::set-env name=GitVersion_\(.key)::\(.value|tostring)")|.[]' gitversion.json
- name: Run tests
run: echo "Current version is \"$GitVersion_SemVer\"" && dotnet test -c Release

publish:
name: Publish
needs: [test]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download nuget packages
uses: actions/download-artifact@v1
with:
name: nupkg
- name: Publish the package to GPR
# using workaround with CURL because of non-functioning upload via dotnet nuget (https://stackoverflow.com/a/58943251)
run: |
for f in ./nupkg/*.nupkg
do
curl -vX PUT -u "graphql-dotnet:${{secrets.GITHUB_TOKEN}}" -F package=@$f https://nuget.pkg.github.com/graphql-dotnet/
done
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
name: Main workflow
on:
on:
push:
branches:
- develop
- 'release/**'
- 'releases/**'
tags:
- v*
- V*
branches-ignore:
- '**'
jobs:
generateVersionInfo:
name: GenerateVersionInfo
Expand Down
4 changes: 1 addition & 3 deletions GitVersion.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
branches:
release:
mode: ContinuousDeployment
mode: ContinuousDeployment
47 changes: 44 additions & 3 deletions GraphQL.Client.sln
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Server.Test", "tests\GraphQL.Server.Test\GraphQL.Server.Test.csproj", "{E95A1258-F666-4D4E-9101-E0C46F6A3CB3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{C42106CF-F685-4F29-BC18-A70616BD68A0}"
ProjectSection(SolutionItems) = preProject
.github\FUNDING.yml = .github\FUNDING.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{05CAF9B2-981E-40C0-AE31-5FA56E351F12}"
ProjectSection(SolutionItems) = preProject
.github\workflows\branches-ubuntu.yml = .github\workflows\branches-ubuntu.yml
.github\workflows\branches.yml = .github\workflows\branches.yml
.github\workflows\main.yml = .github\workflows\main.yml
EndProjectSection
Expand All @@ -58,6 +56,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Abstractions
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client", "src\GraphQL.Client\GraphQL.Client.csproj", "{ED3541C9-D2B2-4D06-A464-38E404A3919A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Abstractions.Websocket", "src\GraphQL.Client.Abstractions.Websocket\GraphQL.Client.Abstractions.Websocket.csproj", "{4D581CE1-523D-46BF-BAA5-F7D79A1B7654}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Serializer.Newtonsoft", "src\GraphQL.Client.Serializer.Newtonsoft\GraphQL.Client.Serializer.Newtonsoft.csproj", "{11F28E78-ADE4-4153-B97C-56136EB7BD5B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.LocalExecution", "src\GraphQL.Client.LocalExecution\GraphQL.Client.LocalExecution.csproj", "{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Serializer.Tests", "tests\GraphQL.Client.Serializer.Tests\GraphQL.Client.Serializer.Tests.csproj", "{CA842D18-FC4A-4281-B1FF-080FA91887B8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Tests.Common", "tests\GraphQL.Client.Tests.Common\GraphQL.Client.Tests.Common.csproj", "{0D307BAD-27AE-4A5D-8764-4AA2620B01E9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphQL.Client.Serializer.SystemTextJson", "src\GraphQL.Client.Serializer.SystemTextJson\GraphQL.Client.Serializer.SystemTextJson.csproj", "{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -96,19 +106,50 @@ Global
{ED3541C9-D2B2-4D06-A464-38E404A3919A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED3541C9-D2B2-4D06-A464-38E404A3919A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED3541C9-D2B2-4D06-A464-38E404A3919A}.Release|Any CPU.Build.0 = Release|Any CPU
{4D581CE1-523D-46BF-BAA5-F7D79A1B7654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D581CE1-523D-46BF-BAA5-F7D79A1B7654}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D581CE1-523D-46BF-BAA5-F7D79A1B7654}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D581CE1-523D-46BF-BAA5-F7D79A1B7654}.Release|Any CPU.Build.0 = Release|Any CPU
{11F28E78-ADE4-4153-B97C-56136EB7BD5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11F28E78-ADE4-4153-B97C-56136EB7BD5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11F28E78-ADE4-4153-B97C-56136EB7BD5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11F28E78-ADE4-4153-B97C-56136EB7BD5B}.Release|Any CPU.Build.0 = Release|Any CPU
{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2}.Release|Any CPU.Build.0 = Release|Any CPU
{CA842D18-FC4A-4281-B1FF-080FA91887B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CA842D18-FC4A-4281-B1FF-080FA91887B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA842D18-FC4A-4281-B1FF-080FA91887B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA842D18-FC4A-4281-B1FF-080FA91887B8}.Release|Any CPU.Build.0 = Release|Any CPU
{0D307BAD-27AE-4A5D-8764-4AA2620B01E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D307BAD-27AE-4A5D-8764-4AA2620B01E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D307BAD-27AE-4A5D-8764-4AA2620B01E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D307BAD-27AE-4A5D-8764-4AA2620B01E9}.Release|Any CPU.Build.0 = Release|Any CPU
{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E95A1258-F666-4D4E-9101-E0C46F6A3CB3} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{05CAF9B2-981E-40C0-AE31-5FA56E351F12} = {C42106CF-F685-4F29-BC18-A70616BD68A0}
{95D78D57-3232-491D-BAD6-F373D76EA34D} = {D61415CA-D822-43DD-9AE7-993B8B60E855}
{87FC440E-6A4D-47D8-9EB2-416FC31CC4A6} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{C212983F-67DB-44EB-BFB0-5DA75A86DF55} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{92107DF5-73DF-4371-8EB1-6734FED704AD} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{C68C26EB-7659-402A-93D1-E6E248DA5427} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{76E622F6-7CDD-4B1F-AD06-FFABF37C55E5} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{ED3541C9-D2B2-4D06-A464-38E404A3919A} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{4D581CE1-523D-46BF-BAA5-F7D79A1B7654} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{11F28E78-ADE4-4153-B97C-56136EB7BD5B} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{2BEC821C-E405-43CB-9BC9-A6BB0322F6C2} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
{CA842D18-FC4A-4281-B1FF-080FA91887B8} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{0D307BAD-27AE-4A5D-8764-4AA2620B01E9} = {0B0EDB0F-FF67-4B78-A8DB-B5C23E1FEE8C}
{7FFFEC00-D751-4FFC-9FD4-E91858F9A1C5} = {47C98B55-08F1-4428-863E-2C5C876DEEFE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {387AC1AC-F90C-4EF8-955A-04D495C75AF4}
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ var heroAndFriendsRequest = new GraphQLRequest {
};
```

Be careful when using `byte[]` in your variables object, as most JSON serializers will treat that as binary data! If you really need to send a *list of bytes* with a `byte[]` as a source, then convert it to a `List<byte>` first, which will tell the serializer to output a list of numbers instead of a base64-encoded string.

### Execute Query/Mutation:
```csharp
var graphQLClient = new GraphQLClient("https://swapi.apis.guru/");
var graphQLClient = new GraphQLHttpClient("https://swapi.apis.guru/");

public class HeroAndFriendsResponse {
public Hero Hero {get; set;}
Expand All @@ -62,6 +64,8 @@ var graphQLResponse = await graphQLClient.SendQueryAsync<HeroAndFriendsResponse>
var heroName = graphQLResponse.Data.Hero.Name;
```



### Use Subscriptions

```csharp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../src.props" />

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\GraphQL.Client.Abstractions\GraphQL.Client.Abstractions.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace GraphQL.Client.Http.Websocket {
namespace GraphQL.Client.Abstractions.Websocket {
public static class GraphQLWebSocketMessageType {

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Threading.Tasks;

namespace GraphQL.Client.Http.Websocket {
namespace GraphQL.Client.Abstractions.Websocket {

/// <summary>
/// A Subscription Request
/// </summary>
public class GraphQLWebSocketRequest : IEquatable<GraphQLWebSocketRequest> {
public const string IdKey = "id";
public const string TypeKey = "type";
public const string PayloadKey = "payload";

/// <summary>
/// The Identifier of the Response
/// </summary>
public string Id { get; set; }
[DataMember(Name = IdKey)]
public virtual string Id { get; set; }

/// <summary>
/// The Type of the Request
/// </summary>
public string Type { get; set; }
[DataMember(Name = TypeKey)]
public virtual string Type { get; set; }

/// <summary>
/// The payload of the websocket request
/// </summary>
public GraphQLRequest Payload { get; set; }
[DataMember(Name = PayloadKey)]
public virtual GraphQLRequest Payload { get; set; }

private TaskCompletionSource<bool> _tcs = new TaskCompletionSource<bool>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;

namespace GraphQL.Client.Http.Websocket {
namespace GraphQL.Client.Abstractions.Websocket {

/// <summary>
/// A Subscription Response
Expand Down Expand Up @@ -60,10 +60,10 @@ public override int GetHashCode() {

}

public class GraphQLWebSocketResponse<TResponse> : GraphQLWebSocketResponse, IEquatable<GraphQLWebSocketResponse<TResponse>> {
public GraphQLHttpResponse<TResponse> Payload { get; set; }
public class GraphQLWebSocketResponse<TPayload> : GraphQLWebSocketResponse, IEquatable<GraphQLWebSocketResponse<TPayload>> {
public TPayload Payload { get; set; }

public bool Equals(GraphQLWebSocketResponse<TResponse>? other) {
public bool Equals(GraphQLWebSocketResponse<TPayload>? other) {
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return base.Equals(other) && Payload.Equals(other.Payload);
Expand All @@ -73,7 +73,7 @@ public override bool Equals(object? obj) {
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((GraphQLWebSocketResponse<TResponse>)obj);
return Equals((GraphQLWebSocketResponse<TPayload>)obj);
}

public override int GetHashCode() {
Expand Down
Loading