@mittwald/api-client-commons 4.1.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OpenAPIOperation, RequestObject, ResponseData } from "../types/index.js";
|
|
2
2
|
import { AsyncResource } from "@mittwald/react-use-promise";
|
|
3
|
-
export type
|
|
4
|
-
status: 200;
|
|
5
|
-
}>["data"];
|
|
6
|
-
export type GetApiResourceFn<TOp extends OpenAPIOperation> = null extends RequestObject<TOp> ? (conf?: RequestObject<TOp>) => AsyncResource<Inferred200ResponseData<TOp>> : (conf: RequestObject<TOp>) => AsyncResource<Inferred200ResponseData<TOp>>;
|
|
3
|
+
export type GetApiResourceFn<TOp extends OpenAPIOperation> = null extends RequestObject<TOp> ? (conf?: RequestObject<TOp>) => AsyncResource<ResponseData<TOp>> : (conf: RequestObject<TOp>) => AsyncResource<ResponseData<TOp>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyResponse, Response } from "./Response.js";
|
|
2
2
|
import { AnyRequest, RequestType } from "./RequestType.js";
|
|
3
|
-
import { HttpMethod } from "./http.js";
|
|
3
|
+
import { HttpMethod, HttpStatus } from "./http.js";
|
|
4
4
|
export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestType, IgnoredResponse extends AnyResponse = Response> {
|
|
5
5
|
operationId: string;
|
|
6
6
|
path: string;
|
|
@@ -8,3 +8,9 @@ export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestTy
|
|
|
8
8
|
}
|
|
9
9
|
export type InferredRequestType<TOp> = TOp extends OpenAPIOperation<infer TReq> ? TReq : never;
|
|
10
10
|
export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<RequestType, infer TRes> ? TRes : never;
|
|
11
|
+
export type ResponseData<TOp, TStatus extends HttpStatus = 200> = Extract<InferredResponseType<TOp>, {
|
|
12
|
+
status: TStatus;
|
|
13
|
+
}>["data"];
|
|
14
|
+
export type RequestData<TOp> = TOp extends OpenAPIOperation ? InferredRequestType<TOp> extends {
|
|
15
|
+
data: infer TData;
|
|
16
|
+
} ? TData : never : never;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OpenAPIOperation, RequestObject, ResponseData } from "../types/index.js";
|
|
2
2
|
import { AsyncResource } from "@mittwald/react-use-promise";
|
|
3
|
-
export type
|
|
4
|
-
status: 200;
|
|
5
|
-
}>["data"];
|
|
6
|
-
export type GetApiResourceFn<TOp extends OpenAPIOperation> = null extends RequestObject<TOp> ? (conf?: RequestObject<TOp>) => AsyncResource<Inferred200ResponseData<TOp>> : (conf: RequestObject<TOp>) => AsyncResource<Inferred200ResponseData<TOp>>;
|
|
3
|
+
export type GetApiResourceFn<TOp extends OpenAPIOperation> = null extends RequestObject<TOp> ? (conf?: RequestObject<TOp>) => AsyncResource<ResponseData<TOp>> : (conf: RequestObject<TOp>) => AsyncResource<ResponseData<TOp>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyResponse, Response } from "./Response.js";
|
|
2
2
|
import { AnyRequest, RequestType } from "./RequestType.js";
|
|
3
|
-
import { HttpMethod } from "./http.js";
|
|
3
|
+
import { HttpMethod, HttpStatus } from "./http.js";
|
|
4
4
|
export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestType, IgnoredResponse extends AnyResponse = Response> {
|
|
5
5
|
operationId: string;
|
|
6
6
|
path: string;
|
|
@@ -8,3 +8,9 @@ export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestTy
|
|
|
8
8
|
}
|
|
9
9
|
export type InferredRequestType<TOp> = TOp extends OpenAPIOperation<infer TReq> ? TReq : never;
|
|
10
10
|
export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<RequestType, infer TRes> ? TRes : never;
|
|
11
|
+
export type ResponseData<TOp, TStatus extends HttpStatus = 200> = Extract<InferredResponseType<TOp>, {
|
|
12
|
+
status: TStatus;
|
|
13
|
+
}>["data"];
|
|
14
|
+
export type RequestData<TOp> = TOp extends OpenAPIOperation ? InferredRequestType<TOp> extends {
|
|
15
|
+
data: infer TData;
|
|
16
|
+
} ? TData : never : never;
|
package/package.json
CHANGED