Skip to content

Commit e0d154f

Browse files
authored
Add custom fetch option (#1119)
1 parent dfe8cc4 commit e0d154f

File tree

12 files changed

+280
-259
lines changed

12 files changed

+280
-259
lines changed

docs/package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@
99
},
1010
"dependencies": {
1111
"@algolia/client-search": "^4.17.0",
12-
"@astrojs/preact": "^2.1.0",
13-
"@astrojs/react": "^2.1.3",
14-
"@docsearch/css": "^3.3.4",
15-
"@docsearch/react": "^3.3.4",
12+
"@astrojs/preact": "^2.2.0",
13+
"@astrojs/react": "^2.2.0",
14+
"@docsearch/css": "^3.3.5",
15+
"@docsearch/react": "^3.3.5",
1616
"@types/react": "^18.2.6",
1717
"@types/react-dom": "^18.2.4",
18-
"astro": "^2.4.5",
19-
"preact": "^10.14.0",
18+
"astro": "^2.5.2",
19+
"preact": "^10.15.0",
2020
"react": "^18.2.0",
2121
"react-dom": "^18.2.0",
2222
"sass": "^1.62.1"
2323
},
2424
"devDependencies": {
2525
"@astrojs/sitemap": "^1.3.1",
26-
"@types/node": "^20.1.4",
26+
"@types/node": "^20.2.3",
2727
"html-escaper": "^3.0.3",
2828
"typescript": "^5.0.4"
2929
}

docs/scripts/update-contributors.js

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ const OPENAPI_TS_CONTRIBUTORS = [
8484
"shoffmeister",
8585
"liangskyli",
8686
"happycollision",
87+
"hd-o",
8788
]),
8889
];
8990

docs/src/content/docs/openapi-fetch/api.md

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ createClient<paths>(options);
1414
| Name | Type | Description |
1515
| :-------------- | :------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1616
| `baseUrl` | `string` | Prefix all fetch URLs with this option (e.g. `"https://myapi.dev/v1/"`). |
17+
| `fetch` | `fetch` | Fetch function used for requests (defaults to `globalThis.fetch`) |
1718
| (Fetch options) | | Any valid fetch option (`headers`, `mode`, `cache`, `signal` …) (<a href="https://developer.mozilla.org/en-US/docs/Web/API/fetch#options" target="_blank" rel="noopener noreferrer">docs</a>) |
1819

1920
## Fetch options

