Migration Guide
- ApolloModuleis back
- File upload requires extract-fileslibrary
ApolloModule
The lazy-loading was broken in the previous major version but now it's fixed, all thanks to bringing
back the ApolloModule. Just like with any other NgModule, put it wherever makes sense for your
app, usually it's AppModule or GraphQLModule.
import { NgModule } from '@angular/core'
import { HttpClientModule } from '@angular/common/http'
-import { APOLLO_OPTIONS } from 'apollo-angular'
+import { ApolloModule, APOLLO_OPTIONS } from 'apollo-angular'
import { HttpLink } from 'apollo-angular/http'
import { InMemoryCache } from '@apollo/client/core'
 
@NgModule({
  imports: [
    // ... other modules
    HttpClientModule,
+   ApolloModule
  ],
  providers: [
    {
      provide: APOLLO_OPTIONS,
      useFactory(httpLink: HttpLink) {
        return {
          cache: new InMemoryCache(),
          link: httpLink.create({
            uri: 'http://localhost:3000'
          })
        }
      },
      deps: [HttpLink]
    }
  ]
})
class AppModule {}File Upload
New apollo-angular no longer depends on extract-files library. In order to use file uploads, you
need to pass the extractFiles function (or create your own) to the ApolloLink.create():
import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';
import { HttpLink } from 'apollo-angular/http';
import extractFiles from 'extract-files/extractFiles.mjs';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { InMemoryCache } from '@apollo/client/core';
 
@NgModule({
  imports: [
    // ... other modules
    HttpClientModule,
    ApolloModule,
  ],
  providers: [
    {
      provide: APOLLO_OPTIONS,
      useFactory(httpLink: HttpLink) {
        return {
          cache: new InMemoryCache(),
          link: httpLink.create({
            uri: 'http://localhost:3000',
            extractFiles,
          }),
        };
      },
      deps: [HttpLink],
    },
  ],
})
class AppModule {}