Skip to main content

GraphQL API

Complete reference for the GraphQL client.

createGraphQLClient

Creates a new GraphQL client instance.

function createGraphQLClient(options: GraphQLClientOptions): GraphQLClient

Parameters

ParameterTypeDescription
options.endpointstringGraphQL endpoint URL
options.headersRecord<string, string>Default headers
options.timeoutnumberRequest 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

MethodDescription
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
}