fumadocs-openapi 10.2.1 → 10.2.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.
Files changed (278) hide show
  1. package/dist/generate-file.d.ts +53 -49
  2. package/dist/generate-file.d.ts.map +1 -1
  3. package/dist/generate-file.js +88 -102
  4. package/dist/generate-file.js.map +1 -0
  5. package/dist/index.d.ts +6 -6
  6. package/dist/index.js +3 -1
  7. package/dist/playground/client.d.ts +88 -72
  8. package/dist/playground/client.d.ts.map +1 -1
  9. package/dist/playground/client.js +446 -296
  10. package/dist/playground/client.js.map +1 -0
  11. package/dist/playground/components/inputs.js +395 -172
  12. package/dist/playground/components/inputs.js.map +1 -0
  13. package/dist/playground/components/oauth-dialog.js +270 -174
  14. package/dist/playground/components/oauth-dialog.js.map +1 -0
  15. package/dist/playground/components/server-select.js +115 -55
  16. package/dist/playground/components/server-select.js.map +1 -0
  17. package/dist/playground/fetcher.d.ts +10 -18
  18. package/dist/playground/fetcher.d.ts.map +1 -1
  19. package/dist/playground/fetcher.js +67 -75
  20. package/dist/playground/fetcher.js.map +1 -0
  21. package/dist/playground/get-default-values.js +23 -26
  22. package/dist/playground/get-default-values.js.map +1 -0
  23. package/dist/playground/index.d.ts +23 -13
  24. package/dist/playground/index.d.ts.map +1 -1
  25. package/dist/playground/index.js +87 -91
  26. package/dist/playground/index.js.map +1 -0
  27. package/dist/playground/lazy.js +9 -2
  28. package/dist/playground/lazy.js.map +1 -0
  29. package/dist/playground/schema.d.ts +18 -55
  30. package/dist/playground/schema.d.ts.map +1 -1
  31. package/dist/playground/schema.js +117 -106
  32. package/dist/playground/schema.js.map +1 -0
  33. package/dist/playground/status-info.js +49 -37
  34. package/dist/playground/status-info.js.map +1 -0
  35. package/dist/requests/generators/csharp.js +40 -50
  36. package/dist/requests/generators/csharp.js.map +1 -0
  37. package/dist/requests/generators/curl.js +28 -27
  38. package/dist/requests/generators/curl.js.map +1 -0
  39. package/dist/requests/generators/go.js +39 -35
  40. package/dist/requests/generators/go.js.map +1 -0
  41. package/dist/requests/generators/index.js +49 -43
  42. package/dist/requests/generators/index.js.map +1 -0
  43. package/dist/requests/generators/java.js +56 -67
  44. package/dist/requests/generators/java.js.map +1 -0
  45. package/dist/requests/generators/javascript.js +38 -45
  46. package/dist/requests/generators/javascript.js.map +1 -0
  47. package/dist/requests/generators/python.js +33 -37
  48. package/dist/requests/generators/python.js.map +1 -0
  49. package/dist/requests/media/adapter.d.ts +38 -84
  50. package/dist/requests/media/adapter.d.ts.map +1 -1
  51. package/dist/requests/media/adapter.js +122 -169
  52. package/dist/requests/media/adapter.js.map +1 -0
  53. package/dist/requests/media/encode.d.ts +12 -7
  54. package/dist/requests/media/encode.d.ts.map +1 -1
  55. package/dist/requests/media/encode.js +129 -109
  56. package/dist/requests/media/encode.js.map +1 -0
  57. package/dist/requests/media/resolve-adapter.js +28 -28
  58. package/dist/requests/media/resolve-adapter.js.map +1 -0
  59. package/dist/requests/string-utils.js +28 -35
  60. package/dist/requests/string-utils.js.map +1 -0
  61. package/dist/requests/to-python-object.js +16 -28
  62. package/dist/requests/to-python-object.js.map +1 -0
  63. package/dist/requests/types.d.ts +25 -21
  64. package/dist/requests/types.d.ts.map +1 -1
  65. package/dist/scalar/client.js +57 -20
  66. package/dist/scalar/client.js.map +1 -0
  67. package/dist/scalar/index.d.ts +8 -2
  68. package/dist/scalar/index.d.ts.map +1 -1
  69. package/dist/scalar/index.js +29 -19
  70. package/dist/scalar/index.js.map +1 -0
  71. package/dist/server/create.d.ts +29 -25
  72. package/dist/server/create.d.ts.map +1 -1
  73. package/dist/server/create.js +42 -39
  74. package/dist/server/create.js.map +1 -0
  75. package/dist/server/index.d.ts +3 -3
  76. package/dist/server/index.js +4 -2
  77. package/dist/server/proxy.d.ts +28 -28
  78. package/dist/server/proxy.d.ts.map +1 -1
  79. package/dist/server/proxy.js +58 -75
  80. package/dist/server/proxy.js.map +1 -0
  81. package/dist/server/source-api.d.ts +32 -25
  82. package/dist/server/source-api.d.ts.map +1 -1
  83. package/dist/server/source-api.js +82 -69
  84. package/dist/server/source-api.js.map +1 -0
  85. package/dist/types.d.ts +41 -36
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/ui/api-page.d.ts +140 -136
  88. package/dist/ui/api-page.d.ts.map +1 -1
  89. package/dist/ui/api-page.js +134 -118
  90. package/dist/ui/api-page.js.map +1 -0
  91. package/dist/ui/client/index.d.ts +30 -26
  92. package/dist/ui/client/index.d.ts.map +1 -1
  93. package/dist/ui/client/index.js +8 -2
  94. package/dist/ui/client/index.js.map +1 -0
  95. package/dist/ui/client/storage-key.js +16 -10
  96. package/dist/ui/client/storage-key.js.map +1 -0
  97. package/dist/ui/components/accordion.js +40 -14
  98. package/dist/ui/components/accordion.js.map +1 -0
  99. package/dist/ui/components/dialog.js +51 -15
  100. package/dist/ui/components/dialog.js.map +1 -0
  101. package/dist/ui/components/input.js +18 -8
  102. package/dist/ui/components/input.js.map +1 -0
  103. package/dist/ui/components/method-label.js +38 -33
  104. package/dist/ui/components/method-label.js.map +1 -0
  105. package/dist/ui/components/select.js +66 -15
  106. package/dist/ui/components/select.js.map +1 -0
  107. package/dist/ui/contexts/api.js +96 -85
  108. package/dist/ui/contexts/api.js.map +1 -0
  109. package/dist/ui/contexts/api.lazy.js +9 -2
  110. package/dist/ui/contexts/api.lazy.js.map +1 -0
  111. package/dist/ui/index.d.ts +2 -2
  112. package/dist/ui/index.js +3 -1
  113. package/dist/ui/operation/client.js +65 -27
  114. package/dist/ui/operation/client.js.map +1 -0
  115. package/dist/ui/operation/index.js +403 -186
  116. package/dist/ui/operation/index.js.map +1 -0
  117. package/dist/ui/operation/request-tabs.d.ts +15 -16
  118. package/dist/ui/operation/request-tabs.d.ts.map +1 -1
  119. package/dist/ui/operation/request-tabs.js +151 -131
  120. package/dist/ui/operation/request-tabs.js.map +1 -0
  121. package/dist/ui/operation/response-tabs.d.ts +27 -28
  122. package/dist/ui/operation/response-tabs.d.ts.map +1 -1
  123. package/dist/ui/operation/response-tabs.js +73 -56
  124. package/dist/ui/operation/response-tabs.js.map +1 -0
  125. package/dist/ui/operation/usage-tabs/client.js +117 -88
  126. package/dist/ui/operation/usage-tabs/client.js.map +1 -0
  127. package/dist/ui/operation/usage-tabs/index.d.ts +22 -21
  128. package/dist/ui/operation/usage-tabs/index.d.ts.map +1 -1
  129. package/dist/ui/operation/usage-tabs/index.js +63 -48
  130. package/dist/ui/operation/usage-tabs/index.js.map +1 -0
  131. package/dist/ui/operation/usage-tabs/lazy.js +11 -4
  132. package/dist/ui/operation/usage-tabs/lazy.js.map +1 -0
  133. package/dist/ui/schema/client.d.ts +11 -7
  134. package/dist/ui/schema/client.d.ts.map +1 -1
  135. package/dist/ui/schema/client.js +213 -127
  136. package/dist/ui/schema/client.js.map +1 -0
  137. package/dist/ui/schema/index.d.ts +51 -50
  138. package/dist/ui/schema/index.d.ts.map +1 -1
  139. package/dist/ui/schema/index.js +225 -248
  140. package/dist/ui/schema/index.js.map +1 -0
  141. package/dist/ui/schema/lazy.js +9 -2
  142. package/dist/ui/schema/lazy.js.map +1 -0
  143. package/dist/utils/cn.js +3 -1
  144. package/dist/utils/deep-equal.js +18 -26
  145. package/dist/utils/deep-equal.js.map +1 -0
  146. package/dist/utils/get-typescript-schema.js +21 -19
  147. package/dist/utils/get-typescript-schema.js.map +1 -0
  148. package/dist/utils/id-to-title.js +13 -16
  149. package/dist/utils/id-to-title.js.map +1 -0
  150. package/dist/utils/lazy.js +13 -11
  151. package/dist/utils/lazy.js.map +1 -0
  152. package/dist/utils/merge-schema.js +130 -174
  153. package/dist/utils/merge-schema.js.map +1 -0
  154. package/dist/utils/pages/builder.d.ts +80 -76
  155. package/dist/utils/pages/builder.d.ts.map +1 -1
  156. package/dist/utils/pages/builder.js +101 -118
  157. package/dist/utils/pages/builder.js.map +1 -0
  158. package/dist/utils/pages/preset-auto.d.ts +58 -55
  159. package/dist/utils/pages/preset-auto.d.ts.map +1 -1
  160. package/dist/utils/pages/preset-auto.js +124 -137
  161. package/dist/utils/pages/preset-auto.js.map +1 -0
  162. package/dist/utils/pages/to-body.js +21 -18
  163. package/dist/utils/pages/to-body.js.map +1 -0
  164. package/dist/utils/pages/to-static-data.js +48 -40
  165. package/dist/utils/pages/to-static-data.js.map +1 -0
  166. package/dist/utils/pages/to-text.d.ts +43 -41
  167. package/dist/utils/pages/to-text.d.ts.map +1 -1
  168. package/dist/utils/pages/to-text.js +93 -126
  169. package/dist/utils/pages/to-text.js.map +1 -0
  170. package/dist/utils/process-document.d.ts +18 -19
  171. package/dist/utils/process-document.d.ts.map +1 -1
  172. package/dist/utils/process-document.js +43 -54
  173. package/dist/utils/process-document.js.map +1 -0
  174. package/dist/utils/remove-undefined.js +18 -18
  175. package/dist/utils/remove-undefined.js.map +1 -0
  176. package/dist/utils/schema-to-string.js +46 -64
  177. package/dist/utils/schema-to-string.js.map +1 -0
  178. package/dist/utils/schema.d.ts +11 -27
  179. package/dist/utils/schema.d.ts.map +1 -1
  180. package/dist/utils/schema.js +43 -44
  181. package/dist/utils/schema.js.map +1 -0
  182. package/dist/utils/url.js +35 -56
  183. package/dist/utils/url.js.map +1 -0
  184. package/dist/utils/use-query.js +39 -33
  185. package/dist/utils/use-query.js.map +1 -0
  186. package/package.json +35 -34
  187. package/dist/index.d.ts.map +0 -1
  188. package/dist/playground/components/inputs.d.ts +0 -25
  189. package/dist/playground/components/inputs.d.ts.map +0 -1
  190. package/dist/playground/components/oauth-dialog.d.ts +0 -13
  191. package/dist/playground/components/oauth-dialog.d.ts.map +0 -1
  192. package/dist/playground/components/server-select.d.ts +0 -3
  193. package/dist/playground/components/server-select.d.ts.map +0 -1
  194. package/dist/playground/get-default-values.d.ts +0 -3
  195. package/dist/playground/get-default-values.d.ts.map +0 -1
  196. package/dist/playground/lazy.d.ts +0 -2
  197. package/dist/playground/lazy.d.ts.map +0 -1
  198. package/dist/playground/status-info.d.ts +0 -8
  199. package/dist/playground/status-info.d.ts.map +0 -1
  200. package/dist/requests/generators/csharp.d.ts +0 -3
  201. package/dist/requests/generators/csharp.d.ts.map +0 -1
  202. package/dist/requests/generators/curl.d.ts +0 -3
  203. package/dist/requests/generators/curl.d.ts.map +0 -1
  204. package/dist/requests/generators/go.d.ts +0 -3
  205. package/dist/requests/generators/go.d.ts.map +0 -1
  206. package/dist/requests/generators/index.d.ts +0 -3
  207. package/dist/requests/generators/index.d.ts.map +0 -1
  208. package/dist/requests/generators/java.d.ts +0 -3
  209. package/dist/requests/generators/java.d.ts.map +0 -1
  210. package/dist/requests/generators/javascript.d.ts +0 -3
  211. package/dist/requests/generators/javascript.d.ts.map +0 -1
  212. package/dist/requests/generators/python.d.ts +0 -3
  213. package/dist/requests/generators/python.d.ts.map +0 -1
  214. package/dist/requests/media/resolve-adapter.d.ts +0 -19
  215. package/dist/requests/media/resolve-adapter.d.ts.map +0 -1
  216. package/dist/requests/string-utils.d.ts +0 -7
  217. package/dist/requests/string-utils.d.ts.map +0 -1
  218. package/dist/requests/to-python-object.d.ts +0 -2
  219. package/dist/requests/to-python-object.d.ts.map +0 -1
  220. package/dist/requests/types.js +0 -1
  221. package/dist/scalar/client.d.ts +0 -7
  222. package/dist/scalar/client.d.ts.map +0 -1
  223. package/dist/server/index.d.ts.map +0 -1
  224. package/dist/types.js +0 -1
  225. package/dist/ui/client/storage-key.d.ts +0 -9
  226. package/dist/ui/client/storage-key.d.ts.map +0 -1
  227. package/dist/ui/components/accordion.d.ts +0 -8
  228. package/dist/ui/components/accordion.d.ts.map +0 -1
  229. package/dist/ui/components/dialog.d.ts +0 -20
  230. package/dist/ui/components/dialog.d.ts.map +0 -1
  231. package/dist/ui/components/input.d.ts +0 -6
  232. package/dist/ui/components/input.d.ts.map +0 -1
  233. package/dist/ui/components/method-label.d.ts +0 -10
  234. package/dist/ui/components/method-label.d.ts.map +0 -1
  235. package/dist/ui/components/select.d.ts +0 -14
  236. package/dist/ui/components/select.d.ts.map +0 -1
  237. package/dist/ui/contexts/api.d.ts +0 -33
  238. package/dist/ui/contexts/api.d.ts.map +0 -1
  239. package/dist/ui/contexts/api.lazy.d.ts +0 -2
  240. package/dist/ui/contexts/api.lazy.d.ts.map +0 -1
  241. package/dist/ui/icons.d.ts +0 -49
  242. package/dist/ui/icons.d.ts.map +0 -1
  243. package/dist/ui/icons.js +0 -281
  244. package/dist/ui/index.d.ts.map +0 -1
  245. package/dist/ui/operation/client.d.ts +0 -19
  246. package/dist/ui/operation/client.d.ts.map +0 -1
  247. package/dist/ui/operation/index.d.ts +0 -12
  248. package/dist/ui/operation/index.d.ts.map +0 -1
  249. package/dist/ui/operation/usage-tabs/client.d.ts +0 -23
  250. package/dist/ui/operation/usage-tabs/client.d.ts.map +0 -1
  251. package/dist/ui/operation/usage-tabs/lazy.d.ts +0 -4
  252. package/dist/ui/operation/usage-tabs/lazy.d.ts.map +0 -1
  253. package/dist/ui/schema/lazy.d.ts +0 -2
  254. package/dist/ui/schema/lazy.d.ts.map +0 -1
  255. package/dist/utils/cn.d.ts +0 -2
  256. package/dist/utils/cn.d.ts.map +0 -1
  257. package/dist/utils/deep-equal.d.ts +0 -2
  258. package/dist/utils/deep-equal.d.ts.map +0 -1
  259. package/dist/utils/get-typescript-schema.d.ts +0 -4
  260. package/dist/utils/get-typescript-schema.d.ts.map +0 -1
  261. package/dist/utils/id-to-title.d.ts +0 -2
  262. package/dist/utils/id-to-title.d.ts.map +0 -1
  263. package/dist/utils/lazy.d.ts +0 -5
  264. package/dist/utils/lazy.d.ts.map +0 -1
  265. package/dist/utils/merge-schema.d.ts +0 -7
  266. package/dist/utils/merge-schema.d.ts.map +0 -1
  267. package/dist/utils/pages/to-body.d.ts +0 -4
  268. package/dist/utils/pages/to-body.d.ts.map +0 -1
  269. package/dist/utils/pages/to-static-data.d.ts +0 -10
  270. package/dist/utils/pages/to-static-data.d.ts.map +0 -1
  271. package/dist/utils/remove-undefined.d.ts +0 -2
  272. package/dist/utils/remove-undefined.d.ts.map +0 -1
  273. package/dist/utils/schema-to-string.d.ts +0 -8
  274. package/dist/utils/schema-to-string.d.ts.map +0 -1
  275. package/dist/utils/url.d.ts +0 -11
  276. package/dist/utils/url.d.ts.map +0 -1
  277. package/dist/utils/use-query.d.ts +0 -8
  278. 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
