Skip to content

Commit bc68510

Browse files
fix(graphql): add info on how to migrate, import only from root files
1 parent 069f362 commit bc68510

File tree

6 files changed

+27
-10
lines changed

6 files changed

+27
-10
lines changed

packages/apollo/lib/drivers/apollo-base.driver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { HttpStatus } from '@nestjs/common';
22
import { loadPackage } from '@nestjs/common/utils/load-package.util';
33
import { isFunction } from '@nestjs/common/utils/shared.utils';
4-
import { AbstractGraphQLDriver } from '@nestjs/graphql/drivers/abstract-graphql.driver';
4+
import { AbstractGraphQLDriver } from '@nestjs/graphql';
55
import {
66
ApolloError,
77
ApolloServerBase,

packages/apollo/lib/drivers/apollo-federation.driver.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { Injectable } from '@nestjs/common';
22
import { loadPackage } from '@nestjs/common/utils/load-package.util';
33
import { ModulesContainer } from '@nestjs/core';
4-
import { GraphQLFederationFactory } from '@nestjs/graphql/federation/graphql-federation.factory';
5-
import { extend } from '@nestjs/graphql/utils/extend.util';
4+
import { extend, GraphQLFederationFactory } from '@nestjs/graphql';
65
import { ApolloDriverConfig } from '../interfaces';
76
import { PluginsExplorerService } from '../services/plugins-explorer.service';
87
import { ApolloBaseDriver } from './apollo-base.driver';

packages/apollo/lib/drivers/apollo.driver.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { Injectable } from '@nestjs/common';
22
import { ModulesContainer } from '@nestjs/core';
3-
import { GqlSubscriptionService, SubscriptionConfig } from '@nestjs/graphql';
4-
import { extend } from '@nestjs/graphql/utils';
3+
import {
4+
extend,
5+
GqlSubscriptionService,
6+
SubscriptionConfig,
7+
} from '@nestjs/graphql';
58
import { printSchema } from 'graphql';
69
import { ApolloDriverConfig } from '../interfaces';
710
import { PluginsExplorerService } from '../services/plugins-explorer.service';

packages/apollo/lib/services/plugins-explorer.service.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
22
import { ModulesContainer } from '@nestjs/core/injector/modules-container';
3-
import { GqlModuleOptions } from '@nestjs/graphql/interfaces/gql-module-options.interface';
4-
import { BaseExplorerService } from '@nestjs/graphql/services/base-explorer.service';
3+
import { BaseExplorerService, GqlModuleOptions } from '@nestjs/graphql';
54
import { PLUGIN_METADATA } from '../apollo.constants';
65

76
export class PluginsExplorerService extends BaseExplorerService {

packages/graphql/lib/graphql.module.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Inject, Module } from '@nestjs/common';
1+
import { Inject, Logger, Module } from '@nestjs/common';
22
import {
33
DynamicModule,
44
OnModuleDestroy,
@@ -48,6 +48,8 @@ export class GraphQLModule<
4848
TAdapter extends AbstractGraphQLDriver = AbstractGraphQLDriver,
4949
> implements OnModuleInit, OnModuleDestroy
5050
{
51+
private static readonly logger = new Logger('GraphQLModule');
52+
5153
get graphQlAdapter(): TAdapter {
5254
return this._graphQlAdapter as TAdapter;
5355
}
@@ -59,9 +61,15 @@ export class GraphQLModule<
5961
private readonly graphQlTypesLoader: GraphQLTypesLoader,
6062
) {}
6163

64+
async onModuleDestroy() {
65+
await this._graphQlAdapter.stop();
66+
}
67+
6268
static forRoot<TOptions extends Record<string, any> = GqlModuleOptions>(
6369
options: TOptions = {} as TOptions,
6470
): DynamicModule {
71+
this.assertDriver(options);
72+
6573
return {
6674
module: GraphQLModule,
6775
providers: [
@@ -80,6 +88,7 @@ export class GraphQLModule<
8088
static forRootAsync<TOptions extends Record<string, any> = GqlModuleOptions>(
8189
options: GqlModuleAsyncOptions<TOptions, GqlOptionsFactory<TOptions>>,
8290
): DynamicModule {
91+
this.assertDriver(options);
8392
return {
8493
module: GraphQLModule,
8594
imports: options.imports,
@@ -150,7 +159,12 @@ export class GraphQLModule<
150159
});
151160
}
152161

153-
async onModuleDestroy() {
154-
await this._graphQlAdapter.stop();
162+
private static assertDriver(options: Record<string, any>) {
163+
if (!options.driver) {
164+
const errorMessage =
165+
'Missing "driver" option. In the latest version of "@nestjs/graphql" package (v10) a new required configuration property called "driver" has been introduced. Check out the official documentation for more details on how to migrate ("Quick start" chapter).';
166+
this.logger.error(errorMessage);
167+
throw new Error(errorMessage);
168+
}
155169
}
156170
}

packages/graphql/lib/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ export * from './graphql.module';
1010
export * from './interfaces';
1111
export * from './scalars';
1212
export * from './schema-builder';
13+
export * from './services/base-explorer.service';
1314
export * from './services/gql-arguments-host';
1415
export * from './services/gql-execution-context';
1516
export * from './services/gql-subscription.service';
1617
export * from './tokens';
1718
export * from './type-factories';
1819
export * from './type-helpers';
20+
export * from './utils/extend.util';

0 commit comments

Comments
 (0)