2
2
import { resolveRequestDocument } from './resolveRequestDocument.js'
3
3
import type { RequestDocument , Variables } from './types.js'
4
4
import { ClientError } from './types.js'
5
+ import { TypedDocumentNode } from '@graphql-typed-document-node/core'
5
6
// import type WebSocket from 'ws'
6
7
7
8
const CONNECTION_INIT = `connection_init`
@@ -159,7 +160,7 @@ export class GraphQLWebSocketClient {
159
160
case ERROR : {
160
161
subscriber . error &&
161
162
subscriber . error (
162
- new ClientError ( { errors : message . payload , status : 200 } , { query, variables } )
163
+ new ClientError ( { errors : message . payload , status : 200 } , { query, variables } ) ,
163
164
)
164
165
return
165
166
}
@@ -183,7 +184,7 @@ export class GraphQLWebSocketClient {
183
184
query : string ,
184
185
operationName : string | undefined ,
185
186
subscriber : GraphQLSubscriber < T , E > ,
186
- variables ?: V
187
+ variables ?: V ,
187
188
) : UnsubscribeCallback {
188
189
const subscriptionId = ( this . socketState . lastRequestId ++ ) . toString ( )
189
190
this . socketState . subscriptions [ subscriptionId ] = { query, variables, subscriber }
@@ -196,7 +197,7 @@ export class GraphQLWebSocketClient {
196
197
197
198
rawRequest < T = any , V extends Variables = Variables , E = any > (
198
199
query : string ,
199
- variables ?: V
200
+ variables ?: V ,
200
201
) : Promise < { data : T ; extensions ?: E } > {
201
202
return new Promise < { data : T ; extensions ?: E ; headers ?: Headers ; status ?: number } > ( ( resolve , reject ) => {
202
203
let result : { data : T ; extensions ?: E }
@@ -207,12 +208,15 @@ export class GraphQLWebSocketClient {
207
208
error : reject ,
208
209
complete : ( ) => resolve ( result ) ,
209
210
} ,
210
- variables
211
+ variables ,
211
212
)
212
213
} )
213
214
}
214
215
215
- request < T = any , V extends Variables = Variables > ( document : RequestDocument , variables ?: V ) : Promise < T > {
216
+ request < T = any , V extends Variables = Variables > (
217
+ document : RequestDocument | TypedDocumentNode < T , V > ,
218
+ variables ?: V ,
219
+ ) : Promise < T > {
216
220
return new Promise < T > ( ( resolve , reject ) => {
217
221
let result : T
218
222
this . subscribe (
@@ -222,15 +226,15 @@ export class GraphQLWebSocketClient {
222
226
error : reject ,
223
227
complete : ( ) => resolve ( result ) ,
224
228
} ,
225
- variables
229
+ variables ,
226
230
)
227
231
} )
228
232
}
229
233
230
234
subscribe < T = any , V extends Variables = Variables , E = any > (
231
- document : RequestDocument ,
235
+ document : RequestDocument | TypedDocumentNode < T , V > ,
232
236
subscriber : GraphQLSubscriber < T , E > ,
233
- variables ?: V
237
+ variables ?: V ,
234
238
) : UnsubscribeCallback {
235
239
const { query, operationName } = resolveRequestDocument ( document )
236
240
return this . makeSubscribe ( query , operationName , subscriber , variables )
@@ -239,7 +243,7 @@ export class GraphQLWebSocketClient {
239
243
rawSubscribe < T = any , V extends Variables = Variables , E = any > (
240
244
query : string ,
241
245
subscriber : GraphQLSubscriber < T , E > ,
242
- variables ?: V
246
+ variables ?: V ,
243
247
) : UnsubscribeCallback {
244
248
return this . makeSubscribe ( query , undefined , subscriber , variables )
245
249
}
0 commit comments