Skip to content

Commit 406716a

Browse files
authored
graphql-request-base-query: bump graphql-request, add AbortSignal support (reduxjs#2030)
1 parent 2bb44b9 commit 406716a

File tree

6 files changed

+64
-33
lines changed

6 files changed

+64
-33
lines changed

examples/query/react/graphql-codegen/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"@emotion/styled": "^11.3.0",
1111
"@mswjs/data": "^0.4.0",
1212
"@reduxjs/toolkit": "^1.6.0",
13-
"@rtk-query/graphql-request-base-query": "^1.0.3",
13+
"@rtk-query/graphql-request-base-query": "^2.0.0",
1414
"faker": "^5.5.3",
1515
"framer-motion": "^2.9.5",
1616
"graphql": "^15.5.0",

examples/query/react/graphql/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"@emotion/styled": "^11.3.0",
1212
"@mswjs/data": "^0.3.0",
1313
"@reduxjs/toolkit": "^1.6.0-rc.1",
14-
"@rtk-query/graphql-request-base-query": "workspace:packages/rtk-query-graphql-request-base-query",
14+
"@rtk-query/graphql-request-base-query": "^2.0.0",
1515
"faker": "^5.5.3",
1616
"framer-motion": "^2.9.5",
1717
"graphql": "^15.5.0",

packages/rtk-query-graphql-request-base-query/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@rtk-query/graphql-request-base-query",
3-
"version": "1.0.3",
3+
"version": "2.0.0",
44
"author": {
55
"name": "Lenz Weber",
66
"email": "mail@phryneas.de",
@@ -19,7 +19,7 @@
1919
"dev": "microbundle watch"
2020
},
2121
"dependencies": {
22-
"graphql-request": "^3.4.0"
22+
"graphql-request": "^4.0.0"
2323
},
2424
"peerDependencies": {
2525
"@reduxjs/toolkit": "^1.7.1",

packages/rtk-query-graphql-request-base-query/src/GraphqlBaseQueryTypes.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
import type { BaseQueryApi } from '@reduxjs/toolkit/dist/query/baseQueryTypes'
2-
import type { GraphQLClient } from 'graphql-request'
2+
import type {
3+
GraphQLClient,
4+
RequestOptions,
5+
RequestDocument,
6+
} from 'graphql-request'
37

4-
type P = Parameters<GraphQLClient['request']>
5-
export type Document = P[0]
6-
export type Variables = P[1]
7-
export type RequestHeaders = P[2]
8+
export type Document = RequestDocument
9+
export type RequestHeaders = RequestOptions['requestHeaders']
10+
export type PrepareHeaders = (
11+
headers: Headers,
12+
api: Pick<BaseQueryApi, 'getState' | 'endpoint' | 'type' | 'forced' | 'extra'>
13+
) => MaybePromise<Headers>
814

9-
export type GraphqlRequestBaseQueryArgs = {
10-
options:
11-
| {
12-
url: string
13-
requestHeaders?: RequestHeaders
14-
}
15-
| { client: GraphQLClient }
16-
prepareHeaders?: (
17-
headers: Headers,
18-
api: Pick<BaseQueryApi, 'getState' | 'endpoint' | 'type' | 'forced'>
19-
) => MaybePromise<Headers>
15+
export type GraphqlRequestBaseQueryArgs = (
16+
| {
17+
url: string
18+
}
19+
| { client: GraphQLClient }
20+
) & {
21+
requestHeaders?: RequestHeaders
22+
prepareHeaders?: PrepareHeaders
2023
}
2124

2225
export type QueryReturnValue<T = unknown, E = unknown, M = unknown> =

packages/rtk-query-graphql-request-base-query/src/index.ts

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import type { DocumentNode } from 'graphql'
44
import { GraphQLClient, ClientError } from 'graphql-request'
55
import type {
66
GraphqlRequestBaseQueryArgs,
7+
PrepareHeaders,
78
RequestHeaders,
89
} from './GraphqlBaseQueryTypes'
910

10-
export const graphqlRequestBaseQuery = ({
11-
options,
12-
prepareHeaders = (x) => x,
13-
}: GraphqlRequestBaseQueryArgs): BaseQueryFn<
11+
export const graphqlRequestBaseQuery = (
12+
options: GraphqlRequestBaseQueryArgs
13+
): BaseQueryFn<
1414
{ document: string | DocumentNode; variables?: any },
1515
unknown,
1616
Pick<ClientError, 'name' | 'message' | 'stack'>,
@@ -23,15 +23,30 @@ export const graphqlRequestBaseQuery = ({
2323

2424
return async (
2525
{ document, variables },
26-
{ getState, endpoint, forced, type }
26+
{ getState, endpoint, forced, type, signal, extra }
2727
) => {
2828
try {
29+
const prepareHeaders: PrepareHeaders =
30+
options.prepareHeaders ?? ((x) => x)
2931
const headers = new Headers(stripUndefined(requestHeaders))
3032

31-
client.setHeaders(
32-
await prepareHeaders(headers, { getState, endpoint, forced, type })
33-
)
34-
return { data: await client.request(document, variables), meta: {} }
33+
const preparedHeaders = await prepareHeaders(headers, {
34+
getState,
35+
endpoint,
36+
forced,
37+
type,
38+
extra,
39+
})
40+
41+
return {
42+
data: await client.request({
43+
document,
44+
variables,
45+
signal,
46+
requestHeaders: preparedHeaders,
47+
}),
48+
meta: {},
49+
}
3550
} catch (error) {
3651
if (error instanceof ClientError) {
3752
const { name, message, stack, request, response } = error

yarn.lock

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3818,7 +3818,7 @@ __metadata:
38183818
"@graphql-typed-document-node/core": ^3.1.0
38193819
"@mswjs/data": ^0.4.0
38203820
"@reduxjs/toolkit": ^1.6.0
3821-
"@rtk-query/graphql-request-base-query": ^1.0.3
3821+
"@rtk-query/graphql-request-base-query": ^2.0.0
38223822
"@types/faker": ^5.5.5
38233823
"@types/react": 17.0.0
38243824
"@types/react-dom": 17.0.0
@@ -3852,7 +3852,7 @@ __metadata:
38523852
"@emotion/styled": ^11.3.0
38533853
"@mswjs/data": ^0.3.0
38543854
"@reduxjs/toolkit": ^1.6.0-rc.1
3855-
"@rtk-query/graphql-request-base-query": "workspace:packages/rtk-query-graphql-request-base-query"
3855+
"@rtk-query/graphql-request-base-query": ^2.0.0
38563856
"@types/faker": ^5.5.5
38573857
"@types/react": 17.0.0
38583858
"@types/react-dom": 17.0.0
@@ -5552,13 +5552,13 @@ __metadata:
55525552
languageName: unknown
55535553
linkType: soft
55545554

5555-
"@rtk-query/graphql-request-base-query@^1.0.3, @rtk-query/graphql-request-base-query@workspace:packages/rtk-query-graphql-request-base-query":
5555+
"@rtk-query/graphql-request-base-query@^2.0.0, @rtk-query/graphql-request-base-query@workspace:packages/rtk-query-graphql-request-base-query":
55565556
version: 0.0.0-use.local
55575557
resolution: "@rtk-query/graphql-request-base-query@workspace:packages/rtk-query-graphql-request-base-query"
55585558
dependencies:
55595559
"@reduxjs/toolkit": ^1.6.0
55605560
graphql: ^15.5.0
5561-
graphql-request: ^3.4.0
5561+
graphql-request: ^4.0.0
55625562
microbundle: ^0.13.3
55635563
typescript: ^4.3.4
55645564
peerDependencies:
@@ -13815,6 +13815,19 @@ fsevents@^1.2.7:
1381513815
languageName: node
1381613816
linkType: hard
1381713817

13818+
"graphql-request@npm:^4.0.0":
13819+
version: 4.0.0
13820+
resolution: "graphql-request@npm:4.0.0"
13821+
dependencies:
13822+
cross-fetch: ^3.0.6
13823+
extract-files: ^9.0.0
13824+
form-data: ^3.0.0
13825+
peerDependencies:
13826+
graphql: 14 - 16
13827+
checksum: 0d16c7f06360679c022faaa19554c2693e200263beae0dec920b0668f6c48b0d08de6e1155a50a050283a58a878b29b04db129a2d932a645bfadbe8d55530243
13828+
languageName: node
13829+
linkType: hard
13830+
1381813831
"graphql-tag@npm:^2.11.0":
1381913832
version: 2.12.5
1382013833
resolution: "graphql-tag@npm:2.12.5"

0 commit comments

Comments
 (0)