@@ -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.
267268public 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
276278public typealias SubscriptionObservable = Observable < Future < GraphQLResult > >
277279
278280struct 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
0 commit comments