title: union type on subscriptions result
body: <p>there is no information available on how to mount graphql union type on subscriptions. is it even possible?</p>
  <pre class="lang-js prettyprint-override"><code>type Subscription {
     joinRequest(id: UUID!): MemberUnion!
  }
  
  type User { ... }
  type Guest { ... }
  
  union MemberUnion = User | Guest
  </code></pre>
  <p>and it's working perfectly with my queries or mutations, just need any information about how to implement with my subscription. <code>joinRequest</code> key is <code>userId</code> and <code>role</code>. <code>role</code> should stand for resolver where either <code>user</code> or <code>guest</code> information should be fetched by passed <code>userId</code> argument.</p>
  <p>error I see after trying to launch code as it is now:</p>
  <blockquote>
  <p>&quot;Abstract type &quot;MemberUnion&quot; must resolve to an Object type at runtime for field &quot;Subscription.joinRequest&quot; with value { userId: &quot;3bdb0eb5-f237-40a7-bebc-6263cc18dba5&quot;, name: &quot;trolololo3&quot;, payload: { ... } }, received &quot;null&quot;. Either the &quot;MemberUnion&quot; type should provide a &quot;resolveType&quot; function or each possible type should provide an &quot;isTypeOf&quot; function.&quot;</p>
  </blockquote>
  <p>my resolvers files which export queries, mutations and subscriptions:</p>
  <pre class="lang-js prettyprint-override"><code>import ....
  
  export default {
    Query: {
      ...User,
      ...Listing,
      ...Products
    },
    Mutation: {
      ...ListingMutations,
      ...ProductsMutations
    },
    Subscription: {
      ...ProductsSubscription,
      ...ListingSubscription
    },
  Products: {
      items: ({ id: itemId }) =&gt; method({ itemId })
    },
   MemberUnion: {
      // eslint-disable-next-line no-underscore-dangle
      __resolveType: obj =&gt; {
        if (obj.role === USER_ROLE.GUEST) {
          return 'Guest';
        }
  
        if (obj.role === USER_ROLE.USER) {
          return 'User';
        }
  
        return null;
      }
    },
  ....
  </code></pre>
  <p>and as I said before, this works fine when I implement <code>MemberUnion</code> on any query or mutation response where I want to select user object which could be user or guest.</p>