11import Http from "node:http" ;
22import Https from "node:https" ;
33
4- import { Constant , Inject , InjectorService , Module } from "@tsed/di" ;
5- import type { Disposable } from "graphql-ws" ;
6- import { useServer } from "graphql-ws/lib/use/ ws" ;
4+ import { constant , inject , logger , Module } from "@tsed/di" ;
5+ import { useServer } from "graphql-ws/use/ ws" ;
6+ import { WebSocketServer } from "ws" ;
77
88import { GraphQLWSOptions } from "./GraphQLWSOptions.js" ;
99
1010@Module ( )
1111export class GraphQLWSModule {
12- @Constant ( "graphqlWs" , { } )
13- private settings : GraphQLWSOptions ;
14-
15- @Inject ( Http . Server )
16- private httpServer : Http . Server | null ;
17-
18- @Inject ( Https . Server )
19- private httpsServer : Https . Server | null ;
20-
21- @Inject ( )
22- private injector : InjectorService ;
12+ private settings = constant < GraphQLWSOptions > ( "graphqlWs" , { } as GraphQLWSOptions ) ;
13+ private httpServer = inject < Http . Server | null > ( Http . Server ) ;
14+ private httpsServer = inject < Https . Server | null > ( Https . Server ) ;
2315
2416 async createWSServer ( settings : GraphQLWSOptions ) {
25- // @ts -ignore
26- const { WebSocketServer} = await import ( "ws" ) ;
27-
28- const wsServer = new WebSocketServer ( {
17+ const opts = {
2918 ...( this . settings . wsServerOptions || { } ) ,
3019 ...settings . wsServerOptions ,
3120 server : this . httpsServer || this . httpServer ! ,
3221 path : settings . path
33- } ) ;
22+ } ;
23+
24+ const wsServer = new WebSocketServer ( opts ) ;
3425
3526 return useServer (
3627 {
@@ -45,7 +36,7 @@ export class GraphQLWSModule {
4536 async $alterApolloServerPlugins ( plugins : any [ ] , settings : GraphQLWSOptions ) {
4637 const wsServer = await this . createWSServer ( settings ) ;
4738
48- this . injector . logger . info ( `Create GraphQL WS server on: ${ settings . path } ` ) ;
39+ logger ( ) . info ( `Create GraphQL WS server on: ${ settings . path } ` ) ;
4940
5041 return plugins . concat ( {
5142 serverWillStart ( ) {
0 commit comments