fumadocs-openapi 10.2.2 → 10.2.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/generate-file.d.ts +53 -49
- package/dist/generate-file.d.ts.map +1 -1
- package/dist/generate-file.js +88 -102
- package/dist/generate-file.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3 -1
- package/dist/playground/client.d.ts +88 -72
- package/dist/playground/client.d.ts.map +1 -1
- package/dist/playground/client.js +446 -296
- package/dist/playground/client.js.map +1 -0
- package/dist/playground/components/inputs.js +395 -172
- package/dist/playground/components/inputs.js.map +1 -0
- package/dist/playground/components/oauth-dialog.js +270 -174
- package/dist/playground/components/oauth-dialog.js.map +1 -0
- package/dist/playground/components/server-select.js +115 -55
- package/dist/playground/components/server-select.js.map +1 -0
- package/dist/playground/fetcher.d.ts +10 -18
- package/dist/playground/fetcher.d.ts.map +1 -1
- package/dist/playground/fetcher.js +67 -75
- package/dist/playground/fetcher.js.map +1 -0
- package/dist/playground/get-default-values.js +23 -26
- package/dist/playground/get-default-values.js.map +1 -0
- package/dist/playground/index.d.ts +23 -13
- package/dist/playground/index.d.ts.map +1 -1
- package/dist/playground/index.js +87 -91
- package/dist/playground/index.js.map +1 -0
- package/dist/playground/lazy.js +9 -2
- package/dist/playground/lazy.js.map +1 -0
- package/dist/playground/schema.d.ts +18 -55
- package/dist/playground/schema.d.ts.map +1 -1
- package/dist/playground/schema.js +117 -106
- package/dist/playground/schema.js.map +1 -0
- package/dist/playground/status-info.js +49 -37
- package/dist/playground/status-info.js.map +1 -0
- package/dist/requests/generators/csharp.js +40 -50
- package/dist/requests/generators/csharp.js.map +1 -0
- package/dist/requests/generators/curl.js +28 -27
- package/dist/requests/generators/curl.js.map +1 -0
- package/dist/requests/generators/go.js +39 -35
- package/dist/requests/generators/go.js.map +1 -0
- package/dist/requests/generators/index.js +49 -43
- package/dist/requests/generators/index.js.map +1 -0
- package/dist/requests/generators/java.js +56 -67
- package/dist/requests/generators/java.js.map +1 -0
- package/dist/requests/generators/javascript.js +38 -45
- package/dist/requests/generators/javascript.js.map +1 -0
- package/dist/requests/generators/python.js +33 -37
- package/dist/requests/generators/python.js.map +1 -0
- package/dist/requests/media/adapter.d.ts +38 -84
- package/dist/requests/media/adapter.d.ts.map +1 -1
- package/dist/requests/media/adapter.js +122 -169
- package/dist/requests/media/adapter.js.map +1 -0
- package/dist/requests/media/encode.d.ts +12 -7
- package/dist/requests/media/encode.d.ts.map +1 -1
- package/dist/requests/media/encode.js +131 -109
- package/dist/requests/media/encode.js.map +1 -0
- package/dist/requests/media/resolve-adapter.js +28 -28
- package/dist/requests/media/resolve-adapter.js.map +1 -0
- package/dist/requests/string-utils.js +28 -35
- package/dist/requests/string-utils.js.map +1 -0
- package/dist/requests/to-python-object.js +16 -28
- package/dist/requests/to-python-object.js.map +1 -0
- package/dist/requests/types.d.ts +25 -21
- package/dist/requests/types.d.ts.map +1 -1
- package/dist/scalar/client.js +57 -20
- package/dist/scalar/client.js.map +1 -0
- package/dist/scalar/index.d.ts +8 -2
- package/dist/scalar/index.d.ts.map +1 -1
- package/dist/scalar/index.js +29 -19
- package/dist/scalar/index.js.map +1 -0
- package/dist/server/create.d.ts +29 -25
- package/dist/server/create.d.ts.map +1 -1
- package/dist/server/create.js +42 -39
- package/dist/server/create.js.map +1 -0
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +4 -2
- package/dist/server/proxy.d.ts +28 -28
- package/dist/server/proxy.d.ts.map +1 -1
- package/dist/server/proxy.js +58 -75
- package/dist/server/proxy.js.map +1 -0
- package/dist/server/source-api.d.ts +32 -29
- package/dist/server/source-api.d.ts.map +1 -1
- package/dist/server/source-api.js +82 -75
- package/dist/server/source-api.js.map +1 -0
- package/dist/types.d.ts +41 -36
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/api-page.d.ts +140 -136
- package/dist/ui/api-page.d.ts.map +1 -1
- package/dist/ui/api-page.js +134 -118
- package/dist/ui/api-page.js.map +1 -0
- package/dist/ui/client/index.d.ts +30 -26
- package/dist/ui/client/index.d.ts.map +1 -1
- package/dist/ui/client/index.js +8 -2
- package/dist/ui/client/index.js.map +1 -0
- package/dist/ui/client/storage-key.js +16 -10
- package/dist/ui/client/storage-key.js.map +1 -0
- package/dist/ui/components/accordion.js +40 -14
- package/dist/ui/components/accordion.js.map +1 -0
- package/dist/ui/components/dialog.js +51 -15
- package/dist/ui/components/dialog.js.map +1 -0
- package/dist/ui/components/input.js +18 -8
- package/dist/ui/components/input.js.map +1 -0
- package/dist/ui/components/method-label.js +38 -33
- package/dist/ui/components/method-label.js.map +1 -0
- package/dist/ui/components/select.js +66 -15
- package/dist/ui/components/select.js.map +1 -0
- package/dist/ui/contexts/api.js +96 -85
- package/dist/ui/contexts/api.js.map +1 -0
- package/dist/ui/contexts/api.lazy.js +9 -2
- package/dist/ui/contexts/api.lazy.js.map +1 -0
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.js +3 -1
- package/dist/ui/operation/client.js +65 -27
- package/dist/ui/operation/client.js.map +1 -0
- package/dist/ui/operation/index.js +403 -186
- package/dist/ui/operation/index.js.map +1 -0
- package/dist/ui/operation/request-tabs.d.ts +15 -16
- package/dist/ui/operation/request-tabs.d.ts.map +1 -1
- package/dist/ui/operation/request-tabs.js +151 -131
- package/dist/ui/operation/request-tabs.js.map +1 -0
- package/dist/ui/operation/response-tabs.d.ts +27 -28
- package/dist/ui/operation/response-tabs.d.ts.map +1 -1
- package/dist/ui/operation/response-tabs.js +73 -56
- package/dist/ui/operation/response-tabs.js.map +1 -0
- package/dist/ui/operation/usage-tabs/client.js +117 -88
- package/dist/ui/operation/usage-tabs/client.js.map +1 -0
- package/dist/ui/operation/usage-tabs/index.d.ts +22 -21
- package/dist/ui/operation/usage-tabs/index.d.ts.map +1 -1
- package/dist/ui/operation/usage-tabs/index.js +63 -48
- package/dist/ui/operation/usage-tabs/index.js.map +1 -0
- package/dist/ui/operation/usage-tabs/lazy.js +11 -4
- package/dist/ui/operation/usage-tabs/lazy.js.map +1 -0
- package/dist/ui/schema/client.d.ts +11 -7
- package/dist/ui/schema/client.d.ts.map +1 -1
- package/dist/ui/schema/client.js +213 -127
- package/dist/ui/schema/client.js.map +1 -0
- package/dist/ui/schema/index.d.ts +51 -50
- package/dist/ui/schema/index.d.ts.map +1 -1
- package/dist/ui/schema/index.js +225 -248
- package/dist/ui/schema/index.js.map +1 -0
- package/dist/ui/schema/lazy.js +9 -2
- package/dist/ui/schema/lazy.js.map +1 -0
- package/dist/utils/cn.js +3 -1
- package/dist/utils/deep-equal.js +18 -26
- package/dist/utils/deep-equal.js.map +1 -0
- package/dist/utils/get-typescript-schema.js +21 -19
- package/dist/utils/get-typescript-schema.js.map +1 -0
- package/dist/utils/id-to-title.js +13 -16
- package/dist/utils/id-to-title.js.map +1 -0
- package/dist/utils/lazy.js +13 -11
- package/dist/utils/lazy.js.map +1 -0
- package/dist/utils/merge-schema.js +130 -174
- package/dist/utils/merge-schema.js.map +1 -0
- package/dist/utils/pages/builder.d.ts +80 -76
- package/dist/utils/pages/builder.d.ts.map +1 -1
- package/dist/utils/pages/builder.js +101 -118
- package/dist/utils/pages/builder.js.map +1 -0
- package/dist/utils/pages/preset-auto.d.ts +58 -55
- package/dist/utils/pages/preset-auto.d.ts.map +1 -1
- package/dist/utils/pages/preset-auto.js +124 -137
- package/dist/utils/pages/preset-auto.js.map +1 -0
- package/dist/utils/pages/to-body.js +21 -18
- package/dist/utils/pages/to-body.js.map +1 -0
- package/dist/utils/pages/to-static-data.js +48 -40
- package/dist/utils/pages/to-static-data.js.map +1 -0
- package/dist/utils/pages/to-text.d.ts +43 -41
- package/dist/utils/pages/to-text.d.ts.map +1 -1
- package/dist/utils/pages/to-text.js +93 -126
- package/dist/utils/pages/to-text.js.map +1 -0
- package/dist/utils/process-document.d.ts +18 -19
- package/dist/utils/process-document.d.ts.map +1 -1
- package/dist/utils/process-document.js +43 -54
- package/dist/utils/process-document.js.map +1 -0
- package/dist/utils/remove-undefined.js +18 -18
- package/dist/utils/remove-undefined.js.map +1 -0
- package/dist/utils/schema-to-string.js +46 -64
- package/dist/utils/schema-to-string.js.map +1 -0
- package/dist/utils/schema.d.ts +11 -27
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +43 -44
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/url.js +35 -56
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/use-query.js +39 -33
- package/dist/utils/use-query.js.map +1 -0
- package/package.json +34 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/playground/components/inputs.d.ts +0 -25
- package/dist/playground/components/inputs.d.ts.map +0 -1
- package/dist/playground/components/oauth-dialog.d.ts +0 -13
- package/dist/playground/components/oauth-dialog.d.ts.map +0 -1
- package/dist/playground/components/server-select.d.ts +0 -3
- package/dist/playground/components/server-select.d.ts.map +0 -1
- package/dist/playground/get-default-values.d.ts +0 -3
- package/dist/playground/get-default-values.d.ts.map +0 -1
- package/dist/playground/lazy.d.ts +0 -2
- package/dist/playground/lazy.d.ts.map +0 -1
- package/dist/playground/status-info.d.ts +0 -8
- package/dist/playground/status-info.d.ts.map +0 -1
- package/dist/requests/generators/csharp.d.ts +0 -3
- package/dist/requests/generators/csharp.d.ts.map +0 -1
- package/dist/requests/generators/curl.d.ts +0 -3
- package/dist/requests/generators/curl.d.ts.map +0 -1
- package/dist/requests/generators/go.d.ts +0 -3
- package/dist/requests/generators/go.d.ts.map +0 -1
- package/dist/requests/generators/index.d.ts +0 -3
- package/dist/requests/generators/index.d.ts.map +0 -1
- package/dist/requests/generators/java.d.ts +0 -3
- package/dist/requests/generators/java.d.ts.map +0 -1
- package/dist/requests/generators/javascript.d.ts +0 -3
- package/dist/requests/generators/javascript.d.ts.map +0 -1
- package/dist/requests/generators/python.d.ts +0 -3
- package/dist/requests/generators/python.d.ts.map +0 -1
- package/dist/requests/media/resolve-adapter.d.ts +0 -19
- package/dist/requests/media/resolve-adapter.d.ts.map +0 -1
- package/dist/requests/string-utils.d.ts +0 -7
- package/dist/requests/string-utils.d.ts.map +0 -1
- package/dist/requests/to-python-object.d.ts +0 -2
- package/dist/requests/to-python-object.d.ts.map +0 -1
- package/dist/requests/types.js +0 -1
- package/dist/scalar/client.d.ts +0 -7
- package/dist/scalar/client.d.ts.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/ui/client/storage-key.d.ts +0 -9
- package/dist/ui/client/storage-key.d.ts.map +0 -1
- package/dist/ui/components/accordion.d.ts +0 -8
- package/dist/ui/components/accordion.d.ts.map +0 -1
- package/dist/ui/components/dialog.d.ts +0 -20
- package/dist/ui/components/dialog.d.ts.map +0 -1
- package/dist/ui/components/input.d.ts +0 -6
- package/dist/ui/components/input.d.ts.map +0 -1
- package/dist/ui/components/method-label.d.ts +0 -10
- package/dist/ui/components/method-label.d.ts.map +0 -1
- package/dist/ui/components/select.d.ts +0 -14
- package/dist/ui/components/select.d.ts.map +0 -1
- package/dist/ui/contexts/api.d.ts +0 -33
- package/dist/ui/contexts/api.d.ts.map +0 -1
- package/dist/ui/contexts/api.lazy.d.ts +0 -2
- package/dist/ui/contexts/api.lazy.d.ts.map +0 -1
- package/dist/ui/icons.d.ts +0 -49
- package/dist/ui/icons.d.ts.map +0 -1
- package/dist/ui/icons.js +0 -281
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/operation/client.d.ts +0 -19
- package/dist/ui/operation/client.d.ts.map +0 -1
- package/dist/ui/operation/index.d.ts +0 -12
- package/dist/ui/operation/index.d.ts.map +0 -1
- package/dist/ui/operation/usage-tabs/client.d.ts +0 -23
- package/dist/ui/operation/usage-tabs/client.d.ts.map +0 -1
- package/dist/ui/operation/usage-tabs/lazy.d.ts +0 -4
- package/dist/ui/operation/usage-tabs/lazy.d.ts.map +0 -1
- package/dist/ui/schema/lazy.d.ts +0 -2
- package/dist/ui/schema/lazy.d.ts.map +0 -1
- package/dist/utils/cn.d.ts +0 -2
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/deep-equal.d.ts +0 -2
- package/dist/utils/deep-equal.d.ts.map +0 -1
- package/dist/utils/get-typescript-schema.d.ts +0 -4
- package/dist/utils/get-typescript-schema.d.ts.map +0 -1
- package/dist/utils/id-to-title.d.ts +0 -2
- package/dist/utils/id-to-title.d.ts.map +0 -1
- package/dist/utils/lazy.d.ts +0 -5
- package/dist/utils/lazy.d.ts.map +0 -1
- package/dist/utils/merge-schema.d.ts +0 -7
- package/dist/utils/merge-schema.d.ts.map +0 -1
- package/dist/utils/pages/to-body.d.ts +0 -4
- package/dist/utils/pages/to-body.d.ts.map +0 -1
- package/dist/utils/pages/to-static-data.d.ts +0 -10
- package/dist/utils/pages/to-static-data.d.ts.map +0 -1
- package/dist/utils/remove-undefined.d.ts +0 -2
- package/dist/utils/remove-undefined.d.ts.map +0 -1
- package/dist/utils/schema-to-string.d.ts +0 -8
- package/dist/utils/schema-to-string.d.ts.map +0 -1
- package/dist/utils/url.d.ts +0 -11
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/use-query.d.ts +0 -8
- package/dist/utils/use-query.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-info.js","names":["statusMap: Record<number, StatusInfo>"],"sources":["../../src/playground/status-info.tsx"],"sourcesContent":["import { CircleCheck, CircleX } from 'lucide-react';\n\ninterface StatusInfo {\n description: string;\n color: string;\n icon: React.ElementType;\n}\n\nconst statusMap: Record<number, StatusInfo> = {\n 400: { description: 'Bad Request', color: 'text-red-500', icon: CircleX },\n 401: {\n description: 'Unauthorized',\n color: 'text-red-500',\n icon: CircleX,\n },\n 403: { description: 'Forbidden', color: 'text-red-500', icon: CircleX },\n 404: {\n description: 'Not Found',\n color: 'text-fd-muted-foreground',\n icon: CircleX,\n },\n 500: {\n description: 'Internal Server Error',\n color: 'text-red-500',\n icon: CircleX,\n },\n};\n\nexport function getStatusInfo(status: number): StatusInfo {\n if (status in statusMap) {\n return statusMap[status];\n }\n\n if (status >= 200 && status < 300) {\n return {\n description: 'Successful',\n color: 'text-green-500',\n icon: CircleCheck,\n };\n }\n\n if (status >= 400) {\n return { description: 'Error', color: 'text-red-500', icon: CircleX };\n }\n\n return {\n description: 'No Description',\n color: 'text-fd-muted-foreground',\n icon: CircleX,\n };\n}\n"],"mappings":";;;AAQA,MAAMA,YAAwC;CAC5C,KAAK;EAAE,aAAa;EAAe,OAAO;EAAgB,MAAM;EAAS;CACzE,KAAK;EACH,aAAa;EACb,OAAO;EACP,MAAM;EACP;CACD,KAAK;EAAE,aAAa;EAAa,OAAO;EAAgB,MAAM;EAAS;CACvE,KAAK;EACH,aAAa;EACb,OAAO;EACP,MAAM;EACP;CACD,KAAK;EACH,aAAa;EACb,OAAO;EACP,MAAM;EACP;CACF;AAED,SAAgB,cAAc,QAA4B;AACxD,KAAI,UAAU,UACZ,QAAO,UAAU;AAGnB,KAAI,UAAU,OAAO,SAAS,IAC5B,QAAO;EACL,aAAa;EACb,OAAO;EACP,MAAM;EACP;AAGH,KAAI,UAAU,IACZ,QAAO;EAAE,aAAa;EAAS,OAAO;EAAgB,MAAM;EAAS;AAGvE,QAAO;EACL,aAAa;EACb,OAAO;EACP,MAAM;EACP"}
|
|
@@ -1,52 +1,42 @@
|
|
|
1
1
|
'use client';
|
|
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
|
-
addHeader('cookie', cookie);
|
|
39
|
-
}
|
|
40
|
-
s.push(...headerLines);
|
|
41
|
-
// Build the request
|
|
42
|
-
const method = data.method[0].toUpperCase() + data.method.slice(1).toLowerCase() + 'Async';
|
|
43
|
-
if (body) {
|
|
44
|
-
s.push(`var response = await client.${method}("${url}", body);`);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
s.push(`var response = await client.${method}("${url}");`);
|
|
48
|
-
}
|
|
49
|
-
// Add response handling
|
|
50
|
-
s.push('var responseBody = await response.Content.ReadAsStringAsync();');
|
|
51
|
-
return s.join('\n');
|
|
2
|
+
|
|
3
|
+
import { resolveMediaAdapter } from "../media/resolve-adapter.js";
|
|
4
|
+
import "../media/adapter.js";
|
|
5
|
+
|
|
6
|
+
//#region src/requests/generators/csharp.ts
|
|
7
|
+
const generator = (url, data, { mediaAdapters }) => {
|
|
8
|
+
const s = [];
|
|
9
|
+
const imports = new Set([
|
|
10
|
+
"System",
|
|
11
|
+
"System.Net.Http",
|
|
12
|
+
"System.Text"
|
|
13
|
+
]);
|
|
14
|
+
const headers = { ...data.header };
|
|
15
|
+
let body;
|
|
16
|
+
if (data.body && data.bodyMediaType) body = resolveMediaAdapter(data.bodyMediaType, mediaAdapters)?.generateExample(data, {
|
|
17
|
+
lang: "csharp",
|
|
18
|
+
addImport(from) {
|
|
19
|
+
imports.add(from);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
for (const specifier of imports) s.push(`using ${specifier};`);
|
|
23
|
+
s.push("");
|
|
24
|
+
if (body) s.push(body, "");
|
|
25
|
+
s.push("var client = new HttpClient();");
|
|
26
|
+
const headerLines = [];
|
|
27
|
+
function addHeader(key, value) {
|
|
28
|
+
headerLines.push(`client.DefaultRequestHeaders.Add("${key}", ${JSON.stringify(value)});`);
|
|
29
|
+
}
|
|
30
|
+
for (const k in headers) addHeader(k, headers[k].value);
|
|
31
|
+
if (Object.keys(data.cookie).length > 0) addHeader("cookie", Object.entries(data.cookie).map(([key, param]) => `${key}=${param.value}`).join("; "));
|
|
32
|
+
s.push(...headerLines);
|
|
33
|
+
const method = data.method[0].toUpperCase() + data.method.slice(1).toLowerCase() + "Async";
|
|
34
|
+
if (body) s.push(`var response = await client.${method}("${url}", body);`);
|
|
35
|
+
else s.push(`var response = await client.${method}("${url}");`);
|
|
36
|
+
s.push("var responseBody = await response.Content.ReadAsStringAsync();");
|
|
37
|
+
return s.join("\n");
|
|
52
38
|
};
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { generator };
|
|
42
|
+
//# sourceMappingURL=csharp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csharp.js","names":["generator: SampleGenerator","s: string[]","body: string | undefined","headerLines: string[]"],"sources":["../../../src/requests/generators/csharp.ts"],"sourcesContent":["'use client';\nimport type { SampleGenerator } from '@/requests/types';\nimport { resolveMediaAdapter } from '@/requests/media/adapter';\n\nexport const generator: SampleGenerator = (url, data, { mediaAdapters }) => {\n const s: string[] = [];\n const imports = new Set<string>(['System', 'System.Net.Http', 'System.Text']);\n const headers = { ...data.header };\n\n // Handle request body\n let body: string | undefined;\n if (data.body && data.bodyMediaType) {\n const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);\n body = adapter?.generateExample(data as { body: unknown }, {\n lang: 'csharp',\n addImport(from) {\n imports.add(from);\n },\n });\n }\n\n for (const specifier of imports) {\n s.push(`using ${specifier};`);\n }\n\n s.push('');\n\n if (body) {\n s.push(body, '');\n }\n\n s.push('var client = new HttpClient();');\n const headerLines: string[] = [];\n\n function addHeader(key: string, value: string) {\n headerLines.push(`client.DefaultRequestHeaders.Add(\"${key}\", ${JSON.stringify(value)});`);\n }\n for (const k in headers) {\n addHeader(k, headers[k].value);\n }\n\n // Add cookie header if cookies are present\n if (Object.keys(data.cookie).length > 0) {\n const cookie = Object.entries(data.cookie)\n .map(([key, param]) => `${key}=${param.value}`)\n .join('; ');\n\n addHeader('cookie', cookie);\n }\n\n s.push(...headerLines);\n\n // Build the request\n const method = data.method[0].toUpperCase() + data.method.slice(1).toLowerCase() + 'Async';\n\n if (body) {\n s.push(`var response = await client.${method}(\"${url}\", body);`);\n } else {\n s.push(`var response = await client.${method}(\"${url}\");`);\n }\n\n // Add response handling\n s.push('var responseBody = await response.Content.ReadAsStringAsync();');\n\n return s.join('\\n');\n};\n"],"mappings":";;;;;;AAIA,MAAaA,aAA8B,KAAK,MAAM,EAAE,oBAAoB;CAC1E,MAAMC,IAAc,EAAE;CACtB,MAAM,UAAU,IAAI,IAAY;EAAC;EAAU;EAAmB;EAAc,CAAC;CAC7E,MAAM,UAAU,EAAE,GAAG,KAAK,QAAQ;CAGlC,IAAIC;AACJ,KAAI,KAAK,QAAQ,KAAK,cAEpB,QADgB,oBAAoB,KAAK,eAAe,cAAc,EACtD,gBAAgB,MAA2B;EACzD,MAAM;EACN,UAAU,MAAM;AACd,WAAQ,IAAI,KAAK;;EAEpB,CAAC;AAGJ,MAAK,MAAM,aAAa,QACtB,GAAE,KAAK,SAAS,UAAU,GAAG;AAG/B,GAAE,KAAK,GAAG;AAEV,KAAI,KACF,GAAE,KAAK,MAAM,GAAG;AAGlB,GAAE,KAAK,iCAAiC;CACxC,MAAMC,cAAwB,EAAE;CAEhC,SAAS,UAAU,KAAa,OAAe;AAC7C,cAAY,KAAK,qCAAqC,IAAI,KAAK,KAAK,UAAU,MAAM,CAAC,IAAI;;AAE3F,MAAK,MAAM,KAAK,QACd,WAAU,GAAG,QAAQ,GAAG,MAAM;AAIhC,KAAI,OAAO,KAAK,KAAK,OAAO,CAAC,SAAS,EAKpC,WAAU,UAJK,OAAO,QAAQ,KAAK,OAAO,CACvC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,QAAQ,CAC9C,KAAK,KAAK,CAEc;AAG7B,GAAE,KAAK,GAAG,YAAY;CAGtB,MAAM,SAAS,KAAK,OAAO,GAAG,aAAa,GAAG,KAAK,OAAO,MAAM,EAAE,CAAC,aAAa,GAAG;AAEnF,KAAI,KACF,GAAE,KAAK,+BAA+B,OAAO,IAAI,IAAI,WAAW;KAEhE,GAAE,KAAK,+BAA+B,OAAO,IAAI,IAAI,KAAK;AAI5D,GAAE,KAAK,iEAAiE;AAExE,QAAO,EAAE,KAAK,KAAK"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
'use client';
|
|
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
|
-
s.push(`-d ${escaped}`);
|
|
27
|
-
}
|
|
28
|
-
return s.flatMap((v, i) => ident(v, i > 0 ? 1 : 0)).join(' \\\n');
|
|
2
|
+
|
|
3
|
+
import { escapeString, ident, inputToString } from "../string-utils.js";
|
|
4
|
+
|
|
5
|
+
//#region src/requests/generators/curl.ts
|
|
6
|
+
const generator = (url, data) => {
|
|
7
|
+
const s = [];
|
|
8
|
+
s.push(`curl -X ${data.method} "${url}"`);
|
|
9
|
+
for (const header in data.header) {
|
|
10
|
+
const value = `${header}: ${data.header[header].value}`;
|
|
11
|
+
s.push(`-H "${value}"`);
|
|
12
|
+
}
|
|
13
|
+
for (const k in data.cookie) {
|
|
14
|
+
const param = data.cookie[k];
|
|
15
|
+
s.push(`--cookie ${JSON.stringify(`${k}=${param.value}`)}`);
|
|
16
|
+
}
|
|
17
|
+
if (data.body && data.bodyMediaType === "multipart/form-data") {
|
|
18
|
+
if (typeof data.body !== "object") throw new Error("[CURL] request body must be an object.");
|
|
19
|
+
for (const [key, value] of Object.entries(data.body)) s.push(`-F ${key}=${JSON.stringify(inputToString(value))}`);
|
|
20
|
+
} else if (data.body && data.bodyMediaType) {
|
|
21
|
+
const escaped = escapeString(inputToString(data.body, data.bodyMediaType), "'");
|
|
22
|
+
s.push(`-H "Content-Type: ${data.bodyMediaType}"`);
|
|
23
|
+
s.push(`-d ${escaped}`);
|
|
24
|
+
}
|
|
25
|
+
return s.flatMap((v, i) => ident(v, i > 0 ? 1 : 0)).join(" \\\n");
|
|
29
26
|
};
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { generator };
|
|
30
|
+
//# sourceMappingURL=curl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curl.js","names":["generator: SampleGenerator","s: string[]"],"sources":["../../../src/requests/generators/curl.ts"],"sourcesContent":["'use client';\nimport { escapeString, ident, inputToString } from '@/requests/string-utils';\nimport type { SampleGenerator } from '@/requests/types';\n\nexport const generator: SampleGenerator = (url, data) => {\n const s: string[] = [];\n s.push(`curl -X ${data.method} \"${url}\"`);\n\n for (const header in data.header) {\n const value = `${header}: ${data.header[header].value}`;\n\n s.push(`-H \"${value}\"`);\n }\n\n for (const k in data.cookie) {\n const param = data.cookie[k];\n\n s.push(`--cookie ${JSON.stringify(`${k}=${param.value}`)}`);\n }\n\n if (data.body && data.bodyMediaType === 'multipart/form-data') {\n if (typeof data.body !== 'object') throw new Error('[CURL] request body must be an object.');\n\n for (const [key, value] of Object.entries(data.body)) {\n s.push(`-F ${key}=${JSON.stringify(inputToString(value))}`);\n }\n } else if (data.body && data.bodyMediaType) {\n const escaped = escapeString(\n inputToString(\n data.body,\n // @ts-expect-error -- assume the body media type is supported\n data.bodyMediaType,\n ),\n \"'\",\n );\n\n s.push(`-H \"Content-Type: ${data.bodyMediaType}\"`);\n s.push(`-d ${escaped}`);\n }\n\n return s.flatMap((v, i) => ident(v, i > 0 ? 1 : 0)).join(' \\\\\\n');\n};\n"],"mappings":";;;;;AAIA,MAAaA,aAA8B,KAAK,SAAS;CACvD,MAAMC,IAAc,EAAE;AACtB,GAAE,KAAK,WAAW,KAAK,OAAO,IAAI,IAAI,GAAG;AAEzC,MAAK,MAAM,UAAU,KAAK,QAAQ;EAChC,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,OAAO,QAAQ;AAEhD,IAAE,KAAK,OAAO,MAAM,GAAG;;AAGzB,MAAK,MAAM,KAAK,KAAK,QAAQ;EAC3B,MAAM,QAAQ,KAAK,OAAO;AAE1B,IAAE,KAAK,YAAY,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,QAAQ,GAAG;;AAG7D,KAAI,KAAK,QAAQ,KAAK,kBAAkB,uBAAuB;AAC7D,MAAI,OAAO,KAAK,SAAS,SAAU,OAAM,IAAI,MAAM,yCAAyC;AAE5F,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,KAAK,CAClD,GAAE,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,cAAc,MAAM,CAAC,GAAG;YAEpD,KAAK,QAAQ,KAAK,eAAe;EAC1C,MAAM,UAAU,aACd,cACE,KAAK,MAEL,KAAK,cACN,EACD,IACD;AAED,IAAE,KAAK,qBAAqB,KAAK,cAAc,GAAG;AAClD,IAAE,KAAK,MAAM,UAAU;;AAGzB,QAAO,EAAE,SAAS,GAAG,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,QAAQ"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
|
|
3
|
+
import { ident } from "../string-utils.js";
|
|
4
|
+
import { resolveMediaAdapter } from "../media/resolve-adapter.js";
|
|
5
|
+
import "../media/adapter.js";
|
|
6
|
+
|
|
7
|
+
//#region src/requests/generators/go.ts
|
|
8
|
+
const generator = (url, data, { mediaAdapters }) => {
|
|
9
|
+
const imports = [
|
|
10
|
+
"fmt",
|
|
11
|
+
"net/http",
|
|
12
|
+
"io/ioutil"
|
|
13
|
+
];
|
|
14
|
+
const headers = /* @__PURE__ */ new Map();
|
|
15
|
+
const variables = /* @__PURE__ */ new Map();
|
|
16
|
+
variables.set("url", JSON.stringify(url));
|
|
17
|
+
for (const header in data.header) headers.set(header, JSON.stringify(data.header[header].value));
|
|
18
|
+
const cookies = Object.entries(data.cookie);
|
|
19
|
+
if (cookies.length > 0) headers.set("Cookie", JSON.stringify(cookies.map(([k, param]) => `${k}=${param.value}`).join("; ")));
|
|
20
|
+
let body;
|
|
21
|
+
if (data.body && data.bodyMediaType) {
|
|
22
|
+
const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
|
|
23
|
+
headers.set("Content-Type", `"${data.bodyMediaType}"`);
|
|
24
|
+
body = adapter?.generateExample(data, {
|
|
25
|
+
lang: "go",
|
|
26
|
+
addImport(from) {
|
|
27
|
+
imports.push(from);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return `package main
|
|
28
32
|
|
|
29
33
|
import (
|
|
30
|
-
${ident(imports.map((v) => `"${v}"`).join(
|
|
34
|
+
${ident(imports.map((v) => `"${v}"`).join("\n"))}
|
|
31
35
|
)
|
|
32
36
|
|
|
33
37
|
func main() {
|
|
34
|
-
${Array.from(variables.entries())
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
${
|
|
38
|
-
req, _ := http.NewRequest("${data.method}", url, ${body ? 'body' : 'nil'})
|
|
39
|
-
${ident(Array.from(headers.entries())
|
|
40
|
-
.map(([key, value]) => `req.Header.Add("${key}", ${value})`)
|
|
41
|
-
.join('\n'))}
|
|
38
|
+
${Array.from(variables.entries()).map(([k, v]) => ident(`${k} := ${v}`)).join("\n")}
|
|
39
|
+
${body ? ident(body) : ""}
|
|
40
|
+
req, _ := http.NewRequest("${data.method}", url, ${body ? "body" : "nil"})
|
|
41
|
+
${ident(Array.from(headers.entries()).map(([key, value]) => `req.Header.Add("${key}", ${value})`).join("\n"))}
|
|
42
42
|
res, _ := http.DefaultClient.Do(req)
|
|
43
43
|
defer res.Body.Close()
|
|
44
44
|
body, _ := ioutil.ReadAll(res.Body)
|
|
@@ -47,3 +47,7 @@ ${ident(Array.from(headers.entries())
|
|
|
47
47
|
fmt.Println(string(body))
|
|
48
48
|
}`;
|
|
49
49
|
};
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { generator };
|
|
53
|
+
//# sourceMappingURL=go.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.js","names":["generator: SampleGenerator","body: string | undefined"],"sources":["../../../src/requests/generators/go.ts"],"sourcesContent":["'use client';\nimport { ident } from '@/requests/string-utils';\nimport type { SampleGenerator } from '@/requests/types';\nimport { resolveMediaAdapter } from '@/requests/media/adapter';\n\nexport const generator: SampleGenerator = (url, data, { mediaAdapters }) => {\n const imports = ['fmt', 'net/http', 'io/ioutil'];\n const headers = new Map<string, string>();\n const variables = new Map<string, string>();\n variables.set('url', JSON.stringify(url));\n\n for (const header in data.header) {\n headers.set(header, JSON.stringify(data.header[header].value));\n }\n\n const cookies = Object.entries(data.cookie);\n if (cookies.length > 0) {\n headers.set(\n 'Cookie',\n JSON.stringify(cookies.map(([k, param]) => `${k}=${param.value}`).join('; ')),\n );\n }\n\n let body: string | undefined;\n\n if (data.body && data.bodyMediaType) {\n const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);\n headers.set('Content-Type', `\"${data.bodyMediaType}\"`);\n body = adapter?.generateExample(data as { body: unknown }, {\n lang: 'go',\n addImport(from) {\n imports.push(from);\n },\n });\n }\n\n return `package main\n\nimport (\n${ident(imports.map((v) => `\"${v}\"`).join('\\n'))}\n)\n\nfunc main() {\n${Array.from(variables.entries())\n .map(([k, v]) => ident(`${k} := ${v}`))\n .join('\\n')}\n${body ? ident(body) : ''}\n req, _ := http.NewRequest(\"${data.method}\", url, ${body ? 'body' : 'nil'})\n${ident(\n Array.from(headers.entries())\n .map(([key, value]) => `req.Header.Add(\"${key}\", ${value})`)\n .join('\\n'),\n)}\n res, _ := http.DefaultClient.Do(req)\n defer res.Body.Close()\n body, _ := ioutil.ReadAll(res.Body)\n\n fmt.Println(res)\n fmt.Println(string(body))\n}`;\n};\n"],"mappings":";;;;;;;AAKA,MAAaA,aAA8B,KAAK,MAAM,EAAE,oBAAoB;CAC1E,MAAM,UAAU;EAAC;EAAO;EAAY;EAAY;CAChD,MAAM,0BAAU,IAAI,KAAqB;CACzC,MAAM,4BAAY,IAAI,KAAqB;AAC3C,WAAU,IAAI,OAAO,KAAK,UAAU,IAAI,CAAC;AAEzC,MAAK,MAAM,UAAU,KAAK,OACxB,SAAQ,IAAI,QAAQ,KAAK,UAAU,KAAK,OAAO,QAAQ,MAAM,CAAC;CAGhE,MAAM,UAAU,OAAO,QAAQ,KAAK,OAAO;AAC3C,KAAI,QAAQ,SAAS,EACnB,SAAQ,IACN,UACA,KAAK,UAAU,QAAQ,KAAK,CAAC,GAAG,WAAW,GAAG,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,KAAK,CAAC,CAC9E;CAGH,IAAIC;AAEJ,KAAI,KAAK,QAAQ,KAAK,eAAe;EACnC,MAAM,UAAU,oBAAoB,KAAK,eAAe,cAAc;AACtE,UAAQ,IAAI,gBAAgB,IAAI,KAAK,cAAc,GAAG;AACtD,SAAO,SAAS,gBAAgB,MAA2B;GACzD,MAAM;GACN,UAAU,MAAM;AACd,YAAQ,KAAK,KAAK;;GAErB,CAAC;;AAGJ,QAAO;;;EAGP,MAAM,QAAQ,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;;;;EAI/C,MAAM,KAAK,UAAU,SAAS,CAAC,CAC9B,KAAK,CAAC,GAAG,OAAO,MAAM,GAAG,EAAE,MAAM,IAAI,CAAC,CACtC,KAAK,KAAK,CAAC;EACZ,OAAO,MAAM,KAAK,GAAG,GAAG;+BACK,KAAK,OAAO,UAAU,OAAO,SAAS,MAAM;EACzE,MACA,MAAM,KAAK,QAAQ,SAAS,CAAC,CAC1B,KAAK,CAAC,KAAK,WAAW,mBAAmB,IAAI,KAAK,MAAM,GAAG,CAC3D,KAAK,KAAK,CACd,CAAC"}
|
|
@@ -1,44 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
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
|
-
|
|
1
|
+
import { generator } from "./curl.js";
|
|
2
|
+
import { generator as generator$1 } from "./javascript.js";
|
|
3
|
+
import { generator as generator$2 } from "./go.js";
|
|
4
|
+
import { generator as generator$3 } from "./python.js";
|
|
5
|
+
import { generator as generator$4 } from "./java.js";
|
|
6
|
+
import { generator as generator$5 } from "./csharp.js";
|
|
7
|
+
|
|
8
|
+
//#region src/requests/generators/index.ts
|
|
9
|
+
const defaultSamples = [
|
|
10
|
+
{
|
|
11
|
+
id: "curl",
|
|
12
|
+
label: "cURL",
|
|
13
|
+
source: generator,
|
|
14
|
+
lang: "bash"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: "js",
|
|
18
|
+
label: "JavaScript",
|
|
19
|
+
source: generator$1,
|
|
20
|
+
lang: "js"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "go",
|
|
24
|
+
label: "Go",
|
|
25
|
+
source: generator$2,
|
|
26
|
+
lang: "go"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "python",
|
|
30
|
+
label: "Python",
|
|
31
|
+
source: generator$3,
|
|
32
|
+
lang: "python"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "java",
|
|
36
|
+
label: "Java",
|
|
37
|
+
source: generator$4,
|
|
38
|
+
lang: "java"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "csharp",
|
|
42
|
+
label: "C#",
|
|
43
|
+
source: generator$5,
|
|
44
|
+
lang: "csharp"
|
|
45
|
+
}
|
|
44
46
|
];
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { defaultSamples };
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["defaultSamples: CodeUsageGenerator[]","CURL.generator","JS.generator","Go.generator","Python.generator","Java.generator","CSharp.generator"],"sources":["../../../src/requests/generators/index.ts"],"sourcesContent":["import * as CURL from './curl';\nimport * as JS from './javascript';\nimport * as Go from './go';\nimport * as Python from './python';\nimport * as Java from './java';\nimport * as CSharp from './csharp';\nimport type { CodeUsageGenerator } from '@/ui/operation/usage-tabs';\n\nexport const defaultSamples: CodeUsageGenerator[] = [\n {\n id: 'curl',\n label: 'cURL',\n source: CURL.generator,\n lang: 'bash',\n },\n {\n id: 'js',\n label: 'JavaScript',\n source: JS.generator,\n lang: 'js',\n },\n {\n id: 'go',\n label: 'Go',\n source: Go.generator,\n lang: 'go',\n },\n {\n id: 'python',\n label: 'Python',\n source: Python.generator,\n lang: 'python',\n },\n {\n id: 'java',\n label: 'Java',\n source: Java.generator,\n lang: 'java',\n },\n {\n id: 'csharp',\n label: 'C#',\n source: CSharp.generator,\n lang: 'csharp',\n },\n];\n"],"mappings":";;;;;;;;AAQA,MAAaA,iBAAuC;CAClD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACD;EACE,IAAI;EACJ,OAAO;EACP,QAAQC;EACR,MAAM;EACP;CACF"}
|
|
@@ -1,69 +1,58 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import {
|
|
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
|
-
s.push(ident(`.header("Cookie", ${JSON.stringify(cookieString)})`));
|
|
55
|
-
}
|
|
56
|
-
const arg = body ? 'body' : '';
|
|
57
|
-
s.push(ident(`.${data.method.toUpperCase()}(${arg})`));
|
|
58
|
-
s.push(ident('.build();'));
|
|
59
|
-
s.push('');
|
|
60
|
-
// Add response handling
|
|
61
|
-
s.push('try {');
|
|
62
|
-
s.push(ident('HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());'));
|
|
63
|
-
s.push(ident('System.out.println("Status code: " + response.statusCode());'));
|
|
64
|
-
s.push(ident('System.out.println("Response body: " + response.body());'));
|
|
65
|
-
s.push('} catch (Exception e) {');
|
|
66
|
-
s.push(ident('e.printStackTrace();'));
|
|
67
|
-
s.push('}');
|
|
68
|
-
return s.join('\n');
|
|
2
|
+
|
|
3
|
+
import { ident } from "../string-utils.js";
|
|
4
|
+
import { resolveMediaAdapter } from "../media/resolve-adapter.js";
|
|
5
|
+
import "../media/adapter.js";
|
|
6
|
+
|
|
7
|
+
//#region src/requests/generators/java.ts
|
|
8
|
+
const generator = (url, data, { mediaAdapters }) => {
|
|
9
|
+
const s = [];
|
|
10
|
+
const headers = { ...data.header };
|
|
11
|
+
const imports = new Set([
|
|
12
|
+
"java.net.URI",
|
|
13
|
+
"java.net.http.HttpClient",
|
|
14
|
+
"java.net.http.HttpRequest",
|
|
15
|
+
"java.net.http.HttpResponse",
|
|
16
|
+
"java.net.http.HttpResponse.BodyHandlers",
|
|
17
|
+
"java.time.Duration"
|
|
18
|
+
]);
|
|
19
|
+
let body;
|
|
20
|
+
if (data.body && data.bodyMediaType) body = resolveMediaAdapter(data.bodyMediaType, mediaAdapters)?.generateExample(data, {
|
|
21
|
+
lang: "java",
|
|
22
|
+
addImport(specifier) {
|
|
23
|
+
imports.add(specifier);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
for (const value of imports.values()) s.push(`import ${value};`);
|
|
27
|
+
s.push("");
|
|
28
|
+
if (body) s.push(body);
|
|
29
|
+
s.push("HttpClient client = HttpClient.newBuilder()");
|
|
30
|
+
s.push(ident(".connectTimeout(Duration.ofSeconds(10))"));
|
|
31
|
+
s.push(ident(".build();"));
|
|
32
|
+
s.push("");
|
|
33
|
+
s.push("HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()");
|
|
34
|
+
s.push(ident(`.uri(URI.create(${JSON.stringify(url)}))`));
|
|
35
|
+
for (const [key, param] of Object.entries(headers)) s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(param.value)})`));
|
|
36
|
+
if (data.bodyMediaType) s.push(ident(`.header("Content-Type", "${data.bodyMediaType}")`));
|
|
37
|
+
const cookies = Object.entries(data.cookie);
|
|
38
|
+
if (cookies.length > 0) {
|
|
39
|
+
const cookieString = cookies.map(([key, param]) => `${key}=${param.value}`).join("; ");
|
|
40
|
+
s.push(ident(`.header("Cookie", ${JSON.stringify(cookieString)})`));
|
|
41
|
+
}
|
|
42
|
+
const arg = body ? "body" : "";
|
|
43
|
+
s.push(ident(`.${data.method.toUpperCase()}(${arg})`));
|
|
44
|
+
s.push(ident(".build();"));
|
|
45
|
+
s.push("");
|
|
46
|
+
s.push("try {");
|
|
47
|
+
s.push(ident("HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());"));
|
|
48
|
+
s.push(ident("System.out.println(\"Status code: \" + response.statusCode());"));
|
|
49
|
+
s.push(ident("System.out.println(\"Response body: \" + response.body());"));
|
|
50
|
+
s.push("} catch (Exception e) {");
|
|
51
|
+
s.push(ident("e.printStackTrace();"));
|
|
52
|
+
s.push("}");
|
|
53
|
+
return s.join("\n");
|
|
69
54
|
};
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { generator };
|
|
58
|
+
//# sourceMappingURL=java.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.js","names":["generator: SampleGenerator","s: string[]","body: string | undefined"],"sources":["../../../src/requests/generators/java.ts"],"sourcesContent":["'use client';\nimport { ident } from '@/requests/string-utils';\nimport type { SampleGenerator } from '@/requests/types';\nimport { resolveMediaAdapter } from '@/requests/media/adapter';\n\nexport const generator: SampleGenerator = (url, data, { mediaAdapters }) => {\n const s: string[] = [];\n const headers = { ...data.header };\n const imports = new Set<string>([\n 'java.net.URI',\n 'java.net.http.HttpClient',\n 'java.net.http.HttpRequest',\n 'java.net.http.HttpResponse',\n 'java.net.http.HttpResponse.BodyHandlers',\n 'java.time.Duration',\n ]);\n\n // Handle body if present\n let body: string | undefined;\n if (data.body && data.bodyMediaType) {\n const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);\n body = adapter?.generateExample(data as { body: unknown }, {\n lang: 'java',\n addImport(specifier) {\n imports.add(specifier);\n },\n });\n }\n\n for (const value of imports.values()) {\n s.push(`import ${value};`);\n }\n s.push('');\n\n if (body) {\n s.push(body);\n }\n\n // Create HttpClient\n s.push('HttpClient client = HttpClient.newBuilder()');\n s.push(ident('.connectTimeout(Duration.ofSeconds(10))'));\n s.push(ident('.build();'));\n s.push('');\n\n // Build request\n s.push('HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()');\n s.push(ident(`.uri(URI.create(${JSON.stringify(url)}))`));\n\n // Add headers\n for (const [key, param] of Object.entries(headers)) {\n s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(param.value)})`));\n }\n\n if (data.bodyMediaType) {\n s.push(ident(`.header(\"Content-Type\", \"${data.bodyMediaType}\")`));\n }\n\n // Add cookies if present\n const cookies = Object.entries(data.cookie);\n\n if (cookies.length > 0) {\n const cookieString = cookies.map(([key, param]) => `${key}=${param.value}`).join('; ');\n\n s.push(ident(`.header(\"Cookie\", ${JSON.stringify(cookieString)})`));\n }\n\n const arg = body ? 'body' : '';\n s.push(ident(`.${data.method.toUpperCase()}(${arg})`));\n s.push(ident('.build();'));\n s.push('');\n\n // Add response handling\n s.push('try {');\n s.push(\n ident(\n 'HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());',\n ),\n );\n s.push(ident('System.out.println(\"Status code: \" + response.statusCode());'));\n s.push(ident('System.out.println(\"Response body: \" + response.body());'));\n s.push('} catch (Exception e) {');\n s.push(ident('e.printStackTrace();'));\n s.push('}');\n\n return s.join('\\n');\n};\n"],"mappings":";;;;;;;AAKA,MAAaA,aAA8B,KAAK,MAAM,EAAE,oBAAoB;CAC1E,MAAMC,IAAc,EAAE;CACtB,MAAM,UAAU,EAAE,GAAG,KAAK,QAAQ;CAClC,MAAM,UAAU,IAAI,IAAY;EAC9B;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAGF,IAAIC;AACJ,KAAI,KAAK,QAAQ,KAAK,cAEpB,QADgB,oBAAoB,KAAK,eAAe,cAAc,EACtD,gBAAgB,MAA2B;EACzD,MAAM;EACN,UAAU,WAAW;AACnB,WAAQ,IAAI,UAAU;;EAEzB,CAAC;AAGJ,MAAK,MAAM,SAAS,QAAQ,QAAQ,CAClC,GAAE,KAAK,UAAU,MAAM,GAAG;AAE5B,GAAE,KAAK,GAAG;AAEV,KAAI,KACF,GAAE,KAAK,KAAK;AAId,GAAE,KAAK,8CAA8C;AACrD,GAAE,KAAK,MAAM,0CAA0C,CAAC;AACxD,GAAE,KAAK,MAAM,YAAY,CAAC;AAC1B,GAAE,KAAK,GAAG;AAGV,GAAE,KAAK,gEAAgE;AACvE,GAAE,KAAK,MAAM,mBAAmB,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC;AAGzD,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,CAChD,GAAE,KAAK,MAAM,WAAW,KAAK,UAAU,IAAI,CAAC,IAAI,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,CAAC;AAGlF,KAAI,KAAK,cACP,GAAE,KAAK,MAAM,4BAA4B,KAAK,cAAc,IAAI,CAAC;CAInE,MAAM,UAAU,OAAO,QAAQ,KAAK,OAAO;AAE3C,KAAI,QAAQ,SAAS,GAAG;EACtB,MAAM,eAAe,QAAQ,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,KAAK;AAEtF,IAAE,KAAK,MAAM,qBAAqB,KAAK,UAAU,aAAa,CAAC,GAAG,CAAC;;CAGrE,MAAM,MAAM,OAAO,SAAS;AAC5B,GAAE,KAAK,MAAM,IAAI,KAAK,OAAO,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC;AACtD,GAAE,KAAK,MAAM,YAAY,CAAC;AAC1B,GAAE,KAAK,GAAG;AAGV,GAAE,KAAK,QAAQ;AACf,GAAE,KACA,MACE,gGACD,CACF;AACD,GAAE,KAAK,MAAM,iEAA+D,CAAC;AAC7E,GAAE,KAAK,MAAM,6DAA2D,CAAC;AACzE,GAAE,KAAK,0BAA0B;AACjC,GAAE,KAAK,MAAM,uBAAuB,CAAC;AACrC,GAAE,KAAK,IAAI;AAEX,QAAO,EAAE,KAAK,KAAK"}
|
|
@@ -1,47 +1,40 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import {
|
|
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
|
-
options.set('body', 'body');
|
|
37
|
-
}
|
|
38
|
-
const params = [JSON.stringify(url)];
|
|
39
|
-
if (options.size > 0) {
|
|
40
|
-
const str = Array.from(options.entries())
|
|
41
|
-
.map(([k, v]) => ident(k === v ? k : `${k}: ${v}`))
|
|
42
|
-
.join(',\n');
|
|
43
|
-
params.push(`{\n${str}\n}`);
|
|
44
|
-
}
|
|
45
|
-
s.push(`fetch(${params.join(', ')})`);
|
|
46
|
-
return s.join('\n\n');
|
|
2
|
+
|
|
3
|
+
import { ident } from "../string-utils.js";
|
|
4
|
+
import { resolveMediaAdapter } from "../media/resolve-adapter.js";
|
|
5
|
+
import "../media/adapter.js";
|
|
6
|
+
|
|
7
|
+
//#region src/requests/generators/javascript.ts
|
|
8
|
+
const generator = (url, data, { mediaAdapters }) => {
|
|
9
|
+
const s = [];
|
|
10
|
+
const options = /* @__PURE__ */ new Map();
|
|
11
|
+
const headers = {};
|
|
12
|
+
options.set("method", JSON.stringify(data.method));
|
|
13
|
+
if (data.bodyMediaType) headers["Content-Type"] = data.bodyMediaType;
|
|
14
|
+
for (const [k, v] of Object.entries(data.header)) headers[k] = v.value;
|
|
15
|
+
const cookies = Object.entries(data.cookie);
|
|
16
|
+
if (cookies.length > 0) headers["cookie"] = cookies.map(([key, param]) => `${key}=${param.value}`).join("; ");
|
|
17
|
+
if (Object.keys(headers).length > 0) options.set("headers", JSON.stringify(headers, null, 2));
|
|
18
|
+
let body;
|
|
19
|
+
if (data.body && data.bodyMediaType) body = resolveMediaAdapter(data.bodyMediaType, mediaAdapters)?.generateExample(data, {
|
|
20
|
+
lang: "js",
|
|
21
|
+
addImport(from, name) {
|
|
22
|
+
s.unshift(`import { ${name} } from "${from}"`);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
if (body) {
|
|
26
|
+
s.push(body);
|
|
27
|
+
options.set("body", "body");
|
|
28
|
+
}
|
|
29
|
+
const params = [JSON.stringify(url)];
|
|
30
|
+
if (options.size > 0) {
|
|
31
|
+
const str = Array.from(options.entries()).map(([k, v]) => ident(k === v ? k : `${k}: ${v}`)).join(",\n");
|
|
32
|
+
params.push(`{\n${str}\n}`);
|
|
33
|
+
}
|
|
34
|
+
s.push(`fetch(${params.join(", ")})`);
|
|
35
|
+
return s.join("\n\n");
|
|
47
36
|
};
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { generator };
|
|
40
|
+
//# sourceMappingURL=javascript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.js","names":["generator: SampleGenerator","s: string[]","headers: Record<string, string>","body: string | undefined"],"sources":["../../../src/requests/generators/javascript.ts"],"sourcesContent":["'use client';\nimport { ident } from '@/requests/string-utils';\nimport type { SampleGenerator } from '@/requests/types';\nimport { resolveMediaAdapter } from '@/requests/media/adapter';\n\nexport const generator: SampleGenerator = (url, data, { mediaAdapters }) => {\n const s: string[] = [];\n const options = new Map<string, string>();\n const headers: Record<string, string> = {};\n\n options.set('method', JSON.stringify(data.method));\n if (data.bodyMediaType) {\n headers['Content-Type'] = data.bodyMediaType;\n }\n\n for (const [k, v] of Object.entries(data.header)) {\n headers[k] = v.value;\n }\n\n const cookies = Object.entries(data.cookie);\n if (cookies.length > 0) {\n headers['cookie'] = cookies.map(([key, param]) => `${key}=${param.value}`).join('; ');\n }\n\n if (Object.keys(headers).length > 0) {\n options.set('headers', JSON.stringify(headers, null, 2));\n }\n\n let body: string | undefined;\n if (data.body && data.bodyMediaType) {\n const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);\n body = adapter?.generateExample(data as { body: unknown }, {\n lang: 'js',\n addImport(from, name) {\n s.unshift(`import { ${name} } from \"${from}\"`);\n },\n });\n }\n\n if (body) {\n s.push(body);\n options.set('body', 'body');\n }\n\n const params = [JSON.stringify(url)];\n if (options.size > 0) {\n const str = Array.from(options.entries())\n .map(([k, v]) => ident(k === v ? k : `${k}: ${v}`))\n .join(',\\n');\n\n params.push(`{\\n${str}\\n}`);\n }\n\n s.push(`fetch(${params.join(', ')})`);\n\n return s.join('\\n\\n');\n};\n"],"mappings":";;;;;;;AAKA,MAAaA,aAA8B,KAAK,MAAM,EAAE,oBAAoB;CAC1E,MAAMC,IAAc,EAAE;CACtB,MAAM,0BAAU,IAAI,KAAqB;CACzC,MAAMC,UAAkC,EAAE;AAE1C,SAAQ,IAAI,UAAU,KAAK,UAAU,KAAK,OAAO,CAAC;AAClD,KAAI,KAAK,cACP,SAAQ,kBAAkB,KAAK;AAGjC,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,KAAK,OAAO,CAC9C,SAAQ,KAAK,EAAE;CAGjB,MAAM,UAAU,OAAO,QAAQ,KAAK,OAAO;AAC3C,KAAI,QAAQ,SAAS,EACnB,SAAQ,YAAY,QAAQ,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,KAAK;AAGvF,KAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAChC,SAAQ,IAAI,WAAW,KAAK,UAAU,SAAS,MAAM,EAAE,CAAC;CAG1D,IAAIC;AACJ,KAAI,KAAK,QAAQ,KAAK,cAEpB,QADgB,oBAAoB,KAAK,eAAe,cAAc,EACtD,gBAAgB,MAA2B;EACzD,MAAM;EACN,UAAU,MAAM,MAAM;AACpB,KAAE,QAAQ,YAAY,KAAK,WAAW,KAAK,GAAG;;EAEjD,CAAC;AAGJ,KAAI,MAAM;AACR,IAAE,KAAK,KAAK;AACZ,UAAQ,IAAI,QAAQ,OAAO;;CAG7B,MAAM,SAAS,CAAC,KAAK,UAAU,IAAI,CAAC;AACpC,KAAI,QAAQ,OAAO,GAAG;EACpB,MAAM,MAAM,MAAM,KAAK,QAAQ,SAAS,CAAC,CACtC,KAAK,CAAC,GAAG,OAAO,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,CAClD,KAAK,MAAM;AAEd,SAAO,KAAK,MAAM,IAAI,KAAK;;AAG7B,GAAE,KAAK,SAAS,OAAO,KAAK,KAAK,CAAC,GAAG;AAErC,QAAO,EAAE,KAAK,OAAO"}
|