@rvoh/psychic-spec-helpers 0.7.3 → 0.7.4
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.
- package/dist/types/src/unit/OpenapiSpecRequest.d.ts +9 -9
- package/dist/types/src/unit/OpenapiSpecSession.d.ts +7 -7
- package/dist/types/src/unit/helpers/openapiTypeHelpers.d.ts +4 -0
- package/package.json +1 -1
- package/src/unit/OpenapiSpecRequest.ts +25 -133
- package/src/unit/OpenapiSpecSession.ts +20 -119
- package/src/unit/helpers/openapiTypeHelpers.ts +84 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IdType } from '@rvoh/dream';
|
|
2
2
|
import { Response } from 'supertest';
|
|
3
|
-
import { ExtractOpenapiParams,
|
|
3
|
+
import { ExtractOpenapiParams, RequestBody, RequestQueryParameters, ResponseBody, ResponseCodeForUri, RoutesWithHttpMethod } from './helpers/openapiTypeHelpers.js';
|
|
4
4
|
import { OpenapiSpecSession } from './OpenapiSpecSession.js';
|
|
5
5
|
import { SpecRequestOpts, SpecRequestOptsAll } from './SpecRequest.js';
|
|
6
6
|
import { HttpMethod } from './supersession.js';
|
|
@@ -8,7 +8,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
8
8
|
private PsychicServer;
|
|
9
9
|
private server;
|
|
10
10
|
init(PsychicServer: any): Promise<void>;
|
|
11
|
-
get<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'get' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
11
|
+
get<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'get' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'get'>, Params extends string[] & ExtractOpenapiParams<Uri>, Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>, JsonContent extends ResponseBody<OpenapiPaths, 'get', Uri, ResponseCode>>(
|
|
12
12
|
/**
|
|
13
13
|
* The uri on your background you are trying to hit.
|
|
14
14
|
* This should be a path, like '/users'.
|
|
@@ -58,10 +58,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
58
58
|
* @param opts.headers - headers you would like to send with your request.
|
|
59
59
|
* (Optional)
|
|
60
60
|
*/
|
|
61
|
-
opts?: Params['length'] extends 0 ?
|
|
61
|
+
opts?: Params['length'] extends 0 ? Query : Query & {
|
|
62
62
|
[K in Params[number]]: string | IdType;
|
|
63
63
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
64
|
-
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
64
|
+
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'post'>, Params extends string[] & ExtractOpenapiParams<Uri>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'post', Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'post', Uri, ResponseCode>>(
|
|
65
65
|
/**
|
|
66
66
|
* The uri on your background you are trying to hit.
|
|
67
67
|
* This should be a path, like '/users'.
|
|
@@ -117,7 +117,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
117
117
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
118
118
|
[K in Params[number]]: string;
|
|
119
119
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
120
|
-
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
120
|
+
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'put'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'put', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'put', Uri>>(
|
|
121
121
|
/**
|
|
122
122
|
* The uri on your background you are trying to hit.
|
|
123
123
|
* This should be a path, like '/users'.
|
|
@@ -174,7 +174,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
174
174
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
175
175
|
[K in Params[number]]: string | IdType;
|
|
176
176
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
177
|
-
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
177
|
+
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'patch'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'patch', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'patch', Uri>>(
|
|
178
178
|
/**
|
|
179
179
|
* The uri on your background you are trying to hit.
|
|
180
180
|
* This should be a path, like '/posts'.
|
|
@@ -230,7 +230,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
230
230
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
231
231
|
[K in Params[number]]: string | IdType;
|
|
232
232
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
233
|
-
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
233
|
+
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'delete'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'delete', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'delete', Uri>>(
|
|
234
234
|
/**
|
|
235
235
|
* The uri on your background you are trying to hit.
|
|
236
236
|
* This should be a path, like '/users'.
|
|
@@ -286,7 +286,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
286
286
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
287
287
|
[K in Params[number]]: string | IdType;
|
|
288
288
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
289
|
-
session<const ProvidedHttpMethod extends HttpMethod, const Uri extends RoutesWithHttpMethod<OpenapiPaths, ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
289
|
+
session<const ProvidedHttpMethod extends HttpMethod, const Uri extends RoutesWithHttpMethod<OpenapiPaths, ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, ProvidedHttpMethod>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends RequestBody<OpenapiPaths, ProvidedHttpMethod, Uri>, Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>>(httpMethod: ProvidedHttpMethod,
|
|
290
290
|
/**
|
|
291
291
|
* The uri on your background you are trying to hit.
|
|
292
292
|
* This should be a path, like '/users'.
|
|
@@ -350,7 +350,7 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
350
350
|
* @param opts.headers - headers you would like to send with your request.
|
|
351
351
|
* (Optional)
|
|
352
352
|
*/
|
|
353
|
-
opts?: (ProvidedHttpMethod extends 'get' ? OpenapiSpecRequestOptsGet<
|
|
353
|
+
opts?: (ProvidedHttpMethod extends 'get' ? OpenapiSpecRequestOptsGet<Query> : OpenapiSpecRequestOptsPost<JsonContent>) & {
|
|
354
354
|
[K in Params[number]]: string | IdType;
|
|
355
355
|
}): Promise<OpenapiSpecSession<OpenapiPaths>>;
|
|
356
356
|
private makeRequest;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IdType } from '@rvoh/dream';
|
|
2
|
-
import {
|
|
2
|
+
import { ExtractOpenapiParams, RequestBody, RequestQueryParameters, ResponseBody, ResponseCodeForUri, RoutesWithHttpMethod } from './helpers/openapiTypeHelpers.js';
|
|
3
3
|
import { OpenapiSpecRequestOptsGet, OpenapiSpecRequestOptsPost, OpenapiSpecResponse } from './OpenapiSpecRequest.js';
|
|
4
4
|
import supersession from './supersession.js';
|
|
5
5
|
export declare class OpenapiSpecSession<OpenapiPaths> {
|
|
6
6
|
private _session;
|
|
7
7
|
constructor(_session: ReturnType<typeof supersession>);
|
|
8
|
-
get<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'get' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
8
|
+
get<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'get' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'get'>, Params extends string[] & ExtractOpenapiParams<Uri>, Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>, JsonContent extends ResponseBody<OpenapiPaths, 'get', Uri, ResponseCode>>(
|
|
9
9
|
/**
|
|
10
10
|
* The uri on your background you are trying to hit.
|
|
11
11
|
* This should be a path, like '/users'.
|
|
@@ -58,10 +58,10 @@ export declare class OpenapiSpecSession<OpenapiPaths> {
|
|
|
58
58
|
* @param opts.headers - headers you would like to send with your request.
|
|
59
59
|
* (Optional)
|
|
60
60
|
*/
|
|
61
|
-
opts?: Params['length'] extends 0 ?
|
|
61
|
+
opts?: Params['length'] extends 0 ? Query : Query & {
|
|
62
62
|
[K in Params[number]]: string | IdType;
|
|
63
63
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
64
|
-
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
64
|
+
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'post'>, Params extends string[] & ExtractOpenapiParams<Uri>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'post', Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'post', Uri, ResponseCode>>(
|
|
65
65
|
/**
|
|
66
66
|
* The uri on your background you are trying to hit.
|
|
67
67
|
* This should be a path, like '/users'.
|
|
@@ -120,7 +120,7 @@ export declare class OpenapiSpecSession<OpenapiPaths> {
|
|
|
120
120
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
121
121
|
[K in Params[number]]: string;
|
|
122
122
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
123
|
-
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
123
|
+
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'put'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'put', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'put', Uri>>(
|
|
124
124
|
/**
|
|
125
125
|
* The uri on your background you are trying to hit.
|
|
126
126
|
* This should be a path, like '/users'.
|
|
@@ -180,7 +180,7 @@ export declare class OpenapiSpecSession<OpenapiPaths> {
|
|
|
180
180
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
181
181
|
[K in Params[number]]: string | IdType;
|
|
182
182
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
183
|
-
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
183
|
+
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'patch'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'patch', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'patch', Uri>>(
|
|
184
184
|
/**
|
|
185
185
|
* The uri on your background you are trying to hit.
|
|
186
186
|
* This should be a path, like '/posts'.
|
|
@@ -239,7 +239,7 @@ export declare class OpenapiSpecSession<OpenapiPaths> {
|
|
|
239
239
|
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
240
240
|
[K in Params[number]]: string | IdType;
|
|
241
241
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
242
|
-
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends
|
|
242
|
+
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'delete'>, Params extends string[] & ExtractOpenapiParams<Uri>, JsonContent extends ResponseBody<OpenapiPaths, 'delete', Uri, ResponseCode>, RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'delete', Uri>>(
|
|
243
243
|
/**
|
|
244
244
|
* The uri on your background you are trying to hit.
|
|
245
245
|
* This should be a path, like '/users'.
|
|
@@ -25,5 +25,9 @@ type FilterOutNever<T> = {
|
|
|
25
25
|
export type RoutesWithHttpMethod<T, HttpMethod extends keyof T[keyof T], R = {
|
|
26
26
|
[K in keyof FilterOutNever<T>]: T[K][HttpMethod & keyof T[K]] extends object ? K : never;
|
|
27
27
|
}> = R[keyof R];
|
|
28
|
+
export type RequestQueryParameters<OpenapiPaths, HttpMethod, Uri, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri & keyof OpenapiPaths], ParametersMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]], QueryMap extends ParametersMap['query' & keyof ParametersMap] = ParametersMap['query' & keyof ParametersMap]> = QueryMap;
|
|
29
|
+
export type ResponseBody<OpenapiPaths, HttpMethod, Uri, ResponseCode, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri & keyof OpenapiPaths], ResponseMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]], Content extends ResponseMap extends undefined ? undefined : ResponseCode extends undefined ? undefined : ResponseCode extends number ? ResponseMap[ResponseCode & keyof ResponseMap]['content' & keyof ResponseMap[ResponseCode & keyof ResponseMap]] : undefined = ResponseMap extends undefined ? undefined : ResponseCode extends undefined ? undefined : ResponseCode extends number ? ResponseMap[ResponseCode & keyof ResponseMap]['content' & keyof ResponseMap[ResponseCode & keyof ResponseMap]] : undefined, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content] = Content extends undefined ? undefined : Content['application/json' & keyof Content]> = JsonContent;
|
|
30
|
+
export type RequestBody<OpenapiPaths, HttpMethod, Uri, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri & keyof OpenapiPaths], UriPayload extends HttpMethodMap[HttpMethod & keyof HttpMethodMap] = HttpMethodMap[HttpMethod & keyof HttpMethodMap], RequestBodyMap extends UriPayload['requestBody' & keyof UriPayload] extends never ? undefined : UriPayload['requestBody' & keyof UriPayload] = UriPayload['requestBody' & keyof UriPayload] extends never ? undefined : UriPayload['requestBody' & keyof UriPayload], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap] = RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent] = RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]> = RequestBodyJsonContent;
|
|
31
|
+
export type ResponseCodeForUri<OpenapiPaths, Uri, HttpMethod, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri & keyof OpenapiPaths], ResponseMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]]> = keyof ResponseMap & number;
|
|
28
32
|
type RequestURISegment = string extends `${string}/${string}` ? never : string;
|
|
29
33
|
export {};
|
package/package.json
CHANGED
|
@@ -4,8 +4,10 @@ import { createPsychicServer } from '../index.js'
|
|
|
4
4
|
import fillOpenapiParams from './helpers/fillOpenapiParams.js'
|
|
5
5
|
import {
|
|
6
6
|
ExtractOpenapiParams,
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
RequestBody,
|
|
8
|
+
RequestQueryParameters,
|
|
9
|
+
ResponseBody,
|
|
10
|
+
ResponseCodeForUri,
|
|
9
11
|
RoutesWithHttpMethod,
|
|
10
12
|
} from './helpers/openapiTypeHelpers.js'
|
|
11
13
|
import { OpenapiSpecSession } from './OpenapiSpecSession.js'
|
|
@@ -31,25 +33,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
31
33
|
'get' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
32
34
|
> &
|
|
33
35
|
string,
|
|
34
|
-
const ResponseCode extends
|
|
35
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
36
|
-
ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' &
|
|
37
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
38
|
-
ParametersMap extends HttpMethodMap['get' & keyof HttpMethodMap]['parameters' &
|
|
39
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
40
|
-
QueryMap extends ParametersMap['query' & keyof ParametersMap],
|
|
36
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'get'>,
|
|
41
37
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
: ResponseCode extends undefined
|
|
45
|
-
? undefined
|
|
46
|
-
: ResponseCode extends number
|
|
47
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
48
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
49
|
-
: undefined,
|
|
50
|
-
JsonContent extends Content extends undefined
|
|
51
|
-
? undefined
|
|
52
|
-
: Content['application/json' & keyof Content],
|
|
38
|
+
Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>,
|
|
39
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'get', Uri, ResponseCode>,
|
|
53
40
|
>(
|
|
54
41
|
/**
|
|
55
42
|
* The uri on your background you are trying to hit.
|
|
@@ -102,9 +89,7 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
102
89
|
* @param opts.headers - headers you would like to send with your request.
|
|
103
90
|
* (Optional)
|
|
104
91
|
*/
|
|
105
|
-
opts?: Params['length'] extends 0
|
|
106
|
-
? OpenapiSpecRequestOptsGet<QueryMap>
|
|
107
|
-
: OpenapiSpecRequestOptsGet<QueryMap> & { [K in Params[number]]: string | IdType }
|
|
92
|
+
opts?: Params['length'] extends 0 ? Query : Query & { [K in Params[number]]: string | IdType }
|
|
108
93
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
109
94
|
return (await this.makeRequest(
|
|
110
95
|
'get',
|
|
@@ -120,31 +105,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
120
105
|
'post' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
121
106
|
> &
|
|
122
107
|
string,
|
|
123
|
-
const ResponseCode extends
|
|
124
|
-
HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths],
|
|
125
|
-
ResolvedUri extends First<GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths>,
|
|
108
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'post'>,
|
|
126
109
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
Content extends ResponseMap extends undefined
|
|
130
|
-
? undefined
|
|
131
|
-
: ResponseCode extends undefined
|
|
132
|
-
? undefined
|
|
133
|
-
: ResponseCode extends number
|
|
134
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
135
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
136
|
-
: undefined,
|
|
137
|
-
JsonContent extends Content extends undefined
|
|
138
|
-
? undefined
|
|
139
|
-
: Content['application/json' & keyof Content],
|
|
140
|
-
RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' &
|
|
141
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
142
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
143
|
-
? undefined
|
|
144
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
145
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
146
|
-
? undefined
|
|
147
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
110
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'post', Uri>,
|
|
111
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'post', Uri, ResponseCode>,
|
|
148
112
|
>(
|
|
149
113
|
/**
|
|
150
114
|
* The uri on your background you are trying to hit.
|
|
@@ -213,30 +177,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
213
177
|
'put' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
214
178
|
> &
|
|
215
179
|
string,
|
|
216
|
-
const ResponseCode extends
|
|
217
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
180
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'put'>,
|
|
218
181
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
Content extends ResponseMap extends undefined
|
|
222
|
-
? undefined
|
|
223
|
-
: ResponseCode extends undefined
|
|
224
|
-
? undefined
|
|
225
|
-
: ResponseCode extends number
|
|
226
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
227
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
228
|
-
: undefined,
|
|
229
|
-
JsonContent extends Content extends undefined
|
|
230
|
-
? undefined
|
|
231
|
-
: Content['application/json' & keyof Content],
|
|
232
|
-
RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' &
|
|
233
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
234
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
235
|
-
? undefined
|
|
236
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
237
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
238
|
-
? undefined
|
|
239
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
182
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'put', Uri, ResponseCode>,
|
|
183
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'put', Uri>,
|
|
240
184
|
>(
|
|
241
185
|
/**
|
|
242
186
|
* The uri on your background you are trying to hit.
|
|
@@ -313,30 +257,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
313
257
|
'patch' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
314
258
|
> &
|
|
315
259
|
string,
|
|
316
|
-
const ResponseCode extends
|
|
317
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
260
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'patch'>,
|
|
318
261
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
Content extends ResponseMap extends undefined
|
|
322
|
-
? undefined
|
|
323
|
-
: ResponseCode extends undefined
|
|
324
|
-
? undefined
|
|
325
|
-
: ResponseCode extends number
|
|
326
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
327
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
328
|
-
: undefined,
|
|
329
|
-
JsonContent extends Content extends undefined
|
|
330
|
-
? undefined
|
|
331
|
-
: Content['application/json' & keyof Content],
|
|
332
|
-
RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' &
|
|
333
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
334
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
335
|
-
? undefined
|
|
336
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
337
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
338
|
-
? undefined
|
|
339
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
262
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'patch', Uri, ResponseCode>,
|
|
263
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'patch', Uri>,
|
|
340
264
|
>(
|
|
341
265
|
/**
|
|
342
266
|
* The uri on your background you are trying to hit.
|
|
@@ -412,30 +336,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
412
336
|
'delete' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
413
337
|
> &
|
|
414
338
|
string,
|
|
415
|
-
const ResponseCode extends
|
|
416
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
339
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'delete'>,
|
|
417
340
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
Content extends ResponseMap extends undefined
|
|
421
|
-
? undefined
|
|
422
|
-
: ResponseCode extends undefined
|
|
423
|
-
? undefined
|
|
424
|
-
: ResponseCode extends number
|
|
425
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
426
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
427
|
-
: undefined,
|
|
428
|
-
JsonContent extends Content extends undefined
|
|
429
|
-
? undefined
|
|
430
|
-
: Content['application/json' & keyof Content],
|
|
431
|
-
RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' &
|
|
432
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
433
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
434
|
-
? undefined
|
|
435
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
436
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
437
|
-
? undefined
|
|
438
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
341
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'delete', Uri, ResponseCode>,
|
|
342
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'delete', Uri>,
|
|
439
343
|
>(
|
|
440
344
|
/**
|
|
441
345
|
* The uri on your background you are trying to hit.
|
|
@@ -512,22 +416,10 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
512
416
|
ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
513
417
|
> &
|
|
514
418
|
string,
|
|
515
|
-
const ResponseCode extends
|
|
516
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
419
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, ProvidedHttpMethod>,
|
|
517
420
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
ParametersMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['parameters' &
|
|
521
|
-
keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]],
|
|
522
|
-
QueryMap extends ParametersMap['query' & keyof ParametersMap],
|
|
523
|
-
RequestBodyMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['requestBody' &
|
|
524
|
-
keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]],
|
|
525
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
526
|
-
? undefined
|
|
527
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
528
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
529
|
-
? undefined
|
|
530
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
421
|
+
JsonContent extends RequestBody<OpenapiPaths, ProvidedHttpMethod, Uri>,
|
|
422
|
+
Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>,
|
|
531
423
|
>(
|
|
532
424
|
httpMethod: ProvidedHttpMethod,
|
|
533
425
|
/**
|
|
@@ -596,8 +488,8 @@ export class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
596
488
|
* (Optional)
|
|
597
489
|
*/
|
|
598
490
|
opts?: (ProvidedHttpMethod extends 'get'
|
|
599
|
-
? OpenapiSpecRequestOptsGet<
|
|
600
|
-
: OpenapiSpecRequestOptsPost<
|
|
491
|
+
? OpenapiSpecRequestOptsGet<Query>
|
|
492
|
+
: OpenapiSpecRequestOptsPost<JsonContent>) & {
|
|
601
493
|
[K in Params[number]]: string | IdType
|
|
602
494
|
}
|
|
603
495
|
): Promise<OpenapiSpecSession<OpenapiPaths>> {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { IdType } from '@rvoh/dream'
|
|
2
2
|
import fillOpenapiParams from './helpers/fillOpenapiParams.js'
|
|
3
3
|
import {
|
|
4
|
-
ExcludeNever,
|
|
5
4
|
ExtractOpenapiParams,
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
RequestBody,
|
|
6
|
+
RequestQueryParameters,
|
|
7
|
+
ResponseBody,
|
|
8
|
+
ResponseCodeForUri,
|
|
8
9
|
RoutesWithHttpMethod,
|
|
9
10
|
} from './helpers/openapiTypeHelpers.js'
|
|
10
11
|
import {
|
|
@@ -26,25 +27,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
26
27
|
'get' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
27
28
|
> &
|
|
28
29
|
string,
|
|
29
|
-
const ResponseCode extends
|
|
30
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
31
|
-
ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' &
|
|
32
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
33
|
-
ParametersMap extends HttpMethodMap['get' & keyof HttpMethodMap]['parameters' &
|
|
34
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
35
|
-
QueryMap extends ParametersMap['query' & keyof ParametersMap],
|
|
30
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'get'>,
|
|
36
31
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
: ResponseCode extends undefined
|
|
40
|
-
? undefined
|
|
41
|
-
: ResponseCode extends number
|
|
42
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
43
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
44
|
-
: undefined,
|
|
45
|
-
JsonContent extends Content extends undefined
|
|
46
|
-
? undefined
|
|
47
|
-
: Content['application/json' & keyof Content],
|
|
32
|
+
Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>,
|
|
33
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'get', Uri, ResponseCode>,
|
|
48
34
|
>(
|
|
49
35
|
/**
|
|
50
36
|
* The uri on your background you are trying to hit.
|
|
@@ -100,9 +86,7 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
100
86
|
* @param opts.headers - headers you would like to send with your request.
|
|
101
87
|
* (Optional)
|
|
102
88
|
*/
|
|
103
|
-
opts?: Params['length'] extends 0
|
|
104
|
-
? OpenapiSpecRequestOptsGet<QueryMap>
|
|
105
|
-
: OpenapiSpecRequestOptsGet<QueryMap> & { [K in Params[number]]: string | IdType }
|
|
89
|
+
opts?: Params['length'] extends 0 ? Query : Query & { [K in Params[number]]: string | IdType }
|
|
106
90
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
107
91
|
return (await this.makeRequest(
|
|
108
92
|
'get',
|
|
@@ -123,31 +107,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
123
107
|
'post' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
124
108
|
> &
|
|
125
109
|
string,
|
|
126
|
-
const ResponseCode extends
|
|
127
|
-
HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths],
|
|
128
|
-
ResolvedUri extends First<GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths>,
|
|
110
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'post'>,
|
|
129
111
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
Content extends ResponseMap extends undefined
|
|
133
|
-
? undefined
|
|
134
|
-
: ResponseCode extends undefined
|
|
135
|
-
? undefined
|
|
136
|
-
: ResponseCode extends number
|
|
137
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
138
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
139
|
-
: undefined,
|
|
140
|
-
JsonContent extends Content extends undefined
|
|
141
|
-
? undefined
|
|
142
|
-
: Content['application/json' & keyof Content],
|
|
143
|
-
RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' &
|
|
144
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
145
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
146
|
-
? undefined
|
|
147
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
148
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
149
|
-
? undefined
|
|
150
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
112
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'post', Uri>,
|
|
113
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'post', Uri, ResponseCode>,
|
|
151
114
|
>(
|
|
152
115
|
/**
|
|
153
116
|
* The uri on your background you are trying to hit.
|
|
@@ -219,30 +182,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
219
182
|
'put' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
220
183
|
> &
|
|
221
184
|
string,
|
|
222
|
-
const ResponseCode extends
|
|
223
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
185
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'put'>,
|
|
224
186
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
Content extends ResponseMap extends undefined
|
|
228
|
-
? undefined
|
|
229
|
-
: ResponseCode extends undefined
|
|
230
|
-
? undefined
|
|
231
|
-
: ResponseCode extends number
|
|
232
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
233
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
234
|
-
: undefined,
|
|
235
|
-
JsonContent extends Content extends undefined
|
|
236
|
-
? undefined
|
|
237
|
-
: Content['application/json' & keyof Content],
|
|
238
|
-
RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' &
|
|
239
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
240
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
241
|
-
? undefined
|
|
242
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
243
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
244
|
-
? undefined
|
|
245
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
187
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'put', Uri, ResponseCode>,
|
|
188
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'put', Uri>,
|
|
246
189
|
>(
|
|
247
190
|
/**
|
|
248
191
|
* The uri on your background you are trying to hit.
|
|
@@ -322,30 +265,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
322
265
|
'patch' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
323
266
|
> &
|
|
324
267
|
string,
|
|
325
|
-
const ResponseCode extends
|
|
326
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
268
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'patch'>,
|
|
327
269
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
Content extends ResponseMap extends undefined
|
|
331
|
-
? undefined
|
|
332
|
-
: ResponseCode extends undefined
|
|
333
|
-
? undefined
|
|
334
|
-
: ResponseCode extends number
|
|
335
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
336
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
337
|
-
: undefined,
|
|
338
|
-
JsonContent extends Content extends undefined
|
|
339
|
-
? undefined
|
|
340
|
-
: Content['application/json' & keyof Content],
|
|
341
|
-
RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' &
|
|
342
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
343
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
344
|
-
? undefined
|
|
345
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
346
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
347
|
-
? undefined
|
|
348
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
270
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'patch', Uri, ResponseCode>,
|
|
271
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'patch', Uri>,
|
|
349
272
|
>(
|
|
350
273
|
/**
|
|
351
274
|
* The uri on your background you are trying to hit.
|
|
@@ -424,32 +347,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
424
347
|
'delete' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
425
348
|
> &
|
|
426
349
|
string,
|
|
427
|
-
const ResponseCode extends
|
|
428
|
-
? never
|
|
429
|
-
: keyof ExcludeNever<ResponseMap> & number,
|
|
430
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
350
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'delete'>,
|
|
431
351
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
Content extends ResponseMap extends undefined
|
|
435
|
-
? undefined
|
|
436
|
-
: ResponseCode extends undefined
|
|
437
|
-
? undefined
|
|
438
|
-
: ResponseCode extends number
|
|
439
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
440
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
441
|
-
: undefined,
|
|
442
|
-
JsonContent extends Content extends undefined
|
|
443
|
-
? undefined
|
|
444
|
-
: Content['application/json' & keyof Content],
|
|
445
|
-
RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' &
|
|
446
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
447
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
448
|
-
? undefined
|
|
449
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
450
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
451
|
-
? undefined
|
|
452
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
352
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'delete', Uri, ResponseCode>,
|
|
353
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'delete', Uri>,
|
|
453
354
|
>(
|
|
454
355
|
/**
|
|
455
356
|
* The uri on your background you are trying to hit.
|
|
@@ -76,4 +76,88 @@ export type RoutesWithHttpMethod<
|
|
|
76
76
|
},
|
|
77
77
|
> = R[keyof R]
|
|
78
78
|
|
|
79
|
+
export type RequestQueryParameters<
|
|
80
|
+
OpenapiPaths,
|
|
81
|
+
HttpMethod,
|
|
82
|
+
Uri,
|
|
83
|
+
// ResponseCode,
|
|
84
|
+
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri &
|
|
85
|
+
keyof OpenapiPaths],
|
|
86
|
+
ParametersMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['parameters' &
|
|
87
|
+
keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod &
|
|
88
|
+
keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]],
|
|
89
|
+
QueryMap extends ParametersMap['query' & keyof ParametersMap] = ParametersMap['query' &
|
|
90
|
+
keyof ParametersMap],
|
|
91
|
+
> = QueryMap
|
|
92
|
+
|
|
93
|
+
export type ResponseBody<
|
|
94
|
+
OpenapiPaths,
|
|
95
|
+
HttpMethod,
|
|
96
|
+
Uri,
|
|
97
|
+
ResponseCode,
|
|
98
|
+
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri &
|
|
99
|
+
keyof OpenapiPaths],
|
|
100
|
+
ResponseMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' &
|
|
101
|
+
keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod &
|
|
102
|
+
keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]],
|
|
103
|
+
Content extends ResponseMap extends undefined
|
|
104
|
+
? undefined
|
|
105
|
+
: ResponseCode extends undefined
|
|
106
|
+
? undefined
|
|
107
|
+
: ResponseCode extends number
|
|
108
|
+
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
109
|
+
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
110
|
+
: undefined = ResponseMap extends undefined
|
|
111
|
+
? undefined
|
|
112
|
+
: ResponseCode extends undefined
|
|
113
|
+
? undefined
|
|
114
|
+
: ResponseCode extends number
|
|
115
|
+
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
116
|
+
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
117
|
+
: undefined,
|
|
118
|
+
JsonContent extends Content extends undefined
|
|
119
|
+
? undefined
|
|
120
|
+
: Content['application/json' & keyof Content] = Content extends undefined
|
|
121
|
+
? undefined
|
|
122
|
+
: Content['application/json' & keyof Content],
|
|
123
|
+
> = JsonContent
|
|
124
|
+
|
|
125
|
+
export type RequestBody<
|
|
126
|
+
OpenapiPaths,
|
|
127
|
+
HttpMethod,
|
|
128
|
+
Uri,
|
|
129
|
+
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri &
|
|
130
|
+
keyof OpenapiPaths],
|
|
131
|
+
UriPayload extends HttpMethodMap[HttpMethod & keyof HttpMethodMap] = HttpMethodMap[HttpMethod &
|
|
132
|
+
keyof HttpMethodMap],
|
|
133
|
+
RequestBodyMap extends UriPayload['requestBody' & keyof UriPayload] extends never
|
|
134
|
+
? undefined
|
|
135
|
+
: UriPayload['requestBody' & keyof UriPayload] = UriPayload['requestBody' &
|
|
136
|
+
keyof UriPayload] extends never
|
|
137
|
+
? undefined
|
|
138
|
+
: UriPayload['requestBody' & keyof UriPayload],
|
|
139
|
+
RequestBodyContent extends RequestBodyMap extends undefined
|
|
140
|
+
? undefined
|
|
141
|
+
: RequestBodyMap['content' & keyof RequestBodyMap] = RequestBodyMap extends undefined
|
|
142
|
+
? undefined
|
|
143
|
+
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
144
|
+
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
145
|
+
? undefined
|
|
146
|
+
: RequestBodyContent['application/json' &
|
|
147
|
+
keyof RequestBodyContent] = RequestBodyContent extends undefined
|
|
148
|
+
? undefined
|
|
149
|
+
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
150
|
+
> = RequestBodyJsonContent
|
|
151
|
+
|
|
152
|
+
export type ResponseCodeForUri<
|
|
153
|
+
OpenapiPaths,
|
|
154
|
+
Uri,
|
|
155
|
+
HttpMethod,
|
|
156
|
+
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths] = OpenapiPaths[Uri &
|
|
157
|
+
keyof OpenapiPaths],
|
|
158
|
+
ResponseMap extends HttpMethodMap[HttpMethod & keyof HttpMethodMap]['responses' &
|
|
159
|
+
keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]] = HttpMethodMap[HttpMethod &
|
|
160
|
+
keyof HttpMethodMap]['responses' & keyof HttpMethodMap[HttpMethod & keyof HttpMethodMap]],
|
|
161
|
+
> = keyof ResponseMap & number
|
|
162
|
+
|
|
79
163
|
type RequestURISegment = string extends `${string}/${string}` ? never : string
|