Skip to content

Commit 9514adb

Browse files
AndrewSisleyfredcarle
authored andcommitted
fix: Allow return of potential errors from InputObjectThunk (#3)
1 parent d6ccf7d commit 9514adb

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

definition.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,7 @@ func (st *InputObjectField) Error() error {
11681168

11691169
type InputObjectConfigFieldMap map[string]*InputObjectFieldConfig
11701170
type InputObjectFieldMap map[string]*InputObjectField
1171-
type InputObjectConfigFieldMapThunk func() InputObjectConfigFieldMap
1171+
type InputObjectConfigFieldMapThunk func() (InputObjectConfigFieldMap, error)
11721172
type InputObjectConfig struct {
11731173
Name string `json:"name"`
11741174
Fields interface{} `json:"fields"`
@@ -1196,7 +1196,11 @@ func (gt *InputObject) defineFieldMap() InputObjectFieldMap {
11961196
case InputObjectConfigFieldMap:
11971197
fieldMap = fields
11981198
case InputObjectConfigFieldMapThunk:
1199-
fieldMap = fields()
1199+
fieldMap, err = fields()
1200+
if err != nil {
1201+
gt.err = err
1202+
return InputObjectFieldMap{}
1203+
}
12001204
}
12011205
resultFieldMap := InputObjectFieldMap{}
12021206

validation_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -656,12 +656,12 @@ func TestTypeSystem_InputObjectsMustHaveFields_AcceptsAnInputObjectTypeWithField
656656
func TestTypeSystem_InputObjectsMustHaveFields_AcceptsAnInputObjectTypeWithAFieldFunction(t *testing.T) {
657657
_, err := schemaWithInputObject(graphql.NewInputObject(graphql.InputObjectConfig{
658658
Name: "SomeInputObject",
659-
Fields: (graphql.InputObjectConfigFieldMapThunk)(func() graphql.InputObjectConfigFieldMap {
659+
Fields: (graphql.InputObjectConfigFieldMapThunk)(func() (graphql.InputObjectConfigFieldMap, error) {
660660
return graphql.InputObjectConfigFieldMap{
661661
"f": &graphql.InputObjectFieldConfig{
662662
Type: graphql.String,
663663
},
664-
}
664+
}, nil
665665
}),
666666
}))
667667
if err != nil {

0 commit comments

Comments
 (0)