Skip to content

Commit 9492055

Browse files
committed
fix: remove errors array, add onError closure to ValidationContext
1 parent cfb817a commit 9492055

2 files changed

Lines changed: 5 additions & 10 deletions

File tree

Sources/GraphQL/Validation/Validate.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,15 @@ func visit(
5050
typeInfo: TypeInfo,
5151
documentAST: Document
5252
) -> [GraphQLError] {
53-
let context = ValidationContext(schema: schema, ast: documentAST, typeInfo: typeInfo)
53+
var errors = [GraphQLError]()
54+
let context = ValidationContext(schema: schema, ast: documentAST, typeInfo: typeInfo, onError: { errors.append($0) })
5455
let visitors = rules.map { rule in rule(context) }
5556
// Visit the whole document with each instance of all provided rules.
5657
visit(
5758
root: documentAST,
5859
visitor: visitWithTypeInfo(typeInfo: typeInfo, visitor: visitInParallel(visitors: visitors))
5960
)
60-
return context.errors
61+
return errors
6162
}
6263

6364
/// Utility function which asserts a SDL document is valid by throwing an error

Sources/GraphQL/Validation/ValidationContext.swift

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,16 @@ public typealias SDLValidationRule = @Sendable (SDLValidationContext) -> Visitor
164164
public final class ValidationContext: ASTValidationContext {
165165
public let schema: GraphQLSchema
166166
let typeInfo: TypeInfo
167-
var errors: [GraphQLError]
168167
var variableUsages: [HasSelectionSet: [VariableUsage]]
169168
var recursiveVariableUsages: [OperationDefinition: [VariableUsage]]
170169

171-
init(schema: GraphQLSchema, ast: Document, typeInfo: TypeInfo) {
170+
init(schema: GraphQLSchema, ast: Document, typeInfo: TypeInfo, onError: @escaping (GraphQLError) -> Void) {
172171
self.schema = schema
173172
self.typeInfo = typeInfo
174-
errors = []
175173
variableUsages = [:]
176174
recursiveVariableUsages = [:]
177175

178-
super.init(ast: ast) { _ in }
179-
}
180-
181-
public override func report(error: GraphQLError) {
182-
errors.append(error)
176+
super.init(ast: ast, onError: onError)
183177
}
184178

185179
func getSchema() -> GraphQLSchema? {

0 commit comments

Comments
 (0)