import { Observable } from 'rxjs'; import { Apollo } from 'apollo-angular'; import { Injectable } from '@angular/core'; import { map } from 'rxjs/operators'; @Injectable() export class GqlService { constructor(private readonly apollo: Apollo) {} public watchQuery({ query }): Observable { return this.apollo.watchQuery({ query, fetchPolicy: 'network-only' }).valueChanges.pipe(map(({ data }) => { const key = Object.keys(data)[0]; return data[key]; })); } public mutate({ mutation, variables }): Observable { return this.apollo.mutate({ mutation, variables }); } }