@@ -12,7 +12,11 @@ import {
12
12
} from "@proto-kit/common" ;
13
13
14
14
import { GraphqlServer } from "./GraphqlServer" ;
15
- import { GraphqlModule , SchemaGeneratingGraphqlModule } from "./GraphqlModule" ;
15
+ import {
16
+ GraphqlModule ,
17
+ ResolverFactoryGraphqlModule ,
18
+ SchemaGeneratingGraphqlModule ,
19
+ } from "./GraphqlModule" ;
16
20
17
21
export type GraphqlModulesRecord = ModulesRecord <
18
22
TypedClass < GraphqlModule < unknown > >
@@ -55,22 +59,38 @@ export class GraphqlSequencerModule<GraphQLModules extends GraphqlModulesRecord>
55
59
// eslint-disable-next-line guard-for-in
56
60
for ( const moduleName in this . definition . modules ) {
57
61
const moduleClass = this . definition . modules [ moduleName ] ;
58
- this . graphqlServer . registerModule ( moduleClass ) ;
59
62
60
63
if (
61
64
Object . prototype . isPrototypeOf . call (
62
- SchemaGeneratingGraphqlModule ,
65
+ ResolverFactoryGraphqlModule ,
63
66
moduleClass
64
67
)
65
68
) {
66
- log . debug ( `Registering manual schema for ${ moduleName } ` ) ;
69
+ log . debug ( `Registering resolvers factory from ${ moduleName } ` ) ;
67
70
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
68
71
const module = this . resolve (
69
72
moduleName
70
- ) as SchemaGeneratingGraphqlModule < unknown > ;
71
- this . graphqlServer . registerSchema ( module . generateSchema ( ) ) ;
73
+ ) as ResolverFactoryGraphqlModule < unknown > ;
74
+ // eslint-disable-next-line no-await-in-loop
75
+ this . graphqlServer . registerResolvers ( await module . resolvers ( ) ) ;
76
+ } else {
77
+ this . graphqlServer . registerModule ( moduleClass ) ;
78
+
79
+ if (
80
+ Object . prototype . isPrototypeOf . call (
81
+ SchemaGeneratingGraphqlModule ,
82
+ moduleClass
83
+ )
84
+ ) {
85
+ log . debug ( `Registering manual schema for ${ moduleName } ` ) ;
86
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
87
+ const module = this . resolve (
88
+ moduleName
89
+ ) as SchemaGeneratingGraphqlModule < unknown > ;
90
+ this . graphqlServer . registerSchema ( module . generateSchema ( ) ) ;
91
+ }
72
92
}
73
93
}
74
- void this . graphqlServer . startServer ( ) ;
94
+ await this . graphqlServer . startServer ( ) ;
75
95
}
76
96
}
0 commit comments