Information about the network status of your GraphQL operations. Built for Apollo Angular.
yarn add apollo-angular-link-network-status # or npm install apollo-angular-link-network-status
Setup the module:
import { ApolloNetworkStatusModule } from 'apollo-angular-link-network-status'; @NgModule({ imports: [ //... ApolloNetworkStatusModule ] }) export class AppModule {}
Use the link:
import { ApolloNetworkStatus } from 'apollo-angular-link-network-status'; @NgModule({ // ... providers: [{ provide: APOLLO_OPTIONS, useFactory(networkStatus: ApolloNetworkStatus, httpLink: HttpLink) { return { link: networkStatus.concat( // <-- as a regular Apollo Link httpLink.create({ uri }) ), cache: new InMemoryCache() } }, deps: [ApolloNetworkStatus, HttpLink] }] }) export class AppModule {}
Usage inside of a component or a service:
import { Component } from '@angular/core'; import { ApolloNetworkStatus } from 'apollo-angular-link-network-status'; @Component({ selector: 'app', template: ` <app-list></app-list> <div *ngIf="(networkStatus.isPending | async)">Loading</div> `, }) export class AppComponent { constructor(public networkStatus: ApolloNetworkStatus) { networkStatus.isPending.subscribe(isPending => { console.log('isPending', isPending); }); networkStatus.onRequest.subscribe(event => { console.log('request', event); }); networkStatus.onSuccess.subscribe(event => { console.log('success', event); }); networkStatus.onError.subscribe(event => { console.log('error', event); }); networkStatus.onCancel.subscribe(event => { console.log('cancel', event); }); } }