-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathapi-request-codegen.ts
More file actions
84 lines (73 loc) · 2.49 KB
/
Copy pathapi-request-codegen.ts
File metadata and controls
84 lines (73 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import { GeneratedFile, object, Program, Value } from '../sourcegen/index.js'
import { valueForAssertion } from './api-assertion-codegen.js'
import { Request } from './api-request.js'
import { Context } from './internal/codegen/index.js'
import { valueForKeyValuePair } from './key-value-pair-codegen.js'
export function valueForRequest (
program: Program,
genfile: GeneratedFile,
context: Context,
request: Request,
): Value {
return object(builder => {
builder.string('url', request.url)
builder.string('method', request.method)
if (request.ipFamily && request.ipFamily !== 'IPv4') {
builder.string('ipFamily', request.ipFamily)
}
if (request.followRedirects === false) {
builder.boolean('followRedirects', request.followRedirects)
}
if (request.skipSSL === true) {
builder.boolean('skipSSL', request.skipSSL)
}
if (request.treatResponseBodyAsText === true) {
builder.boolean('treatResponseBodyAsText', request.treatResponseBodyAsText)
}
if (request.body !== undefined && request.body !== '') {
builder.string('body', request.body)
}
if (request.bodyType && request.bodyType !== 'NONE') {
builder.string('bodyType', request.bodyType)
}
if (request.headers) {
const headers = request.headers
if (headers.length > 0) {
builder.array('headers', builder => {
for (const header of headers) {
builder.value(valueForKeyValuePair(program, genfile, context, header))
}
})
}
}
if (request.queryParameters) {
const queryParameters = request.queryParameters
if (queryParameters.length > 0) {
builder.array('queryParameters', builder => {
for (const param of queryParameters) {
builder.value(valueForKeyValuePair(program, genfile, context, param))
}
})
}
}
if (request.basicAuth) {
const basicAuth = request.basicAuth
if (basicAuth.username !== '' && basicAuth.password !== '') {
builder.object('basicAuth', builder => {
builder.string('username', basicAuth.username)
builder.string('password', basicAuth.password)
})
}
}
if (request.assertions) {
const assertions = request.assertions
if (assertions.length > 0) {
builder.array('assertions', builder => {
for (const assertion of assertions) {
builder.value(valueForAssertion(genfile, assertion))
}
})
}
}
})
}