Skip to content

Commit a9fcb44

Browse files
authored
fix: add support for TypedDocumentNode to be passed to WS methods (#585)
1 parent e52e70d commit a9fcb44

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/graphql-ws.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import { resolveRequestDocument } from './resolveRequestDocument.js'
33
import type { RequestDocument, Variables } from './types.js'
44
import { ClientError } from './types.js'
5+
import { TypedDocumentNode } from '@graphql-typed-document-node/core'
56
// import type WebSocket from 'ws'
67

78
const CONNECTION_INIT = `connection_init`
@@ -159,7 +160,7 @@ export class GraphQLWebSocketClient {
159160
case ERROR: {
160161
subscriber.error &&
161162
subscriber.error(
162-
new ClientError({ errors: message.payload, status: 200 }, { query, variables })
163+
new ClientError({ errors: message.payload, status: 200 }, { query, variables }),
163164
)
164165
return
165166
}
@@ -183,7 +184,7 @@ export class GraphQLWebSocketClient {
183184
query: string,
184185
operationName: string | undefined,
185186
subscriber: GraphQLSubscriber<T, E>,
186-
variables?: V
187+
variables?: V,
187188
): UnsubscribeCallback {
188189
const subscriptionId = (this.socketState.lastRequestId++).toString()
189190
this.socketState.subscriptions[subscriptionId] = { query, variables, subscriber }
@@ -196,7 +197,7 @@ export class GraphQLWebSocketClient {
196197

197198
rawRequest<T = any, V extends Variables = Variables, E = any>(
198199
query: string,
199-
variables?: V
200+
variables?: V,
200201
): Promise<{ data: T; extensions?: E }> {
201202
return new Promise<{ data: T; extensions?: E; headers?: Headers; status?: number }>((resolve, reject) => {
202203
let result: { data: T; extensions?: E }
@@ -207,12 +208,15 @@ export class GraphQLWebSocketClient {
207208
error: reject,
208209
complete: () => resolve(result),
209210
},
210-
variables
211+
variables,
211212
)
212213
})
213214
}
214215

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> {
216220
return new Promise<T>((resolve, reject) => {
217221
let result: T
218222
this.subscribe(
@@ -222,15 +226,15 @@ export class GraphQLWebSocketClient {
222226
error: reject,
223227
complete: () => resolve(result),
224228
},
225-
variables
229+
variables,
226230
)
227231
})
228232
}
229233

230234
subscribe<T = any, V extends Variables = Variables, E = any>(
231-
document: RequestDocument,
235+
document: RequestDocument | TypedDocumentNode<T, V>,
232236
subscriber: GraphQLSubscriber<T, E>,
233-
variables?: V
237+
variables?: V,
234238
): UnsubscribeCallback {
235239
const { query, operationName } = resolveRequestDocument(document)
236240
return this.makeSubscribe(query, operationName, subscriber, variables)
@@ -239,7 +243,7 @@ export class GraphQLWebSocketClient {
239243
rawSubscribe<T = any, V extends Variables = Variables, E = any>(
240244
query: string,
241245
subscriber: GraphQLSubscriber<T, E>,
242-
variables?: V
246+
variables?: V,
243247
): UnsubscribeCallback {
244248
return this.makeSubscribe(query, undefined, subscriber, variables)
245249
}

0 commit comments

Comments
 (0)