-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerator.ts
90 lines (87 loc) · 3.66 KB
/
generator.ts
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
85
86
87
88
89
90
import { generateClojureCode } from "./generators/clojure";
import { generateCSharpCode } from "./generators/csharp";
import { generateCurlCode } from "./generators/curl";
import { generateDartCode } from "./generators/dart";
import { generateElixirCode } from "./generators/elixir";
import { generateGoCode } from "./generators/go";
import { generateJavaCode } from "./generators/java";
import { generateJavaScriptCode } from "./generators/javascript";
import { generateKotlinCode } from "./generators/kotlin";
import { generateNodeAxiosCode } from "./generators/node-axios";
import { generateNodeFetchCode } from "./generators/node-fetch";
import { generateNodeHTTPCode } from "./generators/node-http";
import { generateObjectiveCCode } from "./generators/objective-c";
import { generatePHPCode } from "./generators/php";
import { generatePHPGuzzleCode } from "./generators/php-guzzle";
import { generatePHPRequestsCode } from "./generators/php-requests";
import { generatePythonCode } from "./generators/python";
import { generatePythonRequestsCode } from "./generators/python-requests";
import { generateRubyCode } from "./generators/ruby";
import { generateRustCode } from "./generators/rust";
import { generateSwiftCode } from "./generators/swift";
import { generateWgetCode } from "./generators/wget";
import { JsonBody, RequestOptions } from "./request";
import { CodeTarget } from "./target";
export * from "./target";
export * from "./request";
export function generateCode(
request: RequestOptions,
target: CodeTarget
): string {
if (request.body instanceof JsonBody) {
if (request.headers) {
const contentType =
request.headers["Content-Type"] ||
request.headers["content-type"];
if (!contentType || !contentType.includes("application/json")) {
request.headers["Content-Type"] = "application/json";
}
}
}
switch (target) {
case CodeTarget.Clojure:
return generateClojureCode(request);
case CodeTarget.CSharp:
return generateCSharpCode(request);
case CodeTarget.Curl:
return generateCurlCode(request);
case CodeTarget.Dart:
return generateDartCode(request);
case CodeTarget.Elixir:
return generateElixirCode(request);
case CodeTarget.Go:
return generateGoCode(request);
case CodeTarget.Java:
return generateJavaCode(request);
case CodeTarget.JavaScript:
return generateJavaScriptCode(request);
case CodeTarget.Kotlin:
return generateKotlinCode(request);
case CodeTarget.NodeHTTP:
return generateNodeHTTPCode(request);
case CodeTarget.NodeAxios:
return generateNodeAxiosCode(request);
case CodeTarget.NodeFetch:
return generateNodeFetchCode(request);
case CodeTarget.ObjectiveC:
return generateObjectiveCCode(request);
case CodeTarget.PHP:
return generatePHPCode(request);
case CodeTarget.PHPGuzzle:
return generatePHPGuzzleCode(request);
case CodeTarget.PHPRequests:
return generatePHPRequestsCode(request);
case CodeTarget.Python:
return generatePythonCode(request);
case CodeTarget.PythonRequests:
return generatePythonRequestsCode(request);
case CodeTarget.Ruby:
return generateRubyCode(request);
case CodeTarget.Rust:
return generateRustCode(request);
case CodeTarget.Swift:
return generateSwiftCode(request);
case CodeTarget.Wget:
return generateWgetCode(request);
}
}