Skip to content

Commit 17a22f8

Browse files
committed
change defer internal definition
1 parent 9e204c0 commit 17a22f8

13 files changed

Lines changed: 122 additions & 144 deletions

v2/pkg/astnormalization/astnormalization_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -558,21 +558,21 @@ func TestNormalizeOperation(t *testing.T) {
558558
query pet {
559559
pet {
560560
... on Dog {
561-
name @defer_internal(id: "1")
562-
nickname @defer_internal(id: "1")
563-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
564-
extra @defer_internal(id: "3") {
565-
noString @defer_internal(id: "3")
566-
string @defer_internal(id: "4")
561+
name @__defer_internal(id: "1")
562+
nickname @__defer_internal(id: "1")
563+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
564+
extra @__defer_internal(id: "3") {
565+
noString @__defer_internal(id: "3")
566+
string @__defer_internal(id: "4")
567567
}
568568
}
569569
... on Cat {
570570
name
571571
extra {
572572
bool
573573
}
574-
meowVolume @defer_internal(id: "5")
575-
nickname @defer_internal(id: "6")
574+
meowVolume @__defer_internal(id: "5")
575+
nickname @__defer_internal(id: "6")
576576
}
577577
}
578578
}`, ``, ``)

v2/pkg/astnormalization/field_deduplication_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,39 +41,39 @@ func TestDeDuplicateFields(t *testing.T) {
4141
query pet {
4242
pet {
4343
... on Dog {
44-
name @defer_internal(id: "1")
45-
nickname @defer_internal(id: "2", parentDeferId: "1")
46-
nickname @defer_internal(id: "1")
47-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
44+
name @__defer_internal(id: "1")
45+
nickname @__defer_internal(id: "2", parentDeferId: "1")
46+
nickname @__defer_internal(id: "1")
47+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
4848
}
4949
... on Cat {
50-
name @defer_internal(id: "4")
51-
name @defer_internal(id: "3")
50+
name @__defer_internal(id: "4")
51+
name @__defer_internal(id: "3")
5252
name
5353
extra {
5454
bool
55-
bool @defer_internal(id: "3")
55+
bool @__defer_internal(id: "3")
5656
}
57-
meowVolume @defer_internal(id: "4")
58-
meowVolume @defer_internal(id: "3")
59-
nickname @defer_internal(id: "4")
57+
meowVolume @__defer_internal(id: "4")
58+
meowVolume @__defer_internal(id: "3")
59+
nickname @__defer_internal(id: "4")
6060
}
6161
}
6262
}`, `
6363
query pet {
6464
pet {
6565
... on Dog {
66-
name @defer_internal(id: "1")
67-
nickname @defer_internal(id: "1")
68-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
66+
name @__defer_internal(id: "1")
67+
nickname @__defer_internal(id: "1")
68+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
6969
}
7070
... on Cat {
7171
name
7272
extra {
7373
bool
7474
}
75-
meowVolume @defer_internal(id: "3")
76-
nickname @defer_internal(id: "4")
75+
meowVolume @__defer_internal(id: "3")
76+
nickname @__defer_internal(id: "4")
7777
}
7878
}
7979
}`, runOptions{indent: true})

v2/pkg/astnormalization/inline_fragment_expand_defer.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,23 +129,30 @@ func (f *inlineFragmentExpandDeferVisitor) EnterSelectionSet(ref int) {
129129
}
130130

131131
func (f *inlineFragmentExpandDeferVisitor) addInternalDeferDirective(fieldRef int) {
132-
var args []int
132+
var argRefs []int
133133

134134
deferInfo := f.defers[len(f.defers)-1]
135135

136136
if deferInfo.id != "" {
137-
args = append(args, f.addStringArgument("id", deferInfo.id))
137+
argRefs = append(argRefs, f.addStringArgument("id", deferInfo.id))
138138
}
139139

140140
if deferInfo.parentDeferId != "" {
141-
args = append(args, f.addStringArgument("parentDeferId", deferInfo.parentDeferId))
141+
argRefs = append(argRefs, f.addStringArgument("parentDeferId", deferInfo.parentDeferId))
142142
}
143143

144144
if deferInfo.label != "" {
145-
args = append(args, f.addStringArgument("label", deferInfo.label))
145+
argRefs = append(argRefs, f.addStringArgument("label", deferInfo.label))
146146
}
147147

148-
directiveRef := f.operation.ImportDirective("defer_internal", args)
148+
directive := ast.Directive{
149+
Name: f.operation.Input.AppendInputBytes(literal.DEFER_INTERNAL),
150+
HasArguments: len(argRefs) > 0,
151+
Arguments: ast.ArgumentList{
152+
Refs: argRefs,
153+
},
154+
}
155+
directiveRef := f.operation.AddDirective(directive)
149156

150157
f.operation.AddDirectiveToNode(directiveRef, ast.Node{
151158
Kind: ast.NodeKindField,

v2/pkg/astnormalization/inline_fragment_expand_defer_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func TestInlineFragmentExpandDefer(t *testing.T) {
1616
query dog {
1717
dog {
1818
... {
19-
name @defer_internal(id: "1")
19+
name @__defer_internal(id: "1")
2020
}
2121
}
2222
}`)
@@ -55,28 +55,28 @@ func TestInlineFragmentExpandDefer(t *testing.T) {
5555
query pet {
5656
pet {
5757
... on Dog {
58-
name @defer_internal(id: "1")
59-
nickname @defer_internal(id: "1")
58+
name @__defer_internal(id: "1")
59+
nickname @__defer_internal(id: "1")
6060
... {
61-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
61+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
6262
}
6363
}
6464
... on Dog {
6565
... {
66-
extra @defer_internal(id: "3") {
67-
noString @defer_internal(id: "3")
66+
extra @__defer_internal(id: "3") {
67+
noString @__defer_internal(id: "3")
6868
}
6969
}
7070
... {
71-
extra @defer_internal(id: "4") {
72-
string @defer_internal(id: "4")
73-
noString @defer_internal(id: "4")
71+
extra @__defer_internal(id: "4") {
72+
string @__defer_internal(id: "4")
73+
noString @__defer_internal(id: "4")
7474
}
7575
}
7676
}
7777
... on Cat {
78-
name @defer_internal(id: "5")
79-
meowVolume @defer_internal(id: "5")
78+
name @__defer_internal(id: "5")
79+
meowVolume @__defer_internal(id: "5")
8080
}
8181
}
8282
}`, runOptions{indent: true})

v2/pkg/astnormalization/inline_fragment_selection_merging_test.go

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -354,18 +354,18 @@ func TestMergeInlineFragmentFieldSelections(t *testing.T) {
354354
query pet {
355355
pet {
356356
... on Dog {
357-
name @defer_internal(id: "1")
358-
nickname @defer_internal(id: "1")
359-
nickname @defer_internal(id: "2", parentDeferId: "1")
360-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
357+
name @__defer_internal(id: "1")
358+
nickname @__defer_internal(id: "1")
359+
nickname @__defer_internal(id: "2", parentDeferId: "1")
360+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
361361
}
362362
... on Dog {
363-
extra @defer_internal(id: "3") {
364-
noString @defer_internal(id: "3")
363+
extra @__defer_internal(id: "3") {
364+
noString @__defer_internal(id: "3")
365365
}
366-
extra @defer_internal(id: "4") {
367-
string @defer_internal(id: "4")
368-
noString @defer_internal(id: "4")
366+
extra @__defer_internal(id: "4") {
367+
string @__defer_internal(id: "4")
368+
noString @__defer_internal(id: "4")
369369
}
370370
}
371371
... on Cat {
@@ -375,44 +375,44 @@ func TestMergeInlineFragmentFieldSelections(t *testing.T) {
375375
}
376376
}
377377
... on Cat {
378-
name @defer_internal(id: "5")
379-
meowVolume @defer_internal(id: "5")
380-
extra @defer_internal(id: "5") {
381-
bool @defer_internal(id: "5")
378+
name @__defer_internal(id: "5")
379+
meowVolume @__defer_internal(id: "5")
380+
extra @__defer_internal(id: "5") {
381+
bool @__defer_internal(id: "5")
382382
}
383383
}
384384
... on Cat {
385-
name @defer_internal(id: "6")
386-
nickname @defer_internal(id: "6")
387-
meowVolume @defer_internal(id: "6")
385+
name @__defer_internal(id: "6")
386+
nickname @__defer_internal(id: "6")
387+
meowVolume @__defer_internal(id: "6")
388388
}
389389
}
390390
}`,
391391
`
392392
query pet {
393393
pet {
394394
... on Dog {
395-
name @defer_internal(id: "1")
396-
nickname @defer_internal(id: "1")
397-
nickname @defer_internal(id: "2", parentDeferId: "1")
398-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
399-
extra @defer_internal(id: "3") {
400-
noString @defer_internal(id: "3")
401-
string @defer_internal(id: "4")
402-
noString @defer_internal(id: "4")
395+
name @__defer_internal(id: "1")
396+
nickname @__defer_internal(id: "1")
397+
nickname @__defer_internal(id: "2", parentDeferId: "1")
398+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
399+
extra @__defer_internal(id: "3") {
400+
noString @__defer_internal(id: "3")
401+
string @__defer_internal(id: "4")
402+
noString @__defer_internal(id: "4")
403403
}
404404
}
405405
... on Cat {
406406
name
407407
extra {
408408
bool
409-
bool @defer_internal(id: "5")
409+
bool @__defer_internal(id: "5")
410410
}
411-
name @defer_internal(id: "5")
412-
meowVolume @defer_internal(id: "5")
413-
name @defer_internal(id: "6")
414-
nickname @defer_internal(id: "6")
415-
meowVolume @defer_internal(id: "6")
411+
name @__defer_internal(id: "5")
412+
meowVolume @__defer_internal(id: "5")
413+
name @__defer_internal(id: "6")
414+
nickname @__defer_internal(id: "6")
415+
meowVolume @__defer_internal(id: "6")
416416
}
417417
}
418418
}`, runOptions{indent: true})

v2/pkg/astnormalization/inline_selections_from_inline_fragments_test.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -101,51 +101,51 @@ func TestResolveInlineFragments(t *testing.T) {
101101
query pet {
102102
pet {
103103
... on Dog {
104-
name @defer_internal(id: "1")
105-
nickname @defer_internal(id: "1")
104+
name @__defer_internal(id: "1")
105+
nickname @__defer_internal(id: "1")
106106
... {
107-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
107+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
108108
}
109109
}
110110
... on Dog {
111111
... {
112-
extra @defer_internal(id: "3") {
113-
noString @defer_internal(id: "3")
112+
extra @__defer_internal(id: "3") {
113+
noString @__defer_internal(id: "3")
114114
}
115115
}
116116
... {
117-
extra @defer_internal(id: "4") {
118-
string @defer_internal(id: "4")
119-
noString @defer_internal(id: "4")
117+
extra @__defer_internal(id: "4") {
118+
string @__defer_internal(id: "4")
119+
noString @__defer_internal(id: "4")
120120
}
121121
}
122122
}
123123
... on Cat {
124-
name @defer_internal(id: "5")
125-
meowVolume @defer_internal(id: "5")
124+
name @__defer_internal(id: "5")
125+
meowVolume @__defer_internal(id: "5")
126126
}
127127
}
128128
}`,
129129
`
130130
query pet {
131131
pet {
132132
... on Dog {
133-
name @defer_internal(id: "1")
134-
nickname @defer_internal(id: "1")
135-
barkVolume @defer_internal(id: "2", parentDeferId: "1")
133+
name @__defer_internal(id: "1")
134+
nickname @__defer_internal(id: "1")
135+
barkVolume @__defer_internal(id: "2", parentDeferId: "1")
136136
}
137137
... on Dog {
138-
extra @defer_internal(id: "3") {
139-
noString @defer_internal(id: "3")
138+
extra @__defer_internal(id: "3") {
139+
noString @__defer_internal(id: "3")
140140
}
141-
extra @defer_internal(id: "4") {
142-
string @defer_internal(id: "4")
143-
noString @defer_internal(id: "4")
141+
extra @__defer_internal(id: "4") {
142+
string @__defer_internal(id: "4")
143+
noString @__defer_internal(id: "4")
144144
}
145145
}
146146
... on Cat {
147-
name @defer_internal(id: "5")
148-
meowVolume @defer_internal(id: "5")
147+
name @__defer_internal(id: "5")
148+
meowVolume @__defer_internal(id: "5")
149149
}
150150
}
151151
}`)

v2/pkg/asttransform/baseschema.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,17 @@ var (
1313
//go:embed base.graphql
1414
baseSchema []byte
1515

16-
//go:embed defer_internal.graphql
17-
deferInternal []byte
18-
1916
//go:embed defer.graphql
20-
deferRegular []byte
17+
deferDefinition []byte
2118
)
2219

2320
type Options struct {
2421
InternalDefer bool
2522
}
2623

2724
func MergeDefinitionWithBaseSchema(definition *ast.Document) error {
28-
return MergeDefinitionWithBaseSchemaWithOptions(definition, Options{})
29-
}
30-
31-
func MergeDefinitionWithBaseSchemaWithOptions(definition *ast.Document, options Options) error {
3225
definition.Input.AppendInputBytes(baseSchema)
33-
definition.Input.AppendInputBytes(deferRegular)
34-
if options.InternalDefer {
35-
definition.Input.AppendInputBytes(deferInternal)
36-
}
26+
definition.Input.AppendInputBytes(deferDefinition)
3727

3828
parser := astparser.NewParser()
3929
report := operationreport.Report{}

v2/pkg/asttransform/baseschema_test.go

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"bytes"
55
"testing"
66

7+
"github.com/stretchr/testify/require"
8+
79
"github.com/wundergraph/graphql-go-tools/v2/pkg/astprinter"
810
"github.com/wundergraph/graphql-go-tools/v2/pkg/asttransform"
911
"github.com/wundergraph/graphql-go-tools/v2/pkg/internal/unsafeparser"
@@ -17,21 +19,11 @@ func runTestMerge(definition, fixtureName string) func(t *testing.T) {
1719
func runTestMergeWithDefer(definition, fixtureName string, internalDefer bool) func(t *testing.T) {
1820
return func(t *testing.T) {
1921
doc := unsafeparser.ParseGraphqlDocumentString(definition)
20-
var err error
21-
if internalDefer {
22-
err = asttransform.MergeDefinitionWithBaseSchemaWithOptions(&doc, asttransform.Options{InternalDefer: true})
23-
} else {
24-
err = asttransform.MergeDefinitionWithBaseSchema(&doc)
25-
}
26-
27-
if err != nil {
28-
panic(err)
29-
}
22+
err := asttransform.MergeDefinitionWithBaseSchema(&doc)
23+
require.NoError(t, err)
3024
buf := bytes.Buffer{}
3125
err = astprinter.PrintIndent(&doc, []byte(" "), &buf)
32-
if err != nil {
33-
panic(err)
34-
}
26+
require.NoError(t, err)
3527
got := buf.Bytes()
3628
goldie.Assert(t, fixtureName, got)
3729
}

0 commit comments

Comments
 (0)