Skip to content

Commit 2c86a71

Browse files
valbersxperiandriAndrii Chebukin
committed
FSharp.Data.GraphQL.Server.AspNetCore (#430)
Adds ASP.NET Core DI integration using a Giraffe HttpHandler and a WebSocket protocol support Co-authored-by: Andrii Chebukin <[email protected]> Co-authored-by: Andrii Chebukin <[email protected]>
1 parent 246d6c0 commit 2c86a71

File tree

66 files changed

+5421
-647
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+5421
-647
lines changed

.github/workflows/publish_ci.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,39 +59,47 @@ jobs:
5959
- name: Pack FSharp.Data.GraphQL.Shared project
6060
run: |
6161
cd src/FSharp.Data.GraphQL.Shared
62-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
62+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
6363
- name: Publish FSharp.Data.GraphQL.Shared project to GitHub
6464
run: |
6565
dotnet nuget push nuget/FSharp.Data.GraphQL.Shared.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
6666
6767
- name: Pack FSharp.Data.GraphQL.Client project
6868
run: |
6969
cd src/FSharp.Data.GraphQL.Client
70-
dotnet pack --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
70+
dotnet pack --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
7171
- name: Publish FSharp.Data.GraphQL.Client project to GitHub
7272
run: |
7373
dotnet nuget push nuget/FSharp.Data.GraphQL.Client.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
7474
7575
- name: Pack FSharp.Data.GraphQL.Server project
7676
run: |
7777
cd src/FSharp.Data.GraphQL.Server
78-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
78+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
7979
- name: Publish FSharp.Data.GraphQL.Server project to GitHub
8080
run: |
8181
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
8282
83+
- name: Pack FSharp.Data.GraphQL.Server.AspNetCore project
84+
run: |
85+
cd src/FSharp.Data.GraphQL.Server.AspNetCore
86+
dotnet pack --no-build --configuration Release /p:IsNuget=true /p:ContinuousIntegrationBuild=true -o ../../nuget
87+
- name: Publish FSharp.Data.GraphQL.Server.AspNetCore project to GitHub
88+
run: |
89+
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.AspNetCore.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
90+
8391
- name: Pack FSharp.Data.GraphQL.Server.Relay project
8492
run: |
8593
cd src/FSharp.Data.GraphQL.Server.Relay
86-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
94+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
8795
- name: Publish FSharp.Data.GraphQL.Server.Relay project to GitHub
8896
run: |
8997
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.Relay.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
9098
9199
- name: Pack FSharp.Data.GraphQL.Server.Middleware project
92100
run: |
93101
cd src/FSharp.Data.GraphQL.Server.Middleware
94-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
102+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
95103
- name: Publish FSharp.Data.GraphQL.Server.Middleware project to GitHub
96104
run: |
97105
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.Middleware.${{env.VERSION}}.nupkg -s "github.com" -k ${{secrets.GITHUB_TOKEN}} --skip-duplicate
@@ -104,7 +112,7 @@ jobs:
104112
- name: Pack FSharp.Data.GraphQL.ProjectTemplates template project
105113
run: |
106114
cd samples
107-
dotnet pack --nologo --configuration Release /p:ContinuousIntegrationBuild=true -o ../nuget
115+
dotnet pack --configuration Release /p:ContinuousIntegrationBuild=true -o ../nuget
108116
- name: Publish FSharp.Data.GraphQL.ProjectTemplates project to GitHub
109117
run: |
110118
$path = "nuget/FSharp.Data.GraphQL.ProjectTemplates.${{env.VERSION}}.nupkg"

.github/workflows/publish_release.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,39 +58,47 @@ jobs:
5858
- name: Pack FSharp.Data.GraphQL.Shared project
5959
run: |
6060
cd src/FSharp.Data.GraphQL.Shared
61-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
61+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
6262
- name: Publish FSharp.Data.GraphQL.Shared project to NuGet
6363
run: |
6464
dotnet nuget push nuget/FSharp.Data.GraphQL.Shared.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
6565
6666
- name: Pack FSharp.Data.GraphQL.Client project
6767
run: |
6868
cd src/FSharp.Data.GraphQL.Client
69-
dotnet pack --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
69+
dotnet pack --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
7070
- name: Publish FSharp.Data.GraphQL.Client project to NuGet
7171
run: |
7272
dotnet nuget push nuget/FSharp.Data.GraphQL.Client.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
7373
7474
- name: Pack FSharp.Data.GraphQL.Server project
7575
run: |
7676
cd src/FSharp.Data.GraphQL.Server
77-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
77+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
7878
- name: Publish FSharp.Data.GraphQL.Server project to NuGet
7979
run: |
8080
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
8181
82+
- name: Pack FSharp.Data.GraphQL.Server.AspNetCore project
83+
run: |
84+
cd src/FSharp.Data.GraphQL.Server.AspNetCore
85+
dotnet pack --no-build --configuration Release /p:IsNuget=true /p:ContinuousIntegrationBuild=true -o ../../nuget
86+
- name: Publish FSharp.Data.GraphQL.Server.AspNetCore project to NuGet
87+
run: |
88+
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.AspNetCore.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
89+
8290
- name: Pack FSharp.Data.GraphQL.Server.Relay project
8391
run: |
8492
cd src/FSharp.Data.GraphQL.Server.Relay
85-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
93+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
8694
- name: Publish FSharp.Data.GraphQL.Server.Relay project to NuGet
8795
run: |
8896
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.Relay.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
8997
9098
- name: Pack FSharp.Data.GraphQL.Server.Middleware project
9199
run: |
92100
cd src/FSharp.Data.GraphQL.Server.Middleware
93-
dotnet pack --no-build --nologo --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
101+
dotnet pack --no-build --configuration Release /p:IsNuGet=true /p:ContinuousIntegrationBuild=true -o ../../nuget
94102
- name: Publish FSharp.Data.GraphQL.Server.Middleware project to NuGet
95103
run: |
96104
dotnet nuget push nuget/FSharp.Data.GraphQL.Server.Middleware.${{env.VERSION}}.{nupkg,snupkg} -s "nuget.org" -k ${{secrets.NUGET_SECRET}} --skip-duplicate
@@ -103,7 +111,7 @@ jobs:
103111
- name: Pack FSharp.Data.GraphQL.ProjectTemplates template project
104112
run: |
105113
cd samples
106-
dotnet pack --nologo --configuration Release /p:ContinuousIntegrationBuild=true -o ../nuget
114+
dotnet pack --configuration Release /p:ContinuousIntegrationBuild=true -o ../nuget
107115
- name: Publish FSharp.Data.GraphQL.ProjectTemplates project to GitHub
108116
run: |
109117
$path = "nuget/FSharp.Data.GraphQL.ProjectTemplates.${{env.VERSION}}.nupkg"

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,4 @@ $RECYCLE.BIN/
448448
## Visual Studio Code
449449
##
450450
.vscode/*
451-
!.vscode/settings.json
452-
!.vscode/tasks.json
453-
!.vscode/launch.json
454-
!.vscode/extensions.json
451+
*/**/.vscode/*

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</PropertyGroup>
1212

1313
<PropertyGroup Label="NuGet">
14-
<Authors>John Bazinga, Andrii Chebukin, Jurii Chebukin, Ismael Carlos Velten, njlr, Garrett Birkel</Authors>
14+
<Authors>John Bazinga, Andrii Chebukin, Jurii Chebukin, Ismael Carlos Velten, Valber M. Silva de Souza, njlr, Garrett Birkel</Authors>
1515
<Product>FSharp.Data.GraphQL</Product>
1616
<Summary>F# implementation of Facebook GraphQL query language</Summary>
1717

FSharp.Data.GraphQL.Integration.sln

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
88
Packages.props = Packages.props
99
EndProjectSection
1010
EndProject
11+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BA7F22E2-D411-4229-826B-F55FF171D12A}"
12+
EndProject
1113
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.IntegrationTests.Server", "tests\FSharp.Data.GraphQL.IntegrationTests.Server\FSharp.Data.GraphQL.IntegrationTests.Server.fsproj", "{E6754A20-FA5E-4C76-AB1B-D35DF9526889}"
1214
EndProject
1315
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.IntegrationTests", "tests\FSharp.Data.GraphQL.IntegrationTests\FSharp.Data.GraphQL.IntegrationTests.fsproj", "{09D910E6-94EF-46AF-94DF-10A9FEC837C0}"
1416
EndProject
15-
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.Server", "src\FSharp.Data.GraphQL.Server\FSharp.Data.GraphQL.Server.fsproj", "{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC}"
17+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BDE03396-2ED6-4153-B94C-351BAB3F67BD}"
1618
EndProject
1719
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.Shared", "src\FSharp.Data.GraphQL.Shared\FSharp.Data.GraphQL.Shared.fsproj", "{237F9575-6E65-40DD-A77B-BA2882BD5646}"
1820
EndProject
19-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BDE03396-2ED6-4153-B94C-351BAB3F67BD}"
21+
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.Server", "src\FSharp.Data.GraphQL.Server\FSharp.Data.GraphQL.Server.fsproj", "{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC}"
2022
EndProject
21-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BA7F22E2-D411-4229-826B-F55FF171D12A}"
23+
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Data.GraphQL.Server.AspNetCore", "src\FSharp.Data.GraphQL.Server.AspNetCore\FSharp.Data.GraphQL.Server.AspNetCore.fsproj", "{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}"
2224
EndProject
2325
Global
2426
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -30,18 +32,6 @@ Global
3032
Release|x86 = Release|x86
3133
EndGlobalSection
3234
GlobalSection(ProjectConfigurationPlatforms) = postSolution
33-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
34-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
35-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x64.ActiveCfg = Debug|Any CPU
36-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x64.Build.0 = Debug|Any CPU
37-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x86.ActiveCfg = Debug|Any CPU
38-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x86.Build.0 = Debug|Any CPU
39-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
40-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|Any CPU.Build.0 = Release|Any CPU
41-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x64.ActiveCfg = Release|Any CPU
42-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x64.Build.0 = Release|Any CPU
43-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x86.ActiveCfg = Release|Any CPU
44-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x86.Build.0 = Release|Any CPU
4535
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4636
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Debug|Any CPU.Build.0 = Debug|Any CPU
4737
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -54,6 +44,18 @@ Global
5444
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Release|x64.Build.0 = Release|Any CPU
5545
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Release|x86.ActiveCfg = Release|Any CPU
5646
{E6754A20-FA5E-4C76-AB1B-D35DF9526889}.Release|x86.Build.0 = Release|Any CPU
47+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
48+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
49+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x64.ActiveCfg = Debug|Any CPU
50+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x64.Build.0 = Debug|Any CPU
51+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x86.ActiveCfg = Debug|Any CPU
52+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Debug|x86.Build.0 = Debug|Any CPU
53+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
54+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|Any CPU.Build.0 = Release|Any CPU
55+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x64.ActiveCfg = Release|Any CPU
56+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x64.Build.0 = Release|Any CPU
57+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x86.ActiveCfg = Release|Any CPU
58+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0}.Release|x86.Build.0 = Release|Any CPU
5759
{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
5860
{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
5961
{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -78,15 +80,28 @@ Global
7880
{237F9575-6E65-40DD-A77B-BA2882BD5646}.Release|x64.Build.0 = Release|Any CPU
7981
{237F9575-6E65-40DD-A77B-BA2882BD5646}.Release|x86.ActiveCfg = Release|Any CPU
8082
{237F9575-6E65-40DD-A77B-BA2882BD5646}.Release|x86.Build.0 = Release|Any CPU
83+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
84+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
85+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|x64.ActiveCfg = Debug|Any CPU
86+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|x64.Build.0 = Debug|Any CPU
87+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|x86.ActiveCfg = Debug|Any CPU
88+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Debug|x86.Build.0 = Debug|Any CPU
89+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
90+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|Any CPU.Build.0 = Release|Any CPU
91+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|x64.ActiveCfg = Release|Any CPU
92+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|x64.Build.0 = Release|Any CPU
93+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|x86.ActiveCfg = Release|Any CPU
94+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4}.Release|x86.Build.0 = Release|Any CPU
8195
EndGlobalSection
8296
GlobalSection(SolutionProperties) = preSolution
8397
HideSolutionNode = FALSE
8498
EndGlobalSection
8599
GlobalSection(NestedProjects) = preSolution
86-
{09D910E6-94EF-46AF-94DF-10A9FEC837C0} = {BA7F22E2-D411-4229-826B-F55FF171D12A}
87100
{E6754A20-FA5E-4C76-AB1B-D35DF9526889} = {BA7F22E2-D411-4229-826B-F55FF171D12A}
101+
{09D910E6-94EF-46AF-94DF-10A9FEC837C0} = {BA7F22E2-D411-4229-826B-F55FF171D12A}
88102
{CA16AC10-9FF2-4894-AC73-99FBD35BB8CC} = {BDE03396-2ED6-4153-B94C-351BAB3F67BD}
89103
{237F9575-6E65-40DD-A77B-BA2882BD5646} = {BDE03396-2ED6-4153-B94C-351BAB3F67BD}
104+
{9E795521-CC0E-4E9C-9DC1-66CFCC7A31C4} = {BDE03396-2ED6-4153-B94C-351BAB3F67BD}
90105
EndGlobalSection
91106
GlobalSection(ExtensibilityGlobals) = postSolution
92107
SolutionGuid = {1B712506-56AA-424E-9DB7-47BCF3894516}

0 commit comments

Comments
 (0)