Skip to content

Commit 83632df

Browse files
author
Jay Herron
committed
Adds justification for forced unwrapping
1 parent aee8841 commit 83632df

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

Sources/GraphQL/Subscription/Subscribe.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,14 @@ func executeSubscription(
183183
fields: &inputFields,
184184
visitedFragmentNames: &visitedFragmentNames
185185
)
186-
let responseNames = fields.keys
187-
let responseName = responseNames.first! // TODO add error handling here
186+
// If query is valid, fields is guaranteed to have at least 1 member
187+
let responseName = fields.keys.first!
188188
let fieldNodes = fields[responseName]!
189189
let fieldNode = fieldNodes.first!
190190

191191
guard let fieldDef = getFieldDef(schema: context.schema, parentType: type, fieldAST: fieldNode) else {
192192
throw GraphQLError(
193-
message: "`The subscription field '\(fieldNode.name.value)' is not defined.`",
193+
message: "The subscription field '\(fieldNode.name.value)' is not defined.",
194194
nodes: fieldNodes
195195
)
196196
}
@@ -264,20 +264,22 @@ func executeSubscription(
264264
}
265265
}
266266

267+
/// SubscriptionResult wraps the observable and error data returned by the subscribe request.
267268
public struct SubscriptionResult {
268-
public var observable: SubscriptionObservable?
269-
public var errors: [GraphQLError]
269+
public let observable: SubscriptionObservable?
270+
public let errors: [GraphQLError]
270271

271272
public init(observable: SubscriptionObservable? = nil, errors: [GraphQLError] = []) {
272273
self.observable = observable
273274
self.errors = errors
274275
}
275276
}
277+
/// SubscriptionObservable represents an event stream of fully resolved GraphQL subscription results. It can be used to add subscribers to this stream
276278
public typealias SubscriptionObservable = Observable<Future<GraphQLResult>>
277279

278280
struct SourceEventStreamResult {
279-
public var observable: SourceEventStreamObservable?
280-
public var errors: [GraphQLError]
281+
public let observable: SourceEventStreamObservable?
282+
public let errors: [GraphQLError]
281283

282284
public init(observable: SourceEventStreamObservable? = nil, errors: [GraphQLError] = []) {
283285
self.observable = observable

Tests/GraphQLTests/Subscription/SubscriptionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ class SubscriptionTests : XCTestCase {
173173
)
174174
) { error in
175175
let graphQLError = error as! GraphQLError
176-
XCTAssertEqual(graphQLError.message, "`The subscription field 'unknownField' is not defined.`")
176+
XCTAssertEqual(graphQLError.message, "The subscription field 'unknownField' is not defined.")
177177
XCTAssertEqual(graphQLError.locations, [SourceLocation(line: 2, column: 5)])
178178
}
179179
}

0 commit comments

Comments
 (0)