@@ -37,7 +37,6 @@ func subscribe(
3737 operationName: String ? = nil
3838) -> EventLoopFuture < SubscriptionResult > {
3939
40-
4140 let sourceFuture = createSourceEventStream (
4241 queryStrategy: queryStrategy,
4342 mutationStrategy: mutationStrategy,
@@ -252,7 +251,7 @@ func executeSubscription(
252251 return SourceEventStreamResult ( errors: context. errors)
253252 } else if let error = resolved as? GraphQLError {
254253 return SourceEventStreamResult ( errors: [ error] )
255- } else if let observable = resolved as? SourceEventStreamObservable {
254+ } else if let observable = resolved as? SourceEventObservable {
256255 return SourceEventStreamResult ( observable: observable)
257256 } else if resolved == nil {
258257 return SourceEventStreamResult ( errors: [
@@ -262,36 +261,23 @@ func executeSubscription(
262261 let resolvedObj = resolved as AnyObject
263262 return SourceEventStreamResult ( errors: [
264263 GraphQLError (
265- message: " Subscription field resolver must return SourceEventStreamObservable . Received: ' \( resolvedObj) ' "
264+ message: " Subscription field resolver must return SourceEventObservable . Received: ' \( resolvedObj) ' "
266265 )
267266 ] )
268267 }
269268 }
270269}
271270
272- /// SubscriptionResult wraps the observable and error data returned by the subscribe request.
273- public struct SubscriptionResult {
274- public let observable : SubscriptionObservable ?
275- public let errors : [ GraphQLError ]
276-
277- public init ( observable: SubscriptionObservable ? = nil , errors: [ GraphQLError ] = [ ] ) {
278- self . observable = observable
279- self . errors = errors
280- }
281- }
282- /// SubscriptionObservable represents an event stream of fully resolved GraphQL subscription results. It can be used to add subscribers to this stream
283- public typealias SubscriptionObservable = Observable < Future < GraphQLResult > >
284-
285271struct SourceEventStreamResult {
286- public let observable : SourceEventStreamObservable ?
272+ public let observable : SourceEventObservable ?
287273 public let errors : [ GraphQLError ]
288274
289- public init ( observable: SourceEventStreamObservable ? = nil , errors: [ GraphQLError ] = [ ] ) {
275+ public init ( observable: SourceEventObservable ? = nil , errors: [ GraphQLError ] = [ ] ) {
290276 self . observable = observable
291277 self . errors = errors
292278 }
293279}
294- /// Observables MUST be declared as 'Any' due to Swift not having covariant generic support. Resolvers should handle type checks.
295- typealias SourceEventStreamObservable = Observable < Any >
296-
297280
281+ // Subscription resolvers MUST return observables that are declared as 'Any' due to Swift not having covariant generic support for type
282+ // checking. Normal resolvers for subscription fields should handle type casting, same as resolvers for query fields.
283+ typealias SourceEventObservable = Observable < Any >
0 commit comments