Skip to content

Commit

Permalink
feat: Add response status code to rawRequest's result
Browse files Browse the repository at this point in the history
  • Loading branch information
schickling authored May 4, 2018
2 parents d365229 + b1986e1 commit ec601d9
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
7 changes: 4 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export class GraphQLClient {
async rawRequest<T extends any>(
query: string,
variables?: Variables,
): Promise<{ data?: T, extensions?: any, headers: Headers, errors?: GraphQLError[] }> {
): Promise<{ data?: T, extensions?: any, headers: Headers, status: number, errors?: GraphQLError[] }> {
const { headers, ...others } = this.options

const body = JSON.stringify({
Expand All @@ -32,7 +32,8 @@ export class GraphQLClient {
const result = await getResult(response)

if (response.ok && !result.errors && result.data) {
return { ...result, headers: response.headers }
const { headers, status } = response
return { ...result, headers, status }
} else {
const errorResult =
typeof result === 'string' ? { error: result } : result
Expand Down Expand Up @@ -97,7 +98,7 @@ export async function rawRequest<T extends any>(
url: string,
query: string,
variables?: Variables,
): Promise<{ data?: T, extensions?: any, headers: Headers, errors?: GraphQLError[] }> {
): Promise<{ data?: T, extensions?: any, headers: Headers, status: number, errors?: GraphQLError[] }> {
const client = new GraphQLClient(url)

return client.rawRequest<T>(query, variables)
Expand Down
4 changes: 2 additions & 2 deletions tests/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ test('minimal raw query', async (t) => {

await mock({body: {data, extensions}}, async () => {
const { headers, ...result } = await rawRequest('https://mock-api.com/graphql', `{ viewer { id } }`)
t.deepEqual(result, {data, extensions})
t.deepEqual(result, {data, extensions, status: 200})
})
})

Expand All @@ -50,7 +50,7 @@ test('minimal raw query with response headers', async (t) => {

await mock({headers: reqHeaders, body: {data, extensions}}, async () => {
const { headers, ...result } = await rawRequest('https://mock-api.com/graphql', `{ viewer { id } }`)
t.deepEqual(result, {data, extensions})
t.deepEqual(result, {data, extensions, status: 200})
t.deepEqual(headers.get('X-Custom-Header'), reqHeaders['X-Custom-Header'])
})
})
Expand Down

0 comments on commit ec601d9

Please sign in to comment.