@rvoh/psychic-spec-helpers 0.7.2 → 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/esm/spec/features/setup/hooks.js +2 -2
- package/dist/esm/src/unit/OpenapiSpecRequest.js +342 -21
- package/dist/esm/src/unit/OpenapiSpecSession.js +290 -12
- package/dist/types/src/unit/OpenapiSpecRequest.d.ts +16 -336
- package/dist/types/src/unit/OpenapiSpecSession.d.ts +11 -280
- package/dist/types/src/unit/helpers/openapiTypeHelpers.d.ts +4 -0
- package/package.json +1 -1
- package/src/unit/OpenapiSpecRequest.ts +48 -889
- package/src/unit/OpenapiSpecSession.ts +32 -745
- package/src/unit/helpers/openapiTypeHelpers.ts +84 -0
|
@@ -1,11 +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
|
-
|
|
8
|
-
|
|
5
|
+
RequestBody,
|
|
6
|
+
RequestQueryParameters,
|
|
7
|
+
ResponseBody,
|
|
8
|
+
ResponseCodeForUri,
|
|
9
9
|
RoutesWithHttpMethod,
|
|
10
10
|
} from './helpers/openapiTypeHelpers.js'
|
|
11
11
|
import {
|
|
@@ -13,44 +13,24 @@ import {
|
|
|
13
13
|
OpenapiSpecRequestOptsPost,
|
|
14
14
|
OpenapiSpecResponse,
|
|
15
15
|
} from './OpenapiSpecRequest.js'
|
|
16
|
-
import supersession from './supersession.js'
|
|
17
16
|
import { SpecRequestOptsAll } from './SpecRequest.js'
|
|
17
|
+
import supersession from './supersession.js'
|
|
18
18
|
|
|
19
19
|
// like SpecRequest, but meant to be bound to an instance
|
|
20
20
|
// of supersession, enabling chained requests to collect cookies
|
|
21
21
|
export class OpenapiSpecSession<OpenapiPaths> {
|
|
22
22
|
constructor(private _session: ReturnType<typeof supersession>) {}
|
|
23
23
|
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
// begin: GET
|
|
28
|
-
// has Params
|
|
29
24
|
public async get<
|
|
30
25
|
const Uri extends RoutesWithHttpMethod<
|
|
31
26
|
OpenapiPaths,
|
|
32
27
|
'get' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
33
28
|
> &
|
|
34
29
|
string,
|
|
35
|
-
const ResponseCode extends
|
|
36
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
37
|
-
ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' &
|
|
38
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
39
|
-
ParametersMap extends HttpMethodMap['get' & keyof HttpMethodMap]['parameters' &
|
|
40
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
41
|
-
QueryMap extends ParametersMap['query' & keyof ParametersMap],
|
|
30
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'get'>,
|
|
42
31
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
: ResponseCode extends undefined
|
|
46
|
-
? undefined
|
|
47
|
-
: ResponseCode extends number
|
|
48
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
49
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
50
|
-
: undefined,
|
|
51
|
-
JsonContent extends Content extends undefined
|
|
52
|
-
? undefined
|
|
53
|
-
: Content['application/json' & keyof Content],
|
|
32
|
+
Query extends OpenapiSpecRequestOptsGet<RequestQueryParameters<OpenapiPaths, 'get', Uri>>,
|
|
33
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'get', Uri, ResponseCode>,
|
|
54
34
|
>(
|
|
55
35
|
/**
|
|
56
36
|
* The uri on your background you are trying to hit.
|
|
@@ -106,118 +86,7 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
106
86
|
* @param opts.headers - headers you would like to send with your request.
|
|
107
87
|
* (Optional)
|
|
108
88
|
*/
|
|
109
|
-
opts
|
|
110
|
-
? never
|
|
111
|
-
: OpenapiSpecRequestOptsGet<QueryMap> & { [K in Params[number]]: string | IdType }
|
|
112
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
113
|
-
// doesn't have Params
|
|
114
|
-
public async get<
|
|
115
|
-
const Uri extends RoutesWithHttpMethod<
|
|
116
|
-
OpenapiPaths,
|
|
117
|
-
'get' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
118
|
-
> &
|
|
119
|
-
string,
|
|
120
|
-
const ResponseCode extends Params['length'] extends 0
|
|
121
|
-
? keyof ExcludeNever<ResponseMap> & number
|
|
122
|
-
: never,
|
|
123
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
124
|
-
ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' &
|
|
125
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
126
|
-
ParametersMap extends HttpMethodMap['get' & keyof HttpMethodMap]['parameters' &
|
|
127
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
128
|
-
QueryMap extends ParametersMap['query' & keyof ParametersMap],
|
|
129
|
-
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
130
|
-
Content extends ResponseMap extends undefined
|
|
131
|
-
? undefined
|
|
132
|
-
: ResponseCode extends undefined
|
|
133
|
-
? undefined
|
|
134
|
-
: ResponseCode extends number
|
|
135
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
136
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
137
|
-
: undefined,
|
|
138
|
-
JsonContent extends Content extends undefined
|
|
139
|
-
? undefined
|
|
140
|
-
: Content['application/json' & keyof Content],
|
|
141
|
-
>(
|
|
142
|
-
/**
|
|
143
|
-
* The uri on your background you are trying to hit.
|
|
144
|
-
* This should be a path, like '/users'.
|
|
145
|
-
*
|
|
146
|
-
* ```ts
|
|
147
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
148
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
149
|
-
* const res = await session.get('/user', 200)
|
|
150
|
-
* ```
|
|
151
|
-
*/
|
|
152
|
-
uri: Uri,
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* The response status you are expecting to receive
|
|
156
|
-
* when making this request. It will need to match
|
|
157
|
-
* one of the accepted response statuses for the
|
|
158
|
-
* provided uri in your openapi types
|
|
159
|
-
*
|
|
160
|
-
* ```ts
|
|
161
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
162
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
163
|
-
* const res = await session.get('/user', 200)
|
|
164
|
-
* ```
|
|
165
|
-
*/
|
|
166
|
-
expectedStatus: ResponseCode,
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Query params, headers, and other options to send with
|
|
170
|
-
* your request.
|
|
171
|
-
*
|
|
172
|
-
* ```ts
|
|
173
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
174
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
175
|
-
* const res = await session.get(
|
|
176
|
-
* '/user',
|
|
177
|
-
* 200,
|
|
178
|
-
* {
|
|
179
|
-
* query: {
|
|
180
|
-
* ...query params here
|
|
181
|
-
* }
|
|
182
|
-
* }
|
|
183
|
-
* )
|
|
184
|
-
* ```
|
|
185
|
-
*
|
|
186
|
-
* @param opts.query - query params you want to send up. Must match the
|
|
187
|
-
* query params in the openapi document for this uri.
|
|
188
|
-
* (Optional)
|
|
189
|
-
*
|
|
190
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
191
|
-
* (Optional)
|
|
192
|
-
*/
|
|
193
|
-
opts?: OpenapiSpecRequestOptsGet<QueryMap>
|
|
194
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
195
|
-
// final
|
|
196
|
-
public async get<
|
|
197
|
-
const Uri extends RoutesWithHttpMethod<
|
|
198
|
-
OpenapiPaths,
|
|
199
|
-
'get' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
200
|
-
> &
|
|
201
|
-
string,
|
|
202
|
-
const ResponseCode extends keyof ExcludeNever<ResponseMap> & number,
|
|
203
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
204
|
-
ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' &
|
|
205
|
-
keyof HttpMethodMap['get' & keyof HttpMethodMap]],
|
|
206
|
-
Content extends ResponseMap extends undefined
|
|
207
|
-
? undefined
|
|
208
|
-
: ResponseCode extends undefined
|
|
209
|
-
? undefined
|
|
210
|
-
: ResponseCode extends number
|
|
211
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
212
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
213
|
-
: undefined,
|
|
214
|
-
JsonContent extends Content extends undefined
|
|
215
|
-
? undefined
|
|
216
|
-
: Content['application/json' & keyof Content],
|
|
217
|
-
>(
|
|
218
|
-
uri: Uri,
|
|
219
|
-
expectedStatus: ResponseCode,
|
|
220
|
-
opts: unknown
|
|
89
|
+
opts?: Params['length'] extends 0 ? Query : Query & { [K in Params[number]]: string | IdType }
|
|
221
90
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
222
91
|
return (await this.makeRequest(
|
|
223
92
|
'get',
|
|
@@ -238,33 +107,10 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
238
107
|
'post' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
239
108
|
> &
|
|
240
109
|
string,
|
|
241
|
-
const ResponseCode extends
|
|
242
|
-
? never
|
|
243
|
-
: keyof ExcludeNever<ResponseMap> & number,
|
|
244
|
-
HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths],
|
|
245
|
-
ResolvedUri extends First<GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths>,
|
|
110
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'post'>,
|
|
246
111
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
Content extends ResponseMap extends undefined
|
|
250
|
-
? undefined
|
|
251
|
-
: ResponseCode extends undefined
|
|
252
|
-
? undefined
|
|
253
|
-
: ResponseCode extends number
|
|
254
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
255
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
256
|
-
: undefined,
|
|
257
|
-
JsonContent extends Content extends undefined
|
|
258
|
-
? undefined
|
|
259
|
-
: Content['application/json' & keyof Content],
|
|
260
|
-
RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' &
|
|
261
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
262
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
263
|
-
? undefined
|
|
264
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
265
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
266
|
-
? undefined
|
|
267
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
112
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'post', Uri>,
|
|
113
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'post', Uri, ResponseCode>,
|
|
268
114
|
>(
|
|
269
115
|
/**
|
|
270
116
|
* The uri on your background you are trying to hit.
|
|
@@ -323,165 +169,23 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
323
169
|
* @param opts.headers - headers you would like to send with your request.
|
|
324
170
|
* (Optional)
|
|
325
171
|
*/
|
|
326
|
-
opts
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
public async post<
|
|
330
|
-
const Uri extends RoutesWithHttpMethod<
|
|
331
|
-
OpenapiPaths,
|
|
332
|
-
'post' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
333
|
-
> &
|
|
334
|
-
string,
|
|
335
|
-
const ResponseCode extends Params['length'] extends 0
|
|
336
|
-
? keyof ExcludeNever<ResponseMap> & number
|
|
337
|
-
: never,
|
|
338
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
339
|
-
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
340
|
-
ResponseMap extends HttpMethodMap['post' & keyof HttpMethodMap]['responses' &
|
|
341
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
342
|
-
Content extends ResponseMap extends undefined
|
|
343
|
-
? undefined
|
|
344
|
-
: ResponseCode extends undefined
|
|
345
|
-
? undefined
|
|
346
|
-
: ResponseCode extends number
|
|
347
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
348
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
349
|
-
: undefined,
|
|
350
|
-
JsonContent extends Content extends undefined
|
|
351
|
-
? undefined
|
|
352
|
-
: Content['application/json' & keyof Content],
|
|
353
|
-
RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' &
|
|
354
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
355
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
356
|
-
? undefined
|
|
357
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
358
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
359
|
-
? undefined
|
|
360
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
361
|
-
>(
|
|
362
|
-
/**
|
|
363
|
-
* The uri on your background you are trying to hit.
|
|
364
|
-
* This should be a path, like '/users'.
|
|
365
|
-
*
|
|
366
|
-
* ```ts
|
|
367
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
368
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
369
|
-
* const res = await session.post('/user', 200)
|
|
370
|
-
* ```
|
|
371
|
-
*/
|
|
372
|
-
uri: Uri,
|
|
373
|
-
|
|
374
|
-
/**
|
|
375
|
-
* The response status you are expecting to receive
|
|
376
|
-
* when making this request. It will need to match
|
|
377
|
-
* one of the accepted response statuses for the
|
|
378
|
-
* provided uri in your openapi types
|
|
379
|
-
*
|
|
380
|
-
* ```ts
|
|
381
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
382
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
383
|
-
* const res = await session.post('/user', 200)
|
|
384
|
-
* ```
|
|
385
|
-
*/
|
|
386
|
-
expectedStatus: ResponseCode,
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Data, headers, and other options to send with
|
|
390
|
-
* your request.
|
|
391
|
-
*
|
|
392
|
-
* ```ts
|
|
393
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
394
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
395
|
-
* const res = await session.post(
|
|
396
|
-
* '/user',
|
|
397
|
-
* 200,
|
|
398
|
-
* {
|
|
399
|
-
* data: {
|
|
400
|
-
* ...request body here
|
|
401
|
-
* },
|
|
402
|
-
* headers: {
|
|
403
|
-
* ...headers here
|
|
404
|
-
* },
|
|
405
|
-
* }
|
|
406
|
-
* )
|
|
407
|
-
* ```
|
|
408
|
-
*
|
|
409
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
410
|
-
* requestBody shape in the openapi document for this uri.
|
|
411
|
-
* (Optional)
|
|
412
|
-
*
|
|
413
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
414
|
-
* (Optional)
|
|
415
|
-
*/
|
|
416
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never
|
|
417
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
418
|
-
// final
|
|
419
|
-
public async post<
|
|
420
|
-
const Uri extends RoutesWithHttpMethod<
|
|
421
|
-
OpenapiPaths,
|
|
422
|
-
'post' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
423
|
-
> &
|
|
424
|
-
string,
|
|
425
|
-
const ResponseCode extends keyof ExcludeNever<ResponseMap> & number,
|
|
426
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
427
|
-
ResponseMap = HttpMethodMap['post' & keyof HttpMethodMap]['responses' &
|
|
428
|
-
keyof HttpMethodMap['post' & keyof HttpMethodMap]],
|
|
429
|
-
Content = ResponseMap extends undefined
|
|
430
|
-
? undefined
|
|
431
|
-
: ResponseCode extends undefined
|
|
432
|
-
? undefined
|
|
433
|
-
: ResponseCode extends number
|
|
434
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
435
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
436
|
-
: undefined,
|
|
437
|
-
JsonContent = Content extends undefined
|
|
438
|
-
? undefined
|
|
439
|
-
: Content['application/json' & keyof Content],
|
|
440
|
-
>(
|
|
441
|
-
uri: Uri,
|
|
442
|
-
expectedStatus: ResponseCode,
|
|
443
|
-
opts: unknown = {}
|
|
172
|
+
opts?: Params['length'] extends 0
|
|
173
|
+
? OpenapiSpecRequestOptsPost<RequestBodyJsonContent>
|
|
174
|
+
: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & { [K in Params[number]]: string }
|
|
444
175
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
445
176
|
return await this.makeRequest('post', uri, expectedStatus, opts as SpecRequestOptsAll)
|
|
446
177
|
}
|
|
447
178
|
|
|
448
|
-
//
|
|
449
|
-
//
|
|
450
|
-
//
|
|
451
|
-
// begin: PUT
|
|
452
|
-
// has Params
|
|
453
179
|
public async put<
|
|
454
180
|
const Uri extends RoutesWithHttpMethod<
|
|
455
181
|
OpenapiPaths,
|
|
456
182
|
'put' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
457
183
|
> &
|
|
458
184
|
string,
|
|
459
|
-
const ResponseCode extends
|
|
460
|
-
? never
|
|
461
|
-
: keyof ExcludeNever<ResponseMap> & number,
|
|
462
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
185
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'put'>,
|
|
463
186
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
Content extends ResponseMap extends undefined
|
|
467
|
-
? undefined
|
|
468
|
-
: ResponseCode extends undefined
|
|
469
|
-
? undefined
|
|
470
|
-
: ResponseCode extends number
|
|
471
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
472
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
473
|
-
: undefined,
|
|
474
|
-
JsonContent extends Content extends undefined
|
|
475
|
-
? undefined
|
|
476
|
-
: Content['application/json' & keyof Content],
|
|
477
|
-
RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' &
|
|
478
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
479
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
480
|
-
? undefined
|
|
481
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
482
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
483
|
-
? undefined
|
|
484
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
187
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'put', Uri, ResponseCode>,
|
|
188
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'put', Uri>,
|
|
485
189
|
>(
|
|
486
190
|
/**
|
|
487
191
|
* The uri on your background you are trying to hit.
|
|
@@ -541,130 +245,11 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
541
245
|
* @param opts.headers - headers you would like to send with your request.
|
|
542
246
|
* (Optional)
|
|
543
247
|
*/
|
|
544
|
-
opts
|
|
545
|
-
?
|
|
248
|
+
opts?: Params['length'] extends 0
|
|
249
|
+
? OpenapiSpecRequestOptsPost<RequestBodyJsonContent>
|
|
546
250
|
: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
547
251
|
[K in Params[number]]: string | IdType
|
|
548
252
|
}
|
|
549
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
550
|
-
// DOESNT have params
|
|
551
|
-
public async put<
|
|
552
|
-
const Uri extends RoutesWithHttpMethod<
|
|
553
|
-
OpenapiPaths,
|
|
554
|
-
'put' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
555
|
-
> &
|
|
556
|
-
string,
|
|
557
|
-
const ResponseCode extends Params['length'] extends 0
|
|
558
|
-
? keyof ExcludeNever<ResponseMap> & number
|
|
559
|
-
: never,
|
|
560
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
561
|
-
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
562
|
-
ResponseMap extends HttpMethodMap['put' & keyof HttpMethodMap]['responses' &
|
|
563
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
564
|
-
Content extends ResponseMap extends undefined
|
|
565
|
-
? undefined
|
|
566
|
-
: ResponseCode extends undefined
|
|
567
|
-
? undefined
|
|
568
|
-
: ResponseCode extends number
|
|
569
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
570
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
571
|
-
: undefined,
|
|
572
|
-
JsonContent extends Content extends undefined
|
|
573
|
-
? undefined
|
|
574
|
-
: Content['application/json' & keyof Content],
|
|
575
|
-
RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' &
|
|
576
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
577
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
578
|
-
? undefined
|
|
579
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
580
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
581
|
-
? undefined
|
|
582
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
583
|
-
>(
|
|
584
|
-
/**
|
|
585
|
-
* The uri on your background you are trying to hit.
|
|
586
|
-
* This should be a path, like '/users'.
|
|
587
|
-
*
|
|
588
|
-
* ```ts
|
|
589
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
590
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
591
|
-
* const res = await session.put('/user', 200, { data: { name: 'new name' })
|
|
592
|
-
* ```
|
|
593
|
-
*/
|
|
594
|
-
uri: Uri,
|
|
595
|
-
|
|
596
|
-
/**
|
|
597
|
-
* The response status you are expecting to receive
|
|
598
|
-
* when making this request. It will need to match
|
|
599
|
-
* one of the accepted response statuses for the
|
|
600
|
-
* provided uri in your openapi types
|
|
601
|
-
*
|
|
602
|
-
* ```ts
|
|
603
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
604
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
605
|
-
* const res = await session.put('/user', 200, { data: { name: 'new name' })
|
|
606
|
-
* ```
|
|
607
|
-
*/
|
|
608
|
-
expectedStatus: ResponseCode,
|
|
609
|
-
|
|
610
|
-
/**
|
|
611
|
-
* An object containing the path fields required to
|
|
612
|
-
* fill your uri in, as well as any additional PUT
|
|
613
|
-
* arguments, like `data`, for example.
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
* ```ts
|
|
617
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
618
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
619
|
-
* const res = await session.put(
|
|
620
|
-
* '/user',
|
|
621
|
-
* 200,
|
|
622
|
-
* {
|
|
623
|
-
* data: {
|
|
624
|
-
* ...request body here
|
|
625
|
-
* },
|
|
626
|
-
* headers: {
|
|
627
|
-
* ...headers here
|
|
628
|
-
* },
|
|
629
|
-
* }
|
|
630
|
-
* )
|
|
631
|
-
* ```
|
|
632
|
-
*
|
|
633
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
634
|
-
* requestBody shape in the openapi document for this uri.
|
|
635
|
-
* (Optional)
|
|
636
|
-
*
|
|
637
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
638
|
-
* (Optional)
|
|
639
|
-
*/
|
|
640
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never
|
|
641
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
642
|
-
// final
|
|
643
|
-
public async put<
|
|
644
|
-
const Uri extends RoutesWithHttpMethod<
|
|
645
|
-
OpenapiPaths,
|
|
646
|
-
'put' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
647
|
-
> &
|
|
648
|
-
string,
|
|
649
|
-
const ResponseCode extends keyof ExcludeNever<ResponseMap> & number,
|
|
650
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
651
|
-
ResponseMap = HttpMethodMap['put' & keyof HttpMethodMap]['responses' &
|
|
652
|
-
keyof HttpMethodMap['put' & keyof HttpMethodMap]],
|
|
653
|
-
Content = ResponseMap extends undefined
|
|
654
|
-
? undefined
|
|
655
|
-
: ResponseCode extends undefined
|
|
656
|
-
? undefined
|
|
657
|
-
: ResponseCode extends number
|
|
658
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
659
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
660
|
-
: undefined,
|
|
661
|
-
JsonContent = Content extends undefined
|
|
662
|
-
? undefined
|
|
663
|
-
: Content['application/json' & keyof Content],
|
|
664
|
-
>(
|
|
665
|
-
uri: Uri,
|
|
666
|
-
expectedStatus: ResponseCode,
|
|
667
|
-
opts: unknown = {}
|
|
668
253
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
669
254
|
return await this.makeRequest(
|
|
670
255
|
'put',
|
|
@@ -674,43 +259,16 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
674
259
|
)
|
|
675
260
|
}
|
|
676
261
|
|
|
677
|
-
//
|
|
678
|
-
//
|
|
679
|
-
//
|
|
680
|
-
// begin: PATCH
|
|
681
|
-
// has Params
|
|
682
262
|
public async patch<
|
|
683
263
|
const Uri extends RoutesWithHttpMethod<
|
|
684
264
|
OpenapiPaths,
|
|
685
265
|
'patch' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
686
266
|
> &
|
|
687
267
|
string,
|
|
688
|
-
const ResponseCode extends
|
|
689
|
-
? never
|
|
690
|
-
: keyof ExcludeNever<ResponseMap> & number,
|
|
691
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
268
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'patch'>,
|
|
692
269
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
Content extends ResponseMap extends undefined
|
|
696
|
-
? undefined
|
|
697
|
-
: ResponseCode extends undefined
|
|
698
|
-
? undefined
|
|
699
|
-
: ResponseCode extends number
|
|
700
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
701
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
702
|
-
: undefined,
|
|
703
|
-
JsonContent extends Content extends undefined
|
|
704
|
-
? undefined
|
|
705
|
-
: Content['application/json' & keyof Content],
|
|
706
|
-
RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' &
|
|
707
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
708
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
709
|
-
? undefined
|
|
710
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
711
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
712
|
-
? undefined
|
|
713
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
270
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'patch', Uri, ResponseCode>,
|
|
271
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'patch', Uri>,
|
|
714
272
|
>(
|
|
715
273
|
/**
|
|
716
274
|
* The uri on your background you are trying to hit.
|
|
@@ -769,179 +327,30 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
769
327
|
* @param opts.headers - headers you would like to send with your request.
|
|
770
328
|
* (Optional)
|
|
771
329
|
*/
|
|
772
|
-
opts
|
|
773
|
-
?
|
|
330
|
+
opts?: Params['length'] extends 0
|
|
331
|
+
? OpenapiSpecRequestOptsPost<RequestBodyJsonContent>
|
|
774
332
|
: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
775
333
|
[K in Params[number]]: string | IdType
|
|
776
334
|
}
|
|
777
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
778
|
-
// DOESNT have params
|
|
779
|
-
public async patch<
|
|
780
|
-
const Uri extends RoutesWithHttpMethod<
|
|
781
|
-
OpenapiPaths,
|
|
782
|
-
'patch' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
783
|
-
> &
|
|
784
|
-
string,
|
|
785
|
-
const ResponseCode extends Params['length'] extends 0
|
|
786
|
-
? keyof ExcludeNever<ResponseMap> & number
|
|
787
|
-
: never,
|
|
788
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
789
|
-
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
790
|
-
ResponseMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['responses' &
|
|
791
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
792
|
-
Content extends ResponseMap extends undefined
|
|
793
|
-
? undefined
|
|
794
|
-
: ResponseCode extends undefined
|
|
795
|
-
? undefined
|
|
796
|
-
: ResponseCode extends number
|
|
797
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
798
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
799
|
-
: undefined,
|
|
800
|
-
JsonContent extends Content extends undefined
|
|
801
|
-
? undefined
|
|
802
|
-
: Content['application/json' & keyof Content],
|
|
803
|
-
RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' &
|
|
804
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
805
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
806
|
-
? undefined
|
|
807
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
808
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
809
|
-
? undefined
|
|
810
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
811
|
-
>(
|
|
812
|
-
/**
|
|
813
|
-
* The uri on your background you are trying to hit.
|
|
814
|
-
* This should be a path, like '/user'.
|
|
815
|
-
*
|
|
816
|
-
* ```ts
|
|
817
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
818
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
819
|
-
* const res = await session.patch('/user', 200, { data: { name: 'new name' }})
|
|
820
|
-
* ```
|
|
821
|
-
*/
|
|
822
|
-
uri: Uri,
|
|
823
|
-
|
|
824
|
-
/**
|
|
825
|
-
* The response status you are expecting to receive
|
|
826
|
-
* when making this request. It will need to match
|
|
827
|
-
* one of the accepted response statuses for the
|
|
828
|
-
* provided uri in your openapi types
|
|
829
|
-
*
|
|
830
|
-
* ```ts
|
|
831
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
832
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
833
|
-
* const res = await session.patch('/user', 200, { data: { name: 'new name' }})
|
|
834
|
-
* ```
|
|
835
|
-
*/
|
|
836
|
-
expectedStatus: ResponseCode,
|
|
837
|
-
|
|
838
|
-
/**
|
|
839
|
-
* Data, headers, and other options to send with
|
|
840
|
-
* your request.
|
|
841
|
-
*
|
|
842
|
-
* ```ts
|
|
843
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
844
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
845
|
-
* const res = await session.patch(
|
|
846
|
-
* '/user',
|
|
847
|
-
* 200,
|
|
848
|
-
* {
|
|
849
|
-
* data: {
|
|
850
|
-
* ...request body here
|
|
851
|
-
* },
|
|
852
|
-
* headers: {
|
|
853
|
-
* ...headers here
|
|
854
|
-
* },
|
|
855
|
-
* }
|
|
856
|
-
* )
|
|
857
|
-
* ```
|
|
858
|
-
*
|
|
859
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
860
|
-
* requestBody shape in the openapi document for this uri.
|
|
861
|
-
* (Optional)
|
|
862
|
-
*
|
|
863
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
864
|
-
* (Optional)
|
|
865
|
-
*/
|
|
866
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never
|
|
867
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
868
|
-
// final
|
|
869
|
-
public async patch<
|
|
870
|
-
const Uri extends GetOpenapiUrl<OpenapiPaths>,
|
|
871
|
-
const ResponseCode extends keyof ResponseMap & number,
|
|
872
|
-
HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths],
|
|
873
|
-
ResolvedUri extends GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths,
|
|
874
|
-
ResponseMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['responses' &
|
|
875
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
876
|
-
Content extends ResponseMap extends undefined
|
|
877
|
-
? undefined
|
|
878
|
-
: ResponseCode extends undefined
|
|
879
|
-
? undefined
|
|
880
|
-
: ResponseCode extends number
|
|
881
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
882
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
883
|
-
: undefined,
|
|
884
|
-
JsonContent extends Content extends undefined
|
|
885
|
-
? undefined
|
|
886
|
-
: Content['application/json' & keyof Content],
|
|
887
|
-
RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' &
|
|
888
|
-
keyof HttpMethodMap['patch' & keyof HttpMethodMap]],
|
|
889
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
890
|
-
? undefined
|
|
891
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
892
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
893
|
-
? undefined
|
|
894
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
895
|
-
>(
|
|
896
|
-
uri: Uri,
|
|
897
|
-
expectedStatus: ResponseCode,
|
|
898
|
-
opts: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> = {}
|
|
899
335
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
900
336
|
return await this.makeRequest(
|
|
901
337
|
'patch',
|
|
902
|
-
fillOpenapiParams(uri, opts),
|
|
338
|
+
fillOpenapiParams(uri, opts || {}),
|
|
903
339
|
expectedStatus,
|
|
904
340
|
opts as SpecRequestOptsAll
|
|
905
341
|
)
|
|
906
342
|
}
|
|
907
343
|
|
|
908
|
-
//
|
|
909
|
-
//
|
|
910
|
-
//
|
|
911
|
-
// begin: delete
|
|
912
|
-
// has Params
|
|
913
344
|
public async delete<
|
|
914
345
|
const Uri extends RoutesWithHttpMethod<
|
|
915
346
|
OpenapiPaths,
|
|
916
347
|
'delete' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
917
348
|
> &
|
|
918
349
|
string,
|
|
919
|
-
const ResponseCode extends
|
|
920
|
-
? never
|
|
921
|
-
: keyof ExcludeNever<ResponseMap> & number,
|
|
922
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
350
|
+
const ResponseCode extends ResponseCodeForUri<OpenapiPaths, Uri, 'delete'>,
|
|
923
351
|
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
Content extends ResponseMap extends undefined
|
|
927
|
-
? undefined
|
|
928
|
-
: ResponseCode extends undefined
|
|
929
|
-
? undefined
|
|
930
|
-
: ResponseCode extends number
|
|
931
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
932
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
933
|
-
: undefined,
|
|
934
|
-
JsonContent extends Content extends undefined
|
|
935
|
-
? undefined
|
|
936
|
-
: Content['application/json' & keyof Content],
|
|
937
|
-
RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' &
|
|
938
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
939
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
940
|
-
? undefined
|
|
941
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
942
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
943
|
-
? undefined
|
|
944
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
352
|
+
JsonContent extends ResponseBody<OpenapiPaths, 'delete', Uri, ResponseCode>,
|
|
353
|
+
RequestBodyJsonContent extends RequestBody<OpenapiPaths, 'delete', Uri>,
|
|
945
354
|
>(
|
|
946
355
|
/**
|
|
947
356
|
* The uri on your background you are trying to hit.
|
|
@@ -1000,137 +409,15 @@ export class OpenapiSpecSession<OpenapiPaths> {
|
|
|
1000
409
|
* @param opts.headers - headers you would like to send with your request.
|
|
1001
410
|
* (Optional)
|
|
1002
411
|
*/
|
|
1003
|
-
opts
|
|
1004
|
-
?
|
|
412
|
+
opts?: Params['length'] extends 0
|
|
413
|
+
? OpenapiSpecRequestOptsPost<RequestBodyJsonContent>
|
|
1005
414
|
: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
1006
415
|
[K in Params[number]]: string | IdType
|
|
1007
416
|
}
|
|
1008
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
1009
|
-
// DOESNT have params
|
|
1010
|
-
public async delete<
|
|
1011
|
-
const Uri extends RoutesWithHttpMethod<
|
|
1012
|
-
OpenapiPaths,
|
|
1013
|
-
'delete' & keyof OpenapiPaths[keyof OpenapiPaths]
|
|
1014
|
-
> &
|
|
1015
|
-
string,
|
|
1016
|
-
const ResponseCode extends Params['length'] extends 0
|
|
1017
|
-
? keyof ExcludeNever<ResponseMap> & number
|
|
1018
|
-
: never,
|
|
1019
|
-
HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths],
|
|
1020
|
-
Params extends string[] & ExtractOpenapiParams<Uri>,
|
|
1021
|
-
ResponseMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['responses' &
|
|
1022
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
1023
|
-
Content extends ResponseMap extends undefined
|
|
1024
|
-
? undefined
|
|
1025
|
-
: ResponseCode extends undefined
|
|
1026
|
-
? undefined
|
|
1027
|
-
: ResponseCode extends number
|
|
1028
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
1029
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
1030
|
-
: undefined,
|
|
1031
|
-
JsonContent extends Content extends undefined
|
|
1032
|
-
? undefined
|
|
1033
|
-
: Content['application/json' & keyof Content],
|
|
1034
|
-
RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' &
|
|
1035
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
1036
|
-
RequestBodyContent extends RequestBodyMap extends undefined
|
|
1037
|
-
? undefined
|
|
1038
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
1039
|
-
RequestBodyJsonContent extends RequestBodyContent extends undefined
|
|
1040
|
-
? undefined
|
|
1041
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
1042
|
-
>(
|
|
1043
|
-
/**
|
|
1044
|
-
* The uri on your background you are trying to hit.
|
|
1045
|
-
* This should be a path, like '/users'.
|
|
1046
|
-
*
|
|
1047
|
-
* ```ts
|
|
1048
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
1049
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
1050
|
-
* const res = await session.delete('/user', 200)
|
|
1051
|
-
* ```
|
|
1052
|
-
*/
|
|
1053
|
-
uri: Uri,
|
|
1054
|
-
|
|
1055
|
-
/**
|
|
1056
|
-
* The response status you are expecting to receive
|
|
1057
|
-
* when making this request. It will need to match
|
|
1058
|
-
* one of the accepted response statuses for the
|
|
1059
|
-
* provided uri in your openapi types
|
|
1060
|
-
*
|
|
1061
|
-
* ```ts
|
|
1062
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
1063
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
1064
|
-
* const res = await session.delete('/user', 200)
|
|
1065
|
-
* ```
|
|
1066
|
-
*/
|
|
1067
|
-
expectedStatus: ResponseCode,
|
|
1068
|
-
|
|
1069
|
-
/**
|
|
1070
|
-
* Data, headers, and other options to send with
|
|
1071
|
-
* your request.
|
|
1072
|
-
*
|
|
1073
|
-
* ```ts
|
|
1074
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
1075
|
-
* const session = await request.session('post', '/sessions/{token}', 200, { token: 'abc' })
|
|
1076
|
-
* const res = await session.delete(
|
|
1077
|
-
* '/user',
|
|
1078
|
-
* 200,
|
|
1079
|
-
* {
|
|
1080
|
-
* data: {
|
|
1081
|
-
* ...request body here
|
|
1082
|
-
* },
|
|
1083
|
-
* headers: {
|
|
1084
|
-
* ...headers here
|
|
1085
|
-
* },
|
|
1086
|
-
* }
|
|
1087
|
-
* )
|
|
1088
|
-
* ```
|
|
1089
|
-
*
|
|
1090
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
1091
|
-
* requestBody shape in the openapi document for this uri.
|
|
1092
|
-
* (Optional)
|
|
1093
|
-
*
|
|
1094
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
1095
|
-
* (Optional)
|
|
1096
|
-
*/
|
|
1097
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never
|
|
1098
|
-
): Promise<OpenapiSpecResponse<JsonContent>>
|
|
1099
|
-
// final
|
|
1100
|
-
public async delete<
|
|
1101
|
-
const Uri extends GetOpenapiUrl<OpenapiPaths>,
|
|
1102
|
-
const ResponseCode extends keyof ResponseMap & number,
|
|
1103
|
-
HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths],
|
|
1104
|
-
ResolvedUri extends GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths,
|
|
1105
|
-
ResponseMap = HttpMethodMap['delete' & keyof HttpMethodMap]['responses' &
|
|
1106
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
1107
|
-
Content = ResponseMap extends undefined
|
|
1108
|
-
? undefined
|
|
1109
|
-
: ResponseCode extends undefined
|
|
1110
|
-
? undefined
|
|
1111
|
-
: ResponseCode extends number
|
|
1112
|
-
? ResponseMap[ResponseCode & keyof ResponseMap]['content' &
|
|
1113
|
-
keyof ResponseMap[ResponseCode & keyof ResponseMap]]
|
|
1114
|
-
: undefined,
|
|
1115
|
-
JsonContent = Content extends undefined
|
|
1116
|
-
? undefined
|
|
1117
|
-
: Content['application/json' & keyof Content],
|
|
1118
|
-
RequestBodyMap = HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' &
|
|
1119
|
-
keyof HttpMethodMap['delete' & keyof HttpMethodMap]],
|
|
1120
|
-
RequestBodyContent = RequestBodyMap extends undefined
|
|
1121
|
-
? undefined
|
|
1122
|
-
: RequestBodyMap['content' & keyof RequestBodyMap],
|
|
1123
|
-
RequestBodyJsonContent = RequestBodyContent extends undefined
|
|
1124
|
-
? undefined
|
|
1125
|
-
: RequestBodyContent['application/json' & keyof RequestBodyContent],
|
|
1126
|
-
>(
|
|
1127
|
-
uri: Uri,
|
|
1128
|
-
expectedStatus: ResponseCode,
|
|
1129
|
-
opts: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> = {}
|
|
1130
417
|
): Promise<OpenapiSpecResponse<JsonContent>> {
|
|
1131
418
|
return await this.makeRequest(
|
|
1132
419
|
'delete',
|
|
1133
|
-
fillOpenapiParams(uri, opts),
|
|
420
|
+
fillOpenapiParams(uri, opts || {}),
|
|
1134
421
|
expectedStatus,
|
|
1135
422
|
opts as SpecRequestOptsAll
|
|
1136
423
|
)
|