@@ -78,6 +78,7 @@ public func graphql(
7878 mutationStrategy: MutationFieldExecutionStrategy = SerialFieldExecutionStrategy ( ) ,
7979 subscriptionStrategy: SubscriptionFieldExecutionStrategy = SerialFieldExecutionStrategy ( ) ,
8080 instrumentation: Instrumentation = NoOpInstrumentation,
81+ validationRules: [ ( ValidationContext ) -> Visitor ] = [ ] ,
8182 schema: GraphQLSchema ,
8283 request: String ,
8384 rootValue: Any = ( ) ,
@@ -89,7 +90,7 @@ public func graphql(
8990
9091 let source = Source ( body: request, name: " GraphQL request " )
9192 let documentAST = try parse ( instrumentation: instrumentation, source: source)
92- let validationErrors = validate ( instrumentation: instrumentation, schema: schema, ast: documentAST)
93+ let validationErrors = validate ( instrumentation: instrumentation, schema: schema, ast: documentAST, rules : validationRules )
9394
9495 guard validationErrors. isEmpty else {
9596 return eventLoopGroup. next ( ) . makeSucceededFuture ( GraphQLResult ( errors: validationErrors) )
@@ -195,6 +196,7 @@ public func graphqlSubscribe(
195196 mutationStrategy: MutationFieldExecutionStrategy = SerialFieldExecutionStrategy ( ) ,
196197 subscriptionStrategy: SubscriptionFieldExecutionStrategy = SerialFieldExecutionStrategy ( ) ,
197198 instrumentation: Instrumentation = NoOpInstrumentation,
199+ validationRules: [ ( ValidationContext ) -> Visitor ] = [ ] ,
198200 schema: GraphQLSchema ,
199201 request: String ,
200202 rootValue: Any = ( ) ,
@@ -206,7 +208,7 @@ public func graphqlSubscribe(
206208
207209 let source = Source ( body: request, name: " GraphQL Subscription request " )
208210 let documentAST = try parse ( instrumentation: instrumentation, source: source)
209- let validationErrors = validate ( instrumentation: instrumentation, schema: schema, ast: documentAST)
211+ let validationErrors = validate ( instrumentation: instrumentation, schema: schema, ast: documentAST, rules : validationRules )
210212
211213 guard validationErrors. isEmpty else {
212214 return eventLoopGroup. next ( ) . makeSucceededFuture ( SubscriptionResult ( errors: validationErrors) )
0 commit comments