Skip to content

Commit 0f4df50

Browse files
committed
use "invariantf" for performance
1 parent ba29b76 commit 0f4df50

File tree

2 files changed

+20
-27
lines changed

2 files changed

+20
-27
lines changed

executor.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -800,10 +800,8 @@ func completeAbstractValue(eCtx *executionContext, returnType Abstract, fieldAST
800800
runtimeType = defaultResolveTypeFn(resolveTypeParams, returnType)
801801
}
802802

803-
err := invariant(runtimeType != nil,
804-
fmt.Sprintf(`Abstract type %v must resolve to an Object type at runtime `+
805-
`for field %v.%v with value "%v", received "%v".`,
806-
returnType, info.ParentType, info.FieldName, result, runtimeType),
803+
err := invariantf(runtimeType != nil, `Abstract type %v must resolve to an Object type at runtime `+
804+
`for field %v.%v with value "%v", received "%v".`, returnType, info.ParentType, info.FieldName, result, runtimeType,
807805
)
808806
if err != nil {
809807
panic(err)

schema.go

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package graphql
22

3-
import (
4-
"fmt"
5-
)
6-
73
type SchemaConfig struct {
84
Query *Object
95
Mutation *Object
@@ -403,12 +399,12 @@ func assertObjectImplementsInterface(schema *Schema, object *Object, iface *Inte
403399

404400
// Assert interface field type is satisfied by object field type, by being
405401
// a valid subtype. (covariant)
406-
err = invariant(
402+
err = invariantf(
407403
isTypeSubTypeOf(schema, objectField.Type, ifaceField.Type),
408-
fmt.Sprintf(`%v.%v expects type "%v" but `+
404+
`%v.%v expects type "%v" but `+
409405
`%v.%v provides type "%v".`,
410-
iface, fieldName, ifaceField.Type,
411-
object, fieldName, objectField.Type),
406+
iface, fieldName, ifaceField.Type,
407+
object, fieldName, objectField.Type,
412408
)
413409
if err != nil {
414410
return err
@@ -425,27 +421,26 @@ func assertObjectImplementsInterface(schema *Schema, object *Object, iface *Inte
425421
}
426422
}
427423
// Assert interface field arg exists on object field.
428-
err = invariant(
424+
err = invariantf(
429425
objectArg != nil,
430-
fmt.Sprintf(`%v.%v expects argument "%v" but `+
426+
`%v.%v expects argument "%v" but `+
431427
`%v.%v does not provide it.`,
432-
iface, fieldName, argName,
433-
object, fieldName),
428+
iface, fieldName, argName,
429+
object, fieldName,
434430
)
435431
if err != nil {
436432
return err
437433
}
438434

439435
// Assert interface field arg type matches object field arg type.
440436
// (invariant)
441-
err = invariant(
437+
err = invariantf(
442438
isEqualType(ifaceArg.Type, objectArg.Type),
443-
fmt.Sprintf(
444-
`%v.%v(%v:) expects type "%v" `+
445-
`but %v.%v(%v:) provides `+
446-
`type "%v".`,
447-
iface, fieldName, argName, ifaceArg.Type,
448-
object, fieldName, argName, objectArg.Type),
439+
`%v.%v(%v:) expects type "%v" `+
440+
`but %v.%v(%v:) provides `+
441+
`type "%v".`,
442+
iface, fieldName, argName, ifaceArg.Type,
443+
object, fieldName, argName, objectArg.Type,
449444
)
450445
if err != nil {
451446
return err
@@ -464,12 +459,12 @@ func assertObjectImplementsInterface(schema *Schema, object *Object, iface *Inte
464459

465460
if ifaceArg == nil {
466461
_, ok := objectArg.Type.(*NonNull)
467-
err = invariant(
462+
err = invariantf(
468463
!ok,
469-
fmt.Sprintf(`%v.%v(%v:) is of required type `+
464+
`%v.%v(%v:) is of required type `+
470465
`"%v" but is not also provided by the interface %v.%v.`,
471-
object, fieldName, argName,
472-
objectArg.Type, iface, fieldName),
466+
object, fieldName, argName,
467+
objectArg.Type, iface, fieldName,
473468
)
474469
if err != nil {
475470
return err

0 commit comments

Comments
 (0)