GraphQL API
Complete reference for the GraphQL client.
createGraphQLClient
Creates a new GraphQL client instance.
function createGraphQLClient(options: GraphQLClientOptions): GraphQLClient
Parameters
| Parameter | Type | Description |
|---|---|---|
options.endpoint | string | GraphQL endpoint URL |
options.headers | Record<string, string> | Default headers |
options.timeout | number | Request timeout in ms |
Example
import { createGraphQLClient } from 'wdio-api-runner'
const graphql = createGraphQLClient({
endpoint: 'https://api.example.com/graphql',
headers: { 'Authorization': 'Bearer token' }
})
Query Methods
query
Executes a GraphQL query.
query<T>(
query: string,
variables?: Record<string, any>,
options?: RequestOptions
): Promise<GraphQLResponse<T>>
mutate
Executes a GraphQL mutation.
mutate<T>(
mutation: string,
variables?: Record<string, any>,
options?: RequestOptions
): Promise<GraphQLResponse<T>>
execute
Executes a built query.
execute<T>(
query: BuiltQuery,
variables?: Record<string, any>
): Promise<GraphQLResponse<T>>
Query Builder
buildQuery
Creates a query builder.
buildQuery(operationName: string): QueryBuilder
buildMutation
Creates a mutation builder.
buildMutation(operationName: string): QueryBuilder
QueryBuilder Methods
| Method | Description |
|---|---|
addVariable(name, type, defaultValue?) | Add a variable |
select(field, options) | Add a field selection |
addFragment(name, onType, fields) | Add a fragment |
build() | Build the query string |
Subscriptions
subscriptions.configure
Configures subscription transport.
subscriptions.configure(options: SubscriptionOptions): void
subscriptions.subscribe
Creates a subscription.
subscriptions.subscribe<T>(
subscription: string,
options: SubscribeOptions<T>
): Subscription
subscriptions.connect
Manually connects.
subscriptions.connect(): Promise<void>
subscriptions.disconnect
Disconnects.
subscriptions.disconnect(): Promise<void>
subscriptions.isConnected
Checks connection status.
subscriptions.isConnected(): boolean
Configuration Methods
setEndpoint
Sets the GraphQL endpoint.
setEndpoint(url: string): void
setHeader
Sets a header.
setHeader(name: string, value: string): void
Types
GraphQLClientOptions
interface GraphQLClientOptions {
endpoint: string
headers?: Record<string, string>
timeout?: number
}
GraphQLResponse
interface GraphQLResponse<T> {
isSuccess: boolean
isError: boolean
isNetworkError: boolean
data?: {
data: T
errors?: GraphQLError[]
}
errors?: GraphQLError[]
error?: Error
status: number
headers: Headers
}
GraphQLError
interface GraphQLError {
message: string
locations?: Array<{ line: number; column: number }>
path?: (string | number)[]
extensions?: Record<string, any>
}
SubscriptionOptions
interface SubscriptionOptions {
webSocket?: {
url: string
connectionParams?: Record<string, any>
reconnect?: boolean
reconnectAttempts?: number
reconnectInterval?: number
}
sse?: {
url: string
headers?: Record<string, string>
}
}
SubscribeOptions
interface SubscribeOptions<T> {
variables?: Record<string, any>
onData?: (data: T) => void
onError?: (error: Error) => void
onComplete?: () => void
}
Subscription
interface Subscription {
unsubscribe(): void
}