- import { resolveMediaAdapter } from '../../requests/media/adapter.js';
3
- export const generator = (url, data, { mediaAdapters }) => {
4
- const s = [];
5
- const imports = new Set(['System', 'System.Net.Http', 'System.Text']);
6
- const headers = { ...data.header };
7
- // Handle request body
8
- let body;
9
- if (data.body && data.bodyMediaType) {
10
- const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
11
- body = adapter?.generateExample(data, {
12
- lang: 'csharp',
13
- addImport(from) {
14
- imports.add(from);
15
- },
16
- });
17
- }
18
- for (const specifier of imports) {
19
- s.push(`using ${specifier};`);
20
- }
21
- s.push('');
22
- if (body) {
23
- s.push(body, '');
24
- }
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) {
31
- addHeader(k, headers[k].value);
32
- }
33
- // Add cookie header if cookies are present
34
- if (Object.keys(data.cookie).length > 0) {
35
- const cookie = Object.entries(data.cookie)
36
- .map(([key, param]) => `${key}=${param.value}`)
37
- .join('; ');
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
- import { escapeString, ident, inputToString } from '../../requests/string-utils.js';
3
- export const generator = (url, data) => {
4
- const s = [];
5
- s.push(`curl -X ${data.method} "${url}"`);
6
- for (const header in data.header) {
7
- const value = `${header}: ${data.header[header].value}`;
8
- s.push(`-H "${value}"`);
9
- }
10
- for (const k in data.cookie) {
11
- const param = data.cookie[k];
12
- s.push(`--cookie ${JSON.stringify(`${k}=${param.value}`)}`);
13
- }
14
- if (data.body && data.bodyMediaType === 'multipart/form-data') {
15
- if (typeof data.body !== 'object')
16
- throw new Error('[CURL] request body must be an object.');
17
- for (const [key, value] of Object.entries(data.body)) {
18
- s.push(`-F ${key}=${JSON.stringify(inputToString(value))}`);
19
- }
20
- }
21
- else if (data.body && data.bodyMediaType) {
22
- const escaped = escapeString(inputToString(data.body,
23
- // @ts-expect-error -- assume the body media type is supported
24
- data.bodyMediaType), "'");
25
- s.push(`-H "Content-Type: ${data.bodyMediaType}"`);
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
- import { ident } from '../../requests/string-utils.js';
3
- import { resolveMediaAdapter } from '../../requests/media/adapter.js';
4
- export const generator = (url, data, { mediaAdapters }) => {
5
- const imports = ['fmt', 'net/http', 'io/ioutil'];
6
- const headers = new Map();
7
- const variables = new Map();
8
- variables.set('url', JSON.stringify(url));
9
- for (const header in data.header) {
10
- headers.set(header, JSON.stringify(data.header[header].value));
11
- }
12
- const cookies = Object.entries(data.cookie);
13
- if (cookies.length > 0) {
14
- headers.set('Cookie', JSON.stringify(cookies.map(([k, param]) => `${k}=${param.value}`).join('; ')));
15
- }
16
- let body;
17
- if (data.body && data.bodyMediaType) {
18
- const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
19
- headers.set('Content-Type', `"${data.bodyMediaType}"`);
20
- body = adapter?.generateExample(data, {
21
- lang: 'go',
22
- addImport(from) {
23
- imports.push(from);
24
- },
25
- });
26
- }
27
- return `package main
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('\n'))}
34
+ ${ident(imports.map((v) => `"${v}"`).join("\n"))}
31
35
  )
32
36
 
33
37
  func main() {
34
- ${Array.from(variables.entries())
35
- .map(([k, v]) => ident(`${k} := ${v}`))
36
- .join('\n')}
37
- ${body ? ident(body) : ''}
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 * as CURL from './curl.js';
2
- import * as JS from './javascript.js';
3
- import * as Go from './go.js';
4
- import * as Python from './python.js';
5
- import * as Java from './java.js';
6
- import * as CSharp from './csharp.js';
7
- export const defaultSamples = [
8
- {
9
- id: 'curl',
10
- label: 'cURL',
11
- source: CURL.generator,
12
- lang: 'bash',
13
- },
14
- {
15
- id: 'js',
16
- label: 'JavaScript',
17
- source: JS.generator,
18
- lang: 'js',
19
- },
20
- {
21
- id: 'go',
22
- label: 'Go',
23
- source: Go.generator,
24
- lang: 'go',
25
- },
26
- {
27
- id: 'python',
28
- label: 'Python',
29
- source: Python.generator,
30
- lang: 'python',
31
- },
32
- {
33
- id: 'java',
34
- label: 'Java',
35
- source: Java.generator,
36
- lang: 'java',
37
- },
38
- {
39
- id: 'csharp',
40
- label: 'C#',
41
- source: CSharp.generator,
42
- lang: 'csharp',
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
- import { ident } from '../../requests/string-utils.js';
3
- import { resolveMediaAdapter } from '../../requests/media/adapter.js';
4
- export const generator = (url, data, { mediaAdapters }) => {
5
- const s = [];
6
- const headers = { ...data.header };
7
- const imports = new Set([
8
- 'java.net.URI',
9
- 'java.net.http.HttpClient',
10
- 'java.net.http.HttpRequest',
11
- 'java.net.http.HttpResponse',
12
- 'java.net.http.HttpResponse.BodyHandlers',
13
- 'java.time.Duration',
14
- ]);
15
- // Handle body if present
16
- let body;
17
- if (data.body && data.bodyMediaType) {
18
- const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
19
- body = adapter?.generateExample(data, {
20
- lang: 'java',
21
- addImport(specifier) {
22
- imports.add(specifier);
23
- },
24
- });
25
- }
26
- for (const value of imports.values()) {
27
- s.push(`import ${value};`);
28
- }
29
- s.push('');
30
- if (body) {
31
- s.push(body);
32
- }
33
- // Create HttpClient
34
- s.push('HttpClient client = HttpClient.newBuilder()');
35
- s.push(ident('.connectTimeout(Duration.ofSeconds(10))'));
36
- s.push(ident('.build();'));
37
- s.push('');
38
- // Build request
39
- s.push('HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()');
40
- s.push(ident(`.uri(URI.create(${JSON.stringify(url)}))`));
41
- // Add headers
42
- for (const [key, param] of Object.entries(headers)) {
43
- s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(param.value)})`));
44
- }
45
- if (data.bodyMediaType) {
46
- s.push(ident(`.header("Content-Type", "${data.bodyMediaType}")`));
47
- }
48
- // Add cookies if present
49
- const cookies = Object.entries(data.cookie);
50
- if (cookies.length > 0) {
51
- const cookieString = cookies
52
- .map(([key, param]) => `${key}=${param.value}`)
53
- .join('; ');
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
- import { ident } from '../../requests/string-utils.js';
3
- import { resolveMediaAdapter } from '../../requests/media/adapter.js';
4
- export const generator = (url, data, { mediaAdapters }) => {
5
- const s = [];
6
- const options = new Map();
7
- const headers = {};
8
- options.set('method', JSON.stringify(data.method));
9
- if (data.bodyMediaType) {
10
- headers['Content-Type'] = data.bodyMediaType;
11
- }
12
- for (const [k, v] of Object.entries(data.header)) {
13
- headers[k] = v.value;
14
- }
15
- const cookies = Object.entries(data.cookie);
16
- if (cookies.length > 0) {
17
- headers['cookie'] = cookies
18
- .map(([key, param]) => `${key}=${param.value}`)
19
- .join('; ');
20
- }
21
- if (Object.keys(headers).length > 0) {
22
- options.set('headers', JSON.stringify(headers, null, 2));
23
- }
24
- let body;
25
- if (data.body && data.bodyMediaType) {
26
- const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
27
- body = adapter?.generateExample(data, {
28
- lang: 'js',
29
- addImport(from, name) {
30
- s.unshift(`import { ${name} } from "${from}"`);
31
- },
32
- });
33
- }
34
- if (body) {
35
- s.push(body);
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"}