@rtk-query/graphql-request-base-query
Version:
48 lines (43 loc) • 1.01 kB
text/typescript
import type { BaseQueryApi } from '@reduxjs/toolkit/query'
import type {
GraphQLClient,
RequestOptions,
RequestDocument,
ClientError,
} from 'graphql-request'
export type Document = RequestDocument
export type RequestHeaders = RequestOptions['requestHeaders']
export type PrepareHeaders = (
headers: Headers,
api: Pick<
BaseQueryApi,
'getState' | 'endpoint' | 'type' | 'forced' | 'extra'
>,
) => MaybePromise<Headers>
export type ErrorResponse = {
message: string
stack: string
name: string
}
export type GraphqlRequestBaseQueryArgs<E = ErrorResponse> = (
| {
url: string
}
| { client: GraphQLClient }
) & {
requestHeaders?: RequestHeaders
prepareHeaders?: PrepareHeaders
customErrors?: (args: ClientError) => E
}
export type QueryReturnValue<T = unknown, E = unknown, M = unknown> =
| {
error: E
data?: undefined
meta?: M
}
| {
error?: undefined
data: T
meta?: M
}
export type MaybePromise<T> = T | PromiseLike<T>