Skip to content

Commit 74bfc0d

Browse files
authored
openapi-fetch improvements (#1169)
* Multiple improvements * Update devDeps
1 parent 3a4f410 commit 74bfc0d

16 files changed

+1063
-594
lines changed

.changeset/beige-ligers-hunt.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": patch
3+
---
4+
5+
Clone response internally

.changeset/khaki-bobcats-shave.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": minor
3+
---
4+
5+
Expose createFinalURL() logic for testing

.changeset/khaki-cycles-cough.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": minor
3+
---
4+
5+
Automatically remove `undefined` and `null` query params without requiring querySerializer

.changeset/long-llamas-attend.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": patch
3+
---
4+
5+
Strip trailing slashes from baseUrl

.changeset/mighty-dots-hammer.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": patch
3+
---
4+
5+
Fix querySerializer typing

.changeset/rude-bikes-happen.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-fetch": minor
3+
---
4+
5+
Allow overriding of JSON body parsing

.eslintrc.cjs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module.exports = {
1010
"@typescript-eslint/consistent-indexed-object-style": "off", // sometimes naming keys is more user-friendly
1111
"@typescript-eslint/no-dynamic-delete": "off", // delete is OK
1212
"@typescript-eslint/no-unnecessary-condition": "off", // this gives bad advice
13+
"no-console": "error",
1314
"no-unused-vars": "off",
1415
},
1516
overrides: [

docs/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@
2626
"@astrojs/sitemap": "^1.3.1",
2727
"@types/node": "^20.2.3",
2828
"html-escaper": "^3.0.3",
29-
"typescript": "^5.0.4"
29+
"typescript": "^5.1.3"
3030
}
3131
}

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

+9-8
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@ const { get, put, post, del, options, head, patch, trace } = createClient<paths>
2727
const { data, error, response } = await get("/my-url", options);
2828
```
2929

30-
| Name | Type | Description |
31-
| :---------------- | :-----------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32-
| `params` | ParamsObject | Provide `path` and `query` params from the OpenAPI schema |
33-
| `params.path` | `{ [name]: value }` | Provide all `path` params (params that are part of the URL) |
34-
| `params.query` | `{ [name]: value }` | Provide all `query params (params that are part of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams" target="_blank" rel="noopener noreferrer">searchParams</a> |
35-
| `body` | `{ [name]:value }` | The <a href="https://spec.openapis.org/oas/latest.html#request-body-object" target="_blank" rel="noopener noreferrer">requestBody</a> data, if needed (PUT/POST/PATCH/DEL only) |
36-
| `querySerializer` | QuerySerializer | (optional) Override default param serialization (see [Parameter Serialization](#parameter-serialization)) |
37-
| (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>) |
30+
| Name | Type | Description |
31+
| :---------------- | :---------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32+
| `params` | ParamsObject | Provide `path` and `query` params from the OpenAPI schema |
33+
| `params.path` | `{ [name]: value }` | Provide all `path` params (params that are part of the URL) |
34+
| `params.query` | `{ [name]: value }` | Provide all `query params (params that are part of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams" target="_blank" rel="noopener noreferrer">searchParams</a> |
35+
| `body` | `{ [name]:value }` | The <a href="https://spec.openapis.org/oas/latest.html#request-body-object" target="_blank" rel="noopener noreferrer">requestBody</a> data, if needed (PUT/POST/PATCH/DEL only) |
36+
| `querySerializer` | QuerySerializer | (optional) Override default param serialization (see [Parameter Serialization](#parameter-serialization)) |
37+
| `parseAs` | `"json"` \| `"text"` \| `"arrayBuffer"` \| `"blob"` \| `"stream"` | Decide how to parse the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Response/body" target="_blank" rel="noopener noreferrer">response body</a>, with `"stream"` skipping processing altogether (default: `"json"`) |
38+
| (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>) |
3839

3940
### Parameter Serialization
4041

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@
2222
"devDependencies": {
2323
"@changesets/changelog-github": "^0.4.8",
2424
"@changesets/cli": "^2.26.1",
25+
"@typescript-eslint/eslint-plugin": "^5.59.11",
26+
"@typescript-eslint/parser": "^5.59.11",
2527
"del-cli": "^5.0.0",
26-
"eslint": "^8.41.0",
28+
"eslint": "^8.42.0",
2729
"eslint-config-prettier": "^8.8.0",
2830
"eslint-plugin-prettier": "^4.2.1",
2931
"npm-run-all": "^4.1.5",
3032
"prettier": "^2.8.8",
31-
"typescript": "^5.0.4"
33+
"typescript": "^5.1.3"
3234
}
3335
}

packages/openapi-fetch/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@
4747
},
4848
"devDependencies": {
4949
"del-cli": "^5.0.0",
50-
"esbuild": "^0.17.19",
50+
"esbuild": "^0.18.3",
5151
"nanostores": "^0.8.1",
52-
"openapi-typescript": "^6.2.4",
52+
"openapi-typescript": "^6.2.7",
5353
"prettier": "^2.8.8",
54-
"typescript": "^5.0.4",
55-
"vitest": "^0.31.1",
54+
"typescript": "^5.1.3",
55+
"vitest": "^0.32.0",
5656
"vitest-fetch-mock": "^0.2.2"
5757
}
5858
}

0 commit comments

Comments
 (0)