@rvoh/psychic-spec-helpers 0.7.2 → 0.7.3
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 +15 -335
- package/dist/types/src/unit/OpenapiSpecSession.d.ts +8 -277
- package/package.json +1 -1
- package/src/unit/OpenapiSpecRequest.ts +98 -831
- package/src/unit/OpenapiSpecSession.ts +82 -696
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { IdType } from '@rvoh/dream';
|
|
1
2
|
import { Response } from 'supertest';
|
|
2
|
-
import {
|
|
3
|
+
import { ExtractOpenapiParams, First, GetResolvedOpenapiUrl, RoutesWithHttpMethod } from './helpers/openapiTypeHelpers.js';
|
|
3
4
|
import { OpenapiSpecSession } from './OpenapiSpecSession.js';
|
|
4
|
-
import { HttpMethod } from './supersession.js';
|
|
5
|
-
import { IdType } from '@rvoh/dream';
|
|
6
5
|
import { SpecRequestOpts, SpecRequestOptsAll } from './SpecRequest.js';
|
|
6
|
+
import { HttpMethod } from './supersession.js';
|
|
7
7
|
export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
8
8
|
private PsychicServer;
|
|
9
9
|
private server;
|
|
10
|
+
init(PsychicServer: any): Promise<void>;
|
|
10
11
|
get<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'get' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], ResponseMap extends HttpMethodMap['get' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['get' & keyof HttpMethodMap]], ParametersMap extends HttpMethodMap['get' & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap['get' & keyof HttpMethodMap]], QueryMap extends ParametersMap['query' & keyof ParametersMap], Params extends string[] & ExtractOpenapiParams<Uri>, Content extends 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]>(
|
|
11
12
|
/**
|
|
12
13
|
* The uri on your background you are trying to hit.
|
|
@@ -57,58 +58,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
57
58
|
* @param opts.headers - headers you would like to send with your request.
|
|
58
59
|
* (Optional)
|
|
59
60
|
*/
|
|
60
|
-
opts
|
|
61
|
+
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsGet<QueryMap> : OpenapiSpecRequestOptsGet<QueryMap> & {
|
|
61
62
|
[K in Params[number]]: string | IdType;
|
|
62
63
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* The uri on your background you are trying to hit.
|
|
66
|
-
* This should be a path, like '/users'.
|
|
67
|
-
*
|
|
68
|
-
* ```ts
|
|
69
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
70
|
-
* const res = await request.get('/user', 200)
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
uri: Uri,
|
|
74
|
-
/**
|
|
75
|
-
* The response status you are expecting to receive
|
|
76
|
-
* when making this request. It will need to match
|
|
77
|
-
* one of the accepted response statuses for the
|
|
78
|
-
* provided uri in your openapi types
|
|
79
|
-
*
|
|
80
|
-
* ```ts
|
|
81
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
82
|
-
* const res = await request.get('/user', 200)
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
expectedStatus: ResponseCode,
|
|
86
|
-
/**
|
|
87
|
-
* Query params, headers, and other options to send with
|
|
88
|
-
* your request.
|
|
89
|
-
*
|
|
90
|
-
* ```ts
|
|
91
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
92
|
-
* const res = await request.get(
|
|
93
|
-
* '/user',
|
|
94
|
-
* 200,
|
|
95
|
-
* {
|
|
96
|
-
* query: {
|
|
97
|
-
* ...query params here
|
|
98
|
-
* }
|
|
99
|
-
* }
|
|
100
|
-
* )
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* @param opts.query - query params you want to send up. Must match the
|
|
104
|
-
* query params in the openapi document for this uri.
|
|
105
|
-
* (Optional)
|
|
106
|
-
*
|
|
107
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
108
|
-
* (Optional)
|
|
109
|
-
*/
|
|
110
|
-
opts?: OpenapiSpecRequestOptsGet<QueryMap>): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
111
|
-
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? never : keyof ExcludeNever<ResponseMap> & number, HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths], ResolvedUri extends First<GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths>, Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['post' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['post' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['post' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
64
|
+
post<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'post' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[ResolvedUri & keyof OpenapiPaths], ResolvedUri extends First<GetResolvedOpenapiUrl<OpenapiPaths, Uri> & keyof OpenapiPaths>, Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['post' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['post' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['post' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['post' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
112
65
|
/**
|
|
113
66
|
* The uri on your background you are trying to hit.
|
|
114
67
|
* This should be a path, like '/users'.
|
|
@@ -161,61 +114,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
161
114
|
* @param opts.headers - headers you would like to send with your request.
|
|
162
115
|
* (Optional)
|
|
163
116
|
*/
|
|
164
|
-
opts: OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
117
|
+
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
165
118
|
[K in Params[number]]: string;
|
|
166
119
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* The uri on your background you are trying to hit.
|
|
170
|
-
* This should be a path, like '/users'.
|
|
171
|
-
*
|
|
172
|
-
* ```ts
|
|
173
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
174
|
-
* const res = await request.post('/user', 200)
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
177
|
-
uri: Uri,
|
|
178
|
-
/**
|
|
179
|
-
* The response status you are expecting to receive
|
|
180
|
-
* when making this request. It will need to match
|
|
181
|
-
* one of the accepted response statuses for the
|
|
182
|
-
* provided uri in your openapi types
|
|
183
|
-
*
|
|
184
|
-
* ```ts
|
|
185
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
186
|
-
* const res = await request.post('/user', 200)
|
|
187
|
-
* ```
|
|
188
|
-
*/
|
|
189
|
-
expectedStatus: ResponseCode,
|
|
190
|
-
/**
|
|
191
|
-
* Data, headers, and other options to send with
|
|
192
|
-
* your request.
|
|
193
|
-
*
|
|
194
|
-
* ```ts
|
|
195
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
196
|
-
* const res = await request.post(
|
|
197
|
-
* '/user',
|
|
198
|
-
* 200,
|
|
199
|
-
* {
|
|
200
|
-
* data: {
|
|
201
|
-
* ...request body here
|
|
202
|
-
* },
|
|
203
|
-
* headers: {
|
|
204
|
-
* ...headers here
|
|
205
|
-
* },
|
|
206
|
-
* }
|
|
207
|
-
* )
|
|
208
|
-
* ```
|
|
209
|
-
*
|
|
210
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
211
|
-
* requestBody shape in the openapi document for this uri.
|
|
212
|
-
* (Optional)
|
|
213
|
-
*
|
|
214
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
215
|
-
* (Optional)
|
|
216
|
-
*/
|
|
217
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
218
|
-
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? never : keyof ExcludeNever<ResponseMap> & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['put' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['put' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['put' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
120
|
+
put<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'put' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['put' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['put' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['put' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['put' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
219
121
|
/**
|
|
220
122
|
* The uri on your background you are trying to hit.
|
|
221
123
|
* This should be a path, like '/users'.
|
|
@@ -269,63 +171,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
269
171
|
* @param opts.headers - headers you would like to send with your request.
|
|
270
172
|
* (Optional)
|
|
271
173
|
*/
|
|
272
|
-
opts
|
|
174
|
+
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
273
175
|
[K in Params[number]]: string | IdType;
|
|
274
176
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* The uri on your background you are trying to hit.
|
|
278
|
-
* This should be a path, like '/users'.
|
|
279
|
-
*
|
|
280
|
-
* ```ts
|
|
281
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
282
|
-
* const res = await request.put('/user', 200, { data: { name: 'new name' })
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
uri: Uri,
|
|
286
|
-
/**
|
|
287
|
-
* The response status you are expecting to receive
|
|
288
|
-
* when making this request. It will need to match
|
|
289
|
-
* one of the accepted response statuses for the
|
|
290
|
-
* provided uri in your openapi types
|
|
291
|
-
*
|
|
292
|
-
* ```ts
|
|
293
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
294
|
-
* const res = await request.put('/user', 200, { data: { name: 'new name' })
|
|
295
|
-
* ```
|
|
296
|
-
*/
|
|
297
|
-
expectedStatus: ResponseCode,
|
|
298
|
-
/**
|
|
299
|
-
* An object containing the path fields required to
|
|
300
|
-
* fill your uri in, as well as any additional PUT
|
|
301
|
-
* arguments, like `data`, for example.
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
* ```ts
|
|
305
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
306
|
-
* const res = await request.put(
|
|
307
|
-
* '/user',
|
|
308
|
-
* 200,
|
|
309
|
-
* {
|
|
310
|
-
* data: {
|
|
311
|
-
* ...request body here
|
|
312
|
-
* },
|
|
313
|
-
* headers: {
|
|
314
|
-
* ...headers here
|
|
315
|
-
* },
|
|
316
|
-
* }
|
|
317
|
-
* )
|
|
318
|
-
* ```
|
|
319
|
-
*
|
|
320
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
321
|
-
* requestBody shape in the openapi document for this uri.
|
|
322
|
-
* (Optional)
|
|
323
|
-
*
|
|
324
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
325
|
-
* (Optional)
|
|
326
|
-
*/
|
|
327
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
328
|
-
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? never : keyof ExcludeNever<ResponseMap> & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['patch' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['patch' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
177
|
+
patch<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'patch' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['patch' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['patch' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['patch' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
329
178
|
/**
|
|
330
179
|
* The uri on your background you are trying to hit.
|
|
331
180
|
* This should be a path, like '/posts'.
|
|
@@ -378,61 +227,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
378
227
|
* @param opts.headers - headers you would like to send with your request.
|
|
379
228
|
* (Optional)
|
|
380
229
|
*/
|
|
381
|
-
opts
|
|
230
|
+
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
382
231
|
[K in Params[number]]: string | IdType;
|
|
383
232
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
384
|
-
|
|
385
|
-
/**
|
|
386
|
-
* The uri on your background you are trying to hit.
|
|
387
|
-
* This should be a path, like '/user'.
|
|
388
|
-
*
|
|
389
|
-
* ```ts
|
|
390
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
391
|
-
* const res = await request.patch('/user', 200, { data: { name: 'new name' }})
|
|
392
|
-
* ```
|
|
393
|
-
*/
|
|
394
|
-
uri: Uri,
|
|
395
|
-
/**
|
|
396
|
-
* The response status you are expecting to receive
|
|
397
|
-
* when making this request. It will need to match
|
|
398
|
-
* one of the accepted response statuses for the
|
|
399
|
-
* provided uri in your openapi types
|
|
400
|
-
*
|
|
401
|
-
* ```ts
|
|
402
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
403
|
-
* const res = await request.patch('/user', 200, { data: { name: 'new name' }})
|
|
404
|
-
* ```
|
|
405
|
-
*/
|
|
406
|
-
expectedStatus: ResponseCode,
|
|
407
|
-
/**
|
|
408
|
-
* Data, headers, and other options to send with
|
|
409
|
-
* your request.
|
|
410
|
-
*
|
|
411
|
-
* ```ts
|
|
412
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
413
|
-
* const res = await request.patch(
|
|
414
|
-
* '/user',
|
|
415
|
-
* 200,
|
|
416
|
-
* {
|
|
417
|
-
* data: {
|
|
418
|
-
* ...request body here
|
|
419
|
-
* },
|
|
420
|
-
* headers: {
|
|
421
|
-
* ...headers here
|
|
422
|
-
* },
|
|
423
|
-
* }
|
|
424
|
-
* )
|
|
425
|
-
* ```
|
|
426
|
-
*
|
|
427
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
428
|
-
* requestBody shape in the openapi document for this uri.
|
|
429
|
-
* (Optional)
|
|
430
|
-
*
|
|
431
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
432
|
-
* (Optional)
|
|
433
|
-
*/
|
|
434
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
435
|
-
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? never : keyof ExcludeNever<ResponseMap> & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['delete' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['delete' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
233
|
+
delete<const Uri extends RoutesWithHttpMethod<OpenapiPaths, 'delete' & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['responses' & keyof HttpMethodMap['delete' & 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, JsonContent extends Content extends undefined ? undefined : Content['application/json' & keyof Content], RequestBodyMap extends HttpMethodMap['delete' & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap['delete' & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(
|
|
436
234
|
/**
|
|
437
235
|
* The uri on your background you are trying to hit.
|
|
438
236
|
* This should be a path, like '/users'.
|
|
@@ -485,62 +283,10 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
485
283
|
* @param opts.headers - headers you would like to send with your request.
|
|
486
284
|
* (Optional)
|
|
487
285
|
*/
|
|
488
|
-
opts
|
|
286
|
+
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> & {
|
|
489
287
|
[K in Params[number]]: string | IdType;
|
|
490
288
|
}): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
491
|
-
|
|
492
|
-
/**
|
|
493
|
-
* The uri on your background you are trying to hit.
|
|
494
|
-
* This should be a path, like '/users'.
|
|
495
|
-
*
|
|
496
|
-
* ```ts
|
|
497
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
498
|
-
* const res = await request.delete('/user', 200)
|
|
499
|
-
* ```
|
|
500
|
-
*/
|
|
501
|
-
uri: Uri,
|
|
502
|
-
/**
|
|
503
|
-
* The response status you are expecting to receive
|
|
504
|
-
* when making this request. It will need to match
|
|
505
|
-
* one of the accepted response statuses for the
|
|
506
|
-
* provided uri in your openapi types
|
|
507
|
-
*
|
|
508
|
-
* ```ts
|
|
509
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
510
|
-
* const res = await request.delete('/user', 200)
|
|
511
|
-
* ```
|
|
512
|
-
*/
|
|
513
|
-
expectedStatus: ResponseCode,
|
|
514
|
-
/**
|
|
515
|
-
* Data, headers, and other options to send with
|
|
516
|
-
* your request.
|
|
517
|
-
*
|
|
518
|
-
* ```ts
|
|
519
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
520
|
-
* const res = await request.delete(
|
|
521
|
-
* '/user',
|
|
522
|
-
* 200,
|
|
523
|
-
* {
|
|
524
|
-
* data: {
|
|
525
|
-
* ...request body here
|
|
526
|
-
* },
|
|
527
|
-
* headers: {
|
|
528
|
-
* ...headers here
|
|
529
|
-
* },
|
|
530
|
-
* }
|
|
531
|
-
* )
|
|
532
|
-
* ```
|
|
533
|
-
*
|
|
534
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
535
|
-
* requestBody shape in the openapi document for this uri.
|
|
536
|
-
* (Optional)
|
|
537
|
-
*
|
|
538
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
539
|
-
* (Optional)
|
|
540
|
-
*/
|
|
541
|
-
opts?: Params['length'] extends 0 ? OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never): Promise<OpenapiSpecResponse<JsonContent>>;
|
|
542
|
-
init(PsychicServer: any): Promise<void>;
|
|
543
|
-
session<const ProvidedHttpMethod extends HttpMethod, const Uri extends RoutesWithHttpMethod<OpenapiPaths, ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? never : keyof ExcludeNever<ResponseMap> & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], ParametersMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], QueryMap extends ParametersMap['query' & keyof ParametersMap], RequestBodyMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(httpMethod: ProvidedHttpMethod,
|
|
289
|
+
session<const ProvidedHttpMethod extends HttpMethod, const Uri extends RoutesWithHttpMethod<OpenapiPaths, ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends keyof ResponseMap & number, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], ParametersMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], QueryMap extends ParametersMap['query' & keyof ParametersMap], RequestBodyMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(httpMethod: ProvidedHttpMethod,
|
|
544
290
|
/**
|
|
545
291
|
* The uri on your background you are trying to hit.
|
|
546
292
|
* This should be a path, like '/users'.
|
|
@@ -604,75 +350,9 @@ export declare class OpenapiSpecRequest<OpenapiPaths = undefined> {
|
|
|
604
350
|
* @param opts.headers - headers you would like to send with your request.
|
|
605
351
|
* (Optional)
|
|
606
352
|
*/
|
|
607
|
-
opts
|
|
353
|
+
opts?: (ProvidedHttpMethod extends 'get' ? OpenapiSpecRequestOptsGet<QueryMap> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent>) & {
|
|
608
354
|
[K in Params[number]]: string | IdType;
|
|
609
355
|
}): Promise<OpenapiSpecSession<OpenapiPaths>>;
|
|
610
|
-
session<const ProvidedHttpMethod extends HttpMethod, const Uri extends RoutesWithHttpMethod<OpenapiPaths, ProvidedHttpMethod & keyof OpenapiPaths[keyof OpenapiPaths]> & string, const ResponseCode extends Params['length'] extends 0 ? keyof ExcludeNever<ResponseMap> & number : never, HttpMethodMap extends OpenapiPaths[Uri & keyof OpenapiPaths], Params extends string[] & ExtractOpenapiParams<Uri>, ResponseMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['responses' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], ParametersMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['parameters' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], QueryMap extends ParametersMap['query' & keyof ParametersMap], RequestBodyMap extends HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]['requestBody' & keyof HttpMethodMap[ProvidedHttpMethod & keyof HttpMethodMap]], RequestBodyContent extends RequestBodyMap extends undefined ? undefined : RequestBodyMap['content' & keyof RequestBodyMap], RequestBodyJsonContent extends RequestBodyContent extends undefined ? undefined : RequestBodyContent['application/json' & keyof RequestBodyContent]>(httpMethod: ProvidedHttpMethod,
|
|
611
|
-
/**
|
|
612
|
-
* The uri on your background you are trying to hit.
|
|
613
|
-
* This should be a path, like '/users'.
|
|
614
|
-
*
|
|
615
|
-
* ```ts
|
|
616
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
617
|
-
* const session = await request.session('post', '/login', 200)
|
|
618
|
-
* ```
|
|
619
|
-
*/
|
|
620
|
-
uri: Uri,
|
|
621
|
-
/**
|
|
622
|
-
* The response status you are expecting to receive
|
|
623
|
-
* when making this request. It will need to match
|
|
624
|
-
* one of the accepted response statuses for the
|
|
625
|
-
* provided uri in your openapi types
|
|
626
|
-
*
|
|
627
|
-
* ```ts
|
|
628
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
629
|
-
* const session = await request.session('post', '/login', 200)
|
|
630
|
-
* ```
|
|
631
|
-
*/
|
|
632
|
-
expectedStatus: ResponseCode,
|
|
633
|
-
/**
|
|
634
|
-
* An object containing the path fields required to
|
|
635
|
-
* fill your uri in, as well as any additional
|
|
636
|
-
* arguments, for the chosen HTTP verb, like `data`,
|
|
637
|
-
* for example.
|
|
638
|
-
*
|
|
639
|
-
* ```ts
|
|
640
|
-
* const request = new OpenapiSpecRequest<openapiPaths>()
|
|
641
|
-
* const res = await request.session(
|
|
642
|
-
* 'post',
|
|
643
|
-
* '/login',
|
|
644
|
-
* 200,
|
|
645
|
-
* {
|
|
646
|
-
* token: '123',
|
|
647
|
-
*
|
|
648
|
-
* // if non-get
|
|
649
|
-
* data: {
|
|
650
|
-
* email: 'abc',
|
|
651
|
-
* password: 'def',
|
|
652
|
-
* },
|
|
653
|
-
* // if get
|
|
654
|
-
* query: {
|
|
655
|
-
* ...request body here
|
|
656
|
-
* },
|
|
657
|
-
* headers: {
|
|
658
|
-
* ...headers here
|
|
659
|
-
* },
|
|
660
|
-
* }
|
|
661
|
-
* )
|
|
662
|
-
* ```
|
|
663
|
-
*
|
|
664
|
-
* @param opts.data - request body data you want to send up. Must match the
|
|
665
|
-
* requestBody shape in the openapi document for this uri.
|
|
666
|
-
* (Optional)
|
|
667
|
-
*
|
|
668
|
-
* @param opts.query - query params you want to send up. Must match the
|
|
669
|
-
* query parameters in the openapi document for this uri.
|
|
670
|
-
* (Optional)
|
|
671
|
-
*
|
|
672
|
-
* @param opts.headers - headers you would like to send with your request.
|
|
673
|
-
* (Optional)
|
|
674
|
-
*/
|
|
675
|
-
opts?: Params['length'] extends 0 ? ProvidedHttpMethod extends 'get' ? OpenapiSpecRequestOptsGet<QueryMap> : OpenapiSpecRequestOptsPost<RequestBodyJsonContent> : never): Promise<OpenapiSpecSession<OpenapiPaths>>;
|
|
676
356
|
private makeRequest;
|
|
677
357
|
}
|
|
678
358
|
export type OpenapiSpecResponse<Body = any> = Omit<Response, 'body'> & {
|