Skip to content

Commit 2fe60b2

Browse files
authored
fix: Allow return of potential errors from InputObjectThunk (#3)
1 parent 7e4c02b commit 2fe60b2

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
@@ -1135,7 +1135,7 @@ func (st *InputObjectField) Error() error {
11351135

11361136
type InputObjectConfigFieldMap map[string]*InputObjectFieldConfig
11371137
type InputObjectFieldMap map[string]*InputObjectField
1138-
type InputObjectConfigFieldMapThunk func() InputObjectConfigFieldMap
1138+
type InputObjectConfigFieldMapThunk func() (InputObjectConfigFieldMap, error)
11391139
type InputObjectConfig struct {
11401140
Name string `json:"name"`
11411141
Fields interface{} `json:"fields"`
@@ -1163,7 +1163,11 @@ func (gt *InputObject) defineFieldMap() InputObjectFieldMap {
11631163
case InputObjectConfigFieldMap:
11641164
fieldMap = fields
11651165
case InputObjectConfigFieldMapThunk:
1166-
fieldMap = fields()
1166+
fieldMap, err = fields()
1167+
if err != nil {
1168+
gt.err = err
1169+
return InputObjectFieldMap{}
1170+
}
11671171
}
11681172
resultFieldMap := InputObjectFieldMap{}
11691173

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)