Skip to content

Commit 2fef4f9

Browse files
committed
Make empty methods optional, add examples typechecking
1 parent 04a024a commit 2fef4f9

28 files changed

+14194
-14062
lines changed

.changeset/beige-ligers-tell.md

-5
This file was deleted.

.changeset/rich-poems-swim.md

-5
This file was deleted.

packages/openapi-fetch/examples/nextjs/lib/api/v1.d.ts

+21-21
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ export interface paths {
1616
* @description Returns a a list of breeds
1717
*/
1818
get: operations["getBreeds"];
19-
put: never;
20-
post: never;
21-
delete: never;
22-
options: never;
23-
head: never;
24-
patch: never;
25-
trace: never;
19+
put?: never;
20+
post?: never;
21+
delete?: never;
22+
options?: never;
23+
head?: never;
24+
patch?: never;
25+
trace?: never;
2626
};
2727
"/fact": {
2828
parameters: {
@@ -36,13 +36,13 @@ export interface paths {
3636
* @description Returns a random fact
3737
*/
3838
get: operations["getRandomFact"];
39-
put: never;
40-
post: never;
41-
delete: never;
42-
options: never;
43-
head: never;
44-
patch: never;
45-
trace: never;
39+
put?: never;
40+
post?: never;
41+
delete?: never;
42+
options?: never;
43+
head?: never;
44+
patch?: never;
45+
trace?: never;
4646
};
4747
"/facts": {
4848
parameters: {
@@ -56,13 +56,13 @@ export interface paths {
5656
* @description Returns a a list of facts
5757
*/
5858
get: operations["getFacts"];
59-
put: never;
60-
post: never;
61-
delete: never;
62-
options: never;
63-
head: never;
64-
patch: never;
65-
trace: never;
59+
put?: never;
60+
post?: never;
61+
delete?: never;
62+
options?: never;
63+
head?: never;
64+
patch?: never;
65+
trace?: never;
6666
};
6767
}
6868
export type webhooks = Record<string, never>;

packages/openapi-fetch/examples/react-query/src/lib/api/v1.d.ts

+21-21
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ export interface paths {
1616
* @description Returns a a list of breeds
1717
*/
1818
get: operations["getBreeds"];
19-
put: never;
20-
post: never;
21-
delete: never;
22-
options: never;
23-
head: never;
24-
patch: never;
25-
trace: never;
19+
put?: never;
20+
post?: never;
21+
delete?: never;
22+
options?: never;
23+
head?: never;
24+
patch?: never;
25+
trace?: never;
2626
};
2727
"/fact": {
2828
parameters: {
@@ -36,13 +36,13 @@ export interface paths {
3636
* @description Returns a random fact
3737
*/
3838
get: operations["getRandomFact"];
39-
put: never;
40-
post: never;
41-
delete: never;
42-
options: never;
43-
head: never;
44-
patch: never;
45-
trace: never;
39+
put?: never;
40+
post?: never;
41+
delete?: never;
42+
options?: never;
43+
head?: never;
44+
patch?: never;
45+
trace?: never;
4646
};
4747
"/facts": {
4848
parameters: {
@@ -56,13 +56,13 @@ export interface paths {
5656
* @description Returns a a list of facts
5757
*/
5858
get: operations["getFacts"];
59-
put: never;
60-
post: never;
61-
delete: never;
62-
options: never;
63-
head: never;
64-
patch: never;
65-
trace: never;
59+
put?: never;
60+
post?: never;
61+
delete?: never;
62+
options?: never;
63+
head?: never;
64+
patch?: never;
65+
trace?: never;
6666
};
6767
}
6868
export type webhooks = Record<string, never>;

packages/openapi-fetch/examples/sveltekit/src/lib/api/v1.d.ts

+21-21
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ export interface paths {
1616
* @description Returns a a list of breeds
1717
*/
1818
get: operations["getBreeds"];
19-
put: never;
20-
post: never;
21-
delete: never;
22-
options: never;
23-
head: never;
24-
patch: never;
25-
trace: never;
19+
put?: never;
20+
post?: never;
21+
delete?: never;
22+
options?: never;
23+
head?: never;
24+
patch?: never;
25+
trace?: never;
2626
};
2727
"/fact": {
2828
parameters: {
@@ -36,13 +36,13 @@ export interface paths {
3636
* @description Returns a random fact
3737
*/
3838
get: operations["getRandomFact"];
39-
put: never;
40-
post: never;
41-
delete: never;
42-
options: never;
43-
head: never;
44-
patch: never;
45-
trace: never;
39+
put?: never;
40+
post?: never;
41+
delete?: never;
42+
options?: never;
43+
head?: never;
44+
patch?: never;
45+
trace?: never;
4646
};
4747
"/facts": {
4848
parameters: {
@@ -56,13 +56,13 @@ export interface paths {
5656
* @description Returns a a list of facts
5757
*/
5858
get: operations["getFacts"];
59-
put: never;
60-
post: never;
61-
delete: never;
62-
options: never;
63-
head: never;
64-
patch: never;
65-
trace: never;
59+
put?: never;
60+
post?: never;
61+
delete?: never;
62+
options?: never;
63+
head?: never;
64+
patch?: never;
65+
trace?: never;
6666
};
6767
}
6868
export type webhooks = Record<string, never>;

packages/openapi-fetch/src/index.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ export interface EmptyParameters {
5959
}
6060

6161
export type ParamsOption<T> = T extends { parameters: any }
62-
? T["parameters"] extends EmptyParameters
63-
? DefaultParamsOption
64-
: { params: NonNullable<T["parameters"]> }
65-
: DefaultParamsOption;
62+
? HasRequiredKeys<T["parameters"]> extends never
63+
? { params?: T["parameters"] }
64+
: { params: T["parameters"] }
65+
: never;
6666

6767
export type RequestBodyOption<T> = OperationRequestBodyContent<T> extends never
6868
? { body?: never }

0 commit comments

Comments
 (0)