docs/src/data/contributors.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"openapi-typescript":[{"username":"drwpow","avatar":"https://avatars.githubusercontent.com/u/1369770?v=4?s=400"},{"username":"psmyrdek","avatar":"https://avatars.githubusercontent.com/u/6187417?v=4?s=400"},{"username":"enmand","avatar":"https://avatars.githubusercontent.com/u/432487?v=4?s=400"},{"username":"atlefren","avatar":"https://avatars.githubusercontent.com/u/1829927?v=4?s=400"},{"username":"tpdewolf","avatar":"https://avatars.githubusercontent.com/u/4455209?v=4?s=400"},{"username":"tombarton","avatar":"https://avatars.githubusercontent.com/u/6222711?v=4?s=400"},{"username":"svnv","avatar":"https://avatars.githubusercontent.com/u/1080888?v=4?s=400"},{"username":"sorin-davidoi","avatar":"https://avatars.githubusercontent.com/u/2109702?v=4?s=400"},{"username":"scvnathan","avatar":"https://avatars.githubusercontent.com/u/73474?v=4?s=400"},{"username":"lbenie","avatar":"https://avatars.githubusercontent.com/u/7316046?v=4?s=400"},{"username":"bokub","avatar":"https://avatars.githubusercontent.com/u/17952318?v=4?s=400"},{"username":"antonk52","avatar":"https://avatars.githubusercontent.com/u/5817809?v=4?s=400"},{"username":"tshelburne","avatar":"https://avatars.githubusercontent.com/u/1202267?v=4?s=400"},{"username":"mmiszy","avatar":"https://avatars.githubusercontent.com/u/1338731?v=4?s=400"},{"username":"skh-","avatar":"https://avatars.githubusercontent.com/u/1292598?v=4?s=400"},{"username":"BlooJeans","avatar":"https://avatars.githubusercontent.com/u/1751182?v=4?s=400"},{"username":"selbekk","avatar":"https://avatars.githubusercontent.com/u/1307267?v=4?s=400"},{"username":"Mause","avatar":"https://avatars.githubusercontent.com/u/1405026?v=4?s=400"},{"username":"henhal","avatar":"https://avatars.githubusercontent.com/u/9608258?v=4?s=400"},{"username":"gr2m","avatar":"https://avatars.githubusercontent.com/u/39992?v=4?s=400"},{"username":"samdbmg","avatar":"https://avatars.githubusercontent.com/u/408983?v=4?s=400"},{"username":"rendall","avatar":"https://avatars.githubusercontent.com/u/293263?v=4?s=400"},{"username":"robertmassaioli","avatar":"https://avatars.githubusercontent.com/u/149178?v=4?s=400"},{"username":"jankuca","avatar":"https://avatars.githubusercontent.com/u/367262?v=4?s=400"},{"username":"th-m","avatar":"https://avatars.githubusercontent.com/u/13792029?v=4?s=400"},{"username":"asithade","avatar":"https://avatars.githubusercontent.com/u/3814354?v=4?s=400"},{"username":"MikeYermolayev","avatar":"https://avatars.githubusercontent.com/u/8783498?v=4?s=400"},{"username":"radist2s","avatar":"https://avatars.githubusercontent.com/u/725645?v=4?s=400"},{"username":"FedeBev","avatar":"https://avatars.githubusercontent.com/u/22151395?v=4?s=400"},{"username":"yamacent","avatar":"https://avatars.githubusercontent.com/u/8544439?v=4?s=400"},{"username":"dnalborczyk","avatar":"https://avatars.githubusercontent.com/u/2903325?v=4?s=400"},{"username":"FabioWanner","avatar":"https://avatars.githubusercontent.com/u/46821078?v=4?s=400"},{"username":"ashsmith","avatar":"https://avatars.githubusercontent.com/u/1086841?v=4?s=400"},{"username":"mehalter","avatar":"https://avatars.githubusercontent.com/u/1591837?v=4?s=400"},{"username":"Chrg1001","avatar":"https://avatars.githubusercontent.com/u/40189653?v=4?s=400"},{"username":"sharmarajdaksh","avatar":"https://avatars.githubusercontent.com/u/33689528?v=4?s=400"},{"username":"shuluster","avatar":"https://avatars.githubusercontent.com/u/1707910?v=4?s=400"},{"username":"FDiskas","avatar":"https://avatars.githubusercontent.com/u/468006?v=4?s=400"},{"username":"ericzorn93","avatar":"https://avatars.githubusercontent.com/u/22532542?v=4?s=400"},{"username":"mbelsky","avatar":"https://avatars.githubusercontent.com/u/3923527?v=4?s=400"},{"username":"Peteck","avatar":"https://avatars.githubusercontent.com/u/129566390?v=4?s=400"},{"username":"rustyconover","avatar":"https://avatars.githubusercontent.com/u/731941?v=4?s=400"},{"username":"bunkscene","avatar":"https://avatars.githubusercontent.com/u/2693678?v=4?s=400"},{"username":"ottomated","avatar":"https://avatars.githubusercontent.com/u/31470743?v=4?s=400"},{"username":"sadfsdfdsa","avatar":"https://avatars.githubusercontent.com/u/28733669?v=4?s=400"},{"username":"ajaishankar","avatar":"https://avatars.githubusercontent.com/u/328008?v=4?s=400"},{"username":"dominikdosoudil","avatar":"https://avatars.githubusercontent.com/u/15929942?v=4?s=400"},{"username":"kgtkr","avatar":"https://avatars.githubusercontent.com/u/17868838?v=4?s=400"},{"username":"berzi","avatar":"https://avatars.githubusercontent.com/u/32619123?v=4?s=400"},{"username":"PhilipTrauner","avatar":"https://avatars.githubusercontent.com/u/9287847?v=4?s=400"},{"username":"Powell-v2","avatar":"https://avatars.githubusercontent.com/u/25308326?v=4?s=400"},{"username":"duncanbeevers","avatar":"https://avatars.githubusercontent.com/u/7367?v=4?s=400"},{"username":"tkukushkin","avatar":"https://avatars.githubusercontent.com/u/1482516?v=4?s=400"},{"username":"Semigradsky","avatar":"https://avatars.githubusercontent.com/u/1198848?v=4?s=400"},{"username":"MrLeebo","avatar":"https://avatars.githubusercontent.com/u/2754163?v=4?s=400"},{"username":"axelhzf","avatar":"https://avatars.githubusercontent.com/u/175627?v=4?s=400"},{"username":"imagoiq","avatar":"https://avatars.githubusercontent.com/u/12294151?v=4?s=400"},{"username":"BTMPL","avatar":"https://avatars.githubusercontent.com/u/247153?v=4?s=400"},{"username":"HiiiiD","avatar":"https://avatars.githubusercontent.com/u/61231210?v=4?s=400"},{"username":"yacinehmito","avatar":"https://avatars.githubusercontent.com/u/6893840?v=4?s=400"},{"username":"sajadtorkamani","avatar":"https://avatars.githubusercontent.com/u/9380313?v=4?s=400"},{"username":"mvdbeek","avatar":"https://avatars.githubusercontent.com/u/6804901?v=4?s=400"},{"username":"sgrimm","avatar":"https://avatars.githubusercontent.com/u/1248649?v=4?s=400"},{"username":"Swiftwork","avatar":"https://avatars.githubusercontent.com/u/455178?v=4?s=400"},{"username":"mtth","avatar":"https://avatars.githubusercontent.com/u/1216372?v=4?s=400"},{"username":"mitchell-merry","avatar":"https://avatars.githubusercontent.com/u/8567231?v=4?s=400"},{"username":"qnp","avatar":"https://avatars.githubusercontent.com/u/6012554?v=4?s=400"},{"username":"shoffmeister","avatar":"https://avatars.githubusercontent.com/u/3868036?v=4?s=400"},{"username":"liangskyli","avatar":"https://avatars.githubusercontent.com/u/31531283?v=4?s=400"},{"username":"happycollision","avatar":"https://avatars.githubusercontent.com/u/3663628?v=4?s=400"}],"openapi-fetch":[{"username":"drwpow","avatar":"https://avatars.githubusercontent.com/u/1369770?v=4?s=400"},{"username":"fergusean","avatar":"https://avatars.githubusercontent.com/u/1029297?v=4?s=400"},{"username":"shinzui","avatar":"https://avatars.githubusercontent.com/u/519?v=4?s=400"},{"username":"ezpuzz","avatar":"https://avatars.githubusercontent.com/u/672182?v=4?s=400"},{"username":"KotoriK","avatar":"https://avatars.githubusercontent.com/u/52659125?v=4?s=400"},{"username":"fletchertyler914","avatar":"https://avatars.githubusercontent.com/u/3344498?v=4?s=400"},{"username":"nholik","avatar":"https://avatars.githubusercontent.com/u/2022214?v=4?s=400"},{"username":"roj1512","avatar":"https://avatars.githubusercontent.com/u/49933115?v=4?s=400"},{"username":"nickcaballero","avatar":"https://avatars.githubusercontent.com/u/355976?v=4?s=400"}]}
1+
{"openapi-typescript":[{"username":"drwpow","avatar":"https://avatars.githubusercontent.com/u/1369770?v=4?s=400"},{"username":"psmyrdek","avatar":"https://avatars.githubusercontent.com/u/6187417?v=4?s=400"},{"username":"enmand","avatar":"https://avatars.githubusercontent.com/u/432487?v=4?s=400"},{"username":"atlefren","avatar":"https://avatars.githubusercontent.com/u/1829927?v=4?s=400"},{"username":"tpdewolf","avatar":"https://avatars.githubusercontent.com/u/4455209?v=4?s=400"},{"username":"tombarton","avatar":"https://avatars.githubusercontent.com/u/6222711?v=4?s=400"},{"username":"svnv","avatar":"https://avatars.githubusercontent.com/u/1080888?v=4?s=400"},{"username":"sorin-davidoi","avatar":"https://avatars.githubusercontent.com/u/2109702?v=4?s=400"},{"username":"scvnathan","avatar":"https://avatars.githubusercontent.com/u/73474?v=4?s=400"},{"username":"lbenie","avatar":"https://avatars.githubusercontent.com/u/7316046?v=4?s=400"},{"username":"bokub","avatar":"https://avatars.githubusercontent.com/u/17952318?v=4?s=400"},{"username":"antonk52","avatar":"https://avatars.githubusercontent.com/u/5817809?v=4?s=400"},{"username":"tshelburne","avatar":"https://avatars.githubusercontent.com/u/1202267?v=4?s=400"},{"username":"mmiszy","avatar":"https://avatars.githubusercontent.com/u/1338731?v=4?s=400"},{"username":"skh-","avatar":"https://avatars.githubusercontent.com/u/1292598?v=4?s=400"},{"username":"BlooJeans","avatar":"https://avatars.githubusercontent.com/u/1751182?v=4?s=400"},{"username":"selbekk","avatar":"https://avatars.githubusercontent.com/u/1307267?v=4?s=400"},{"username":"Mause","avatar":"https://avatars.githubusercontent.com/u/1405026?v=4?s=400"},{"username":"henhal","avatar":"https://avatars.githubusercontent.com/u/9608258?v=4?s=400"},{"username":"gr2m","avatar":"https://avatars.githubusercontent.com/u/39992?v=4?s=400"},{"username":"samdbmg","avatar":"https://avatars.githubusercontent.com/u/408983?v=4?s=400"},{"username":"rendall","avatar":"https://avatars.githubusercontent.com/u/293263?v=4?s=400"},{"username":"robertmassaioli","avatar":"https://avatars.githubusercontent.com/u/149178?v=4?s=400"},{"username":"jankuca","avatar":"https://avatars.githubusercontent.com/u/367262?v=4?s=400"},{"username":"th-m","avatar":"https://avatars.githubusercontent.com/u/13792029?v=4?s=400"},{"username":"asithade","avatar":"https://avatars.githubusercontent.com/u/3814354?v=4?s=400"},{"username":"MikeYermolayev","avatar":"https://avatars.githubusercontent.com/u/8783498?v=4?s=400"},{"username":"radist2s","avatar":"https://avatars.githubusercontent.com/u/725645?v=4?s=400"},{"username":"FedeBev","avatar":"https://avatars.githubusercontent.com/u/22151395?v=4?s=400"},{"username":"yamacent","avatar":"https://avatars.githubusercontent.com/u/8544439?v=4?s=400"},{"username":"dnalborczyk","avatar":"https://avatars.githubusercontent.com/u/2903325?v=4?s=400"},{"username":"FabioWanner","avatar":"https://avatars.githubusercontent.com/u/46821078?v=4?s=400"},{"username":"ashsmith","avatar":"https://avatars.githubusercontent.com/u/1086841?v=4?s=400"},{"username":"mehalter","avatar":"https://avatars.githubusercontent.com/u/1591837?v=4?s=400"},{"username":"Chrg1001","avatar":"https://avatars.githubusercontent.com/u/40189653?v=4?s=400"},{"username":"sharmarajdaksh","avatar":"https://avatars.githubusercontent.com/u/33689528?v=4?s=400"},{"username":"shuluster","avatar":"https://avatars.githubusercontent.com/u/1707910?v=4?s=400"},{"username":"FDiskas","avatar":"https://avatars.githubusercontent.com/u/468006?v=4?s=400"},{"username":"ericzorn93","avatar":"https://avatars.githubusercontent.com/u/22532542?v=4?s=400"},{"username":"mbelsky","avatar":"https://avatars.githubusercontent.com/u/3923527?v=4?s=400"},{"username":"Peteck","avatar":"https://avatars.githubusercontent.com/u/129566390?v=4?s=400"},{"username":"rustyconover","avatar":"https://avatars.githubusercontent.com/u/731941?v=4?s=400"},{"username":"bunkscene","avatar":"https://avatars.githubusercontent.com/u/2693678?v=4?s=400"},{"username":"ottomated","avatar":"https://avatars.githubusercontent.com/u/31470743?v=4?s=400"},{"username":"sadfsdfdsa","avatar":"https://avatars.githubusercontent.com/u/28733669?v=4?s=400"},{"username":"ajaishankar","avatar":"https://avatars.githubusercontent.com/u/328008?v=4?s=400"},{"username":"dominikdosoudil","avatar":"https://avatars.githubusercontent.com/u/15929942?v=4?s=400"},{"username":"kgtkr","avatar":"https://avatars.githubusercontent.com/u/17868838?v=4?s=400"},{"username":"berzi","avatar":"https://avatars.githubusercontent.com/u/32619123?v=4?s=400"},{"username":"PhilipTrauner","avatar":"https://avatars.githubusercontent.com/u/9287847?v=4?s=400"},{"username":"Powell-v2","avatar":"https://avatars.githubusercontent.com/u/25308326?v=4?s=400"},{"username":"duncanbeevers","avatar":"https://avatars.githubusercontent.com/u/7367?v=4?s=400"},{"username":"tkukushkin","avatar":"https://avatars.githubusercontent.com/u/1482516?v=4?s=400"},{"username":"Semigradsky","avatar":"https://avatars.githubusercontent.com/u/1198848?v=4?s=400"},{"username":"MrLeebo","avatar":"https://avatars.githubusercontent.com/u/2754163?v=4?s=400"},{"username":"axelhzf","avatar":"https://avatars.githubusercontent.com/u/175627?v=4?s=400"},{"username":"imagoiq","avatar":"https://avatars.githubusercontent.com/u/12294151?v=4?s=400"},{"username":"BTMPL","avatar":"https://avatars.githubusercontent.com/u/247153?v=4?s=400"},{"username":"HiiiiD","avatar":"https://avatars.githubusercontent.com/u/61231210?v=4?s=400"},{"username":"yacinehmito","avatar":"https://avatars.githubusercontent.com/u/6893840?v=4?s=400"},{"username":"sajadtorkamani","avatar":"https://avatars.githubusercontent.com/u/9380313?v=4?s=400"},{"username":"mvdbeek","avatar":"https://avatars.githubusercontent.com/u/6804901?v=4?s=400"},{"username":"sgrimm","avatar":"https://avatars.githubusercontent.com/u/1248649?v=4?s=400"},{"username":"Swiftwork","avatar":"https://avatars.githubusercontent.com/u/455178?v=4?s=400"},{"username":"mtth","avatar":"https://avatars.githubusercontent.com/u/1216372?v=4?s=400"},{"username":"mitchell-merry","avatar":"https://avatars.githubusercontent.com/u/8567231?v=4?s=400"},{"username":"qnp","avatar":"https://avatars.githubusercontent.com/u/6012554?v=4?s=400"},{"username":"shoffmeister","avatar":"https://avatars.githubusercontent.com/u/3868036?v=4?s=400"},{"username":"liangskyli","avatar":"https://avatars.githubusercontent.com/u/31531283?v=4?s=400"},{"username":"happycollision","avatar":"https://avatars.githubusercontent.com/u/3663628?v=4?s=400"},{"username":"hd-o","avatar":"https://avatars.githubusercontent.com/u/58871222?v=4?s=400"}],"openapi-fetch":[{"username":"drwpow","avatar":"https://avatars.githubusercontent.com/u/1369770?v=4?s=400"},{"username":"fergusean","avatar":"https://avatars.githubusercontent.com/u/1029297?v=4?s=400"},{"username":"shinzui","avatar":"https://avatars.githubusercontent.com/u/519?v=4?s=400"},{"username":"ezpuzz","avatar":"https://avatars.githubusercontent.com/u/672182?v=4?s=400"},{"username":"KotoriK","avatar":"https://avatars.githubusercontent.com/u/52659125?v=4?s=400"},{"username":"fletchertyler914","avatar":"https://avatars.githubusercontent.com/u/3344498?v=4?s=400"},{"username":"nholik","avatar":"https://avatars.githubusercontent.com/u/2022214?v=4?s=400"},{"username":"roj1512","avatar":"https://avatars.githubusercontent.com/u/49933115?v=4?s=400"},{"username":"nickcaballero","avatar":"https://avatars.githubusercontent.com/u/355976?v=4?s=400"}]}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"devDependencies": {
1919
"@changesets/changelog-git": "^0.1.14",
2020
"@changesets/cli": "^2.26.1",
21-
"eslint": "^8.40.0",
21+
"eslint": "^8.41.0",
2222
"eslint-config-prettier": "^8.8.0",
2323
"eslint-plugin-prettier": "^4.2.1",
2424
"npm-run-all": "^4.1.5",

packages/openapi-fetch/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# openapi-fetch
22

3+
## 0.2.0
4+
5+
### Minor Changes
6+
7+
- 97c8757: Add custom fetch option (#51). Thanks, [@hd-o](https://github.com/hd-o)!
8+
39
## 0.1.4
410

511
### Patch Changes

packages/openapi-fetch/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ createClient<paths>(options);
144144
| Name | Type | Description |
145145
| :-------------- | :------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
146146
| `baseUrl` | `string` | Prefix all fetch URLs with this option (e.g. `"https://myapi.dev/v1/"`). |
147+
| `fetch` | `fetch` | Fetch function used for requests (defaults to `globalThis.fetch`) |
147148
| (Fetch options) | | Any valid fetch option (`headers`, `mode`, `cache`, `signal` …) (<a href="https://developer.mozilla.org/en-US/docs/Web/API/fetch#options" target="_blank" rel="noopener noreferrer">docs</a>) |
148149

149150
### Fetch options

packages/openapi-fetch/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"openapi-typescript": "workspace:^",
5353
"prettier": "^2.8.8",
5454
"typescript": "^5.0.4",
55-
"vitest": "^0.31.0",
55+
"vitest": "^0.31.1",
5656
"vitest-fetch-mock": "^0.2.2"
5757
}
5858
}

packages/openapi-fetch/src/index.test.ts

+14
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,20 @@ describe("client", () => {
180180
})
181181
);
182182
});
183+
184+
it("accepts a custom fetch function", async () => {
185+
const data = { works: true };
186+
const client = createClient<paths>({
187+
fetch: async () =>
188+
Promise.resolve({
189+
headers: new Headers(),
190+
json: async () => data,
191+
status: 200,
192+
ok: true,
193+
} as Response),
194+
});
195+
expect((await client.get("/self", {})).data).toBe(data);
196+
});
183197
});
184198

185199
describe("get()", () => {

0 commit comments

Comments
 (0)