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
@@ -1,43 +1,39 @@
1
1
  'use client';
2
- import { generatePythonObject } from '../../requests/to-python-object.js';
3
- import { resolveMediaAdapter } from '../../requests/media/adapter.js';
4
- export const generator = (url, data, { mediaAdapters }) => {
5
- const headers = {};
6
- const imports = new Set();
7
- const params = [`"${data.method}"`, 'url'];
8
- let body;
9
- imports.add('requests');
10
- if (data.body && data.bodyMediaType) {
11
- const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
12
- headers['Content-Type'] = data.bodyMediaType;
13
- body = adapter?.generateExample(data, {
14
- lang: 'python',
15
- });
16
- if (body) {
17
- params.push('data = body');
18
- }
19
- }
20
- for (const [k, v] of Object.entries(data.header)) {
21
- headers[k] = v.value;
22
- }
23
- if (Object.keys(headers).length > 0) {
24
- params.push(`headers = ${generatePythonObject(headers, imports)}`);
25
- }
26
- const inputCookies = Object.entries(data.cookie);
27
- if (inputCookies.length > 0) {
28
- const cookies = {};
29
- for (const [k, v] of inputCookies) {
30
- cookies[k] = v.value;
31
- }
32
- params.push(`cookies = ${generatePythonObject(cookies, imports)}`);
33
- }
34
- return `${Array.from(imports)
35
- .map((name) => 'import ' + name)
36
- .join('\n')}
2
+
3
+ import { resolveMediaAdapter } from "../media/resolve-adapter.js";
4
+ import "../media/adapter.js";
5
+ import { generatePythonObject } from "../to-python-object.js";
6
+
7
+ //#region src/requests/generators/python.ts
8
+ const generator = (url, data, { mediaAdapters }) => {
9
+ const headers = {};
10
+ const imports = /* @__PURE__ */ new Set();
11
+ const params = [`"${data.method}"`, "url"];
12
+ let body;
13
+ imports.add("requests");
14
+ if (data.body && data.bodyMediaType) {
15
+ const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);
16
+ headers["Content-Type"] = data.bodyMediaType;
17
+ body = adapter?.generateExample(data, { lang: "python" });
18
+ if (body) params.push("data = body");
19
+ }
20
+ for (const [k, v] of Object.entries(data.header)) headers[k] = v.value;
21
+ if (Object.keys(headers).length > 0) params.push(`headers = ${generatePythonObject(headers, imports)}`);
22
+ const inputCookies = Object.entries(data.cookie);
23
+ if (inputCookies.length > 0) {
24
+ const cookies = {};
25
+ for (const [k, v] of inputCookies) cookies[k] = v.value;
26
+ params.push(`cookies = ${generatePythonObject(cookies, imports)}`);
27
+ }
28
+ return `${Array.from(imports).map((name) => "import " + name).join("\n")}
37
29
 
38
30
  url = ${JSON.stringify(url)}
39
- ${body ?? ''}
40
- response = requests.request(${params.join(', ')})
31
+ ${body ?? ""}
32
+ response = requests.request(${params.join(", ")})
41
33
 
42
34
  print(response.text)`;
43
35
  };
36
+
37
+ //#endregion
38
+ export { generator };
39
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","names":["generator: SampleGenerator","headers: Record<string, string>","body: string | undefined","cookies: Record<string, string>"],"sources":["../../../src/requests/generators/python.ts"],"sourcesContent":["'use client';\nimport type { SampleGenerator } from '@/requests/types';\nimport { generatePythonObject } from '@/requests/to-python-object';\nimport { resolveMediaAdapter } from '@/requests/media/adapter';\n\nexport const generator: SampleGenerator = (url, data, { mediaAdapters }) => {\n const headers: Record<string, string> = {};\n const imports = new Set<string>();\n const params = [`\"${data.method}\"`, 'url'];\n let body: string | undefined;\n\n imports.add('requests');\n\n if (data.body && data.bodyMediaType) {\n const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters);\n headers['Content-Type'] = data.bodyMediaType;\n\n body = adapter?.generateExample(data as { body: unknown }, {\n lang: 'python',\n });\n\n if (body) {\n params.push('data = body');\n }\n }\n\n for (const [k, v] of Object.entries(data.header)) {\n headers[k] = v.value;\n }\n\n if (Object.keys(headers).length > 0) {\n params.push(`headers = ${generatePythonObject(headers, imports)}`);\n }\n\n const inputCookies = Object.entries(data.cookie);\n if (inputCookies.length > 0) {\n const cookies: Record<string, string> = {};\n\n for (const [k, v] of inputCookies) {\n cookies[k] = v.value;\n }\n\n params.push(`cookies = ${generatePythonObject(cookies, imports)}`);\n }\n\n return `${Array.from(imports)\n .map((name) => 'import ' + name)\n .join('\\n')}\n\nurl = ${JSON.stringify(url)}\n${body ?? ''}\nresponse = requests.request(${params.join(', ')})\n\nprint(response.text)`;\n};\n"],"mappings":";;;;;;;AAKA,MAAaA,aAA8B,KAAK,MAAM,EAAE,oBAAoB;CAC1E,MAAMC,UAAkC,EAAE;CAC1C,MAAM,0BAAU,IAAI,KAAa;CACjC,MAAM,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM;CAC1C,IAAIC;AAEJ,SAAQ,IAAI,WAAW;AAEvB,KAAI,KAAK,QAAQ,KAAK,eAAe;EACnC,MAAM,UAAU,oBAAoB,KAAK,eAAe,cAAc;AACtE,UAAQ,kBAAkB,KAAK;AAE/B,SAAO,SAAS,gBAAgB,MAA2B,EACzD,MAAM,UACP,CAAC;AAEF,MAAI,KACF,QAAO,KAAK,cAAc;;AAI9B,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,KAAK,OAAO,CAC9C,SAAQ,KAAK,EAAE;AAGjB,KAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAChC,QAAO,KAAK,aAAa,qBAAqB,SAAS,QAAQ,GAAG;CAGpE,MAAM,eAAe,OAAO,QAAQ,KAAK,OAAO;AAChD,KAAI,aAAa,SAAS,GAAG;EAC3B,MAAMC,UAAkC,EAAE;AAE1C,OAAK,MAAM,CAAC,GAAG,MAAM,aACnB,SAAQ,KAAK,EAAE;AAGjB,SAAO,KAAK,aAAa,qBAAqB,SAAS,QAAQ,GAAG;;AAGpE,QAAO,GAAG,MAAM,KAAK,QAAQ,CAC1B,KAAK,SAAS,YAAY,KAAK,CAC/B,KAAK,KAAK,CAAC;;QAER,KAAK,UAAU,IAAI,CAAC;EAC1B,QAAQ,GAAG;8BACiB,OAAO,KAAK,KAAK,CAAC"}
@@ -1,97 +1,51 @@
1
- export { resolveMediaAdapter, isMediaTypeSupported } from './resolve-adapter.js';
1
+ //#region src/requests/media/adapter.d.ts
2
2
  interface BaseContext {
3
- /**
4
- * Passed by your custom example generator, for your custom media adapter to receive.
5
- */
6
- customData?: Record<string, unknown>;
3
+ /**
4
+ * Passed by your custom example generator, for your custom media adapter to receive.
5
+ */
6
+ customData?: Record<string, unknown>;
7
7
  }
8
8
  interface GoContext extends BaseContext {
9
- lang: 'go';
10
- addImport: (name: string) => void;
9
+ lang: 'go';
10
+ addImport: (name: string) => void;
11
11
  }
12
12
  interface JavaScriptContext extends BaseContext {
13
- lang: 'js';
14
- addImport: (pkg: string, name: string) => void;
13
+ lang: 'js';
14
+ addImport: (pkg: string, name: string) => void;
15
15
  }
16
16
  interface JavaContext extends BaseContext {
17
- lang: 'java';
18
- addImport: (specifier: string) => void;
17
+ lang: 'java';
18
+ addImport: (specifier: string) => void;
19
19
  }
20
20
  interface CSharpContext extends BaseContext {
21
- lang: 'csharp';
22
- addImport: (specifier: string) => void;
21
+ lang: 'csharp';
22
+ addImport: (specifier: string) => void;
23
23
  }
24
- export type MediaContext = JavaContext | GoContext | JavaScriptContext | CSharpContext | (BaseContext & {
25
- lang: string;
24
+ type MediaContext = JavaContext | GoContext | JavaScriptContext | CSharpContext | (BaseContext & {
25
+ lang: string;
26
26
  });
27
- export interface MediaAdapter {
28
- /**
29
- * encode data into specified media type for `fetch()`.
30
- *
31
- * Return the encoded form of `data.body` property.
32
- */
33
- encode: (data: {
34
- body: unknown;
35
- }) => BodyInit;
36
- /**
37
- * generate code example for creating the body in a given programming language.
38
- *
39
- * @param data - request data.
40
- * @param lang - name of programming language.
41
- * @param ctx - context passed from the generator of programming language.
42
- *
43
- * @returns code that inits a `body` variable, or undefined if not supported (skip example for that language).
44
- */
45
- generateExample: (data: {
46
- body: unknown;
47
- }, ctx: MediaContext) => string | undefined;
27
+ interface MediaAdapter {
28
+ /**
29
+ * encode data into specified media type for `fetch()`.
30
+ *
31
+ * Return the encoded form of `data.body` property.
32
+ */
33
+ encode: (data: {
34
+ body: unknown;
35
+ }) => BodyInit;
36
+ /**
37
+ * generate code example for creating the body in a given programming language.
38
+ *
39
+ * @param data - request data.
40
+ * @param lang - name of programming language.
41
+ * @param ctx - context passed from the generator of programming language.
42
+ *
43
+ * @returns code that inits a `body` variable, or undefined if not supported (skip example for that language).
44
+ */
45
+ generateExample: (data: {
46
+ body: unknown;
47
+ }, ctx: MediaContext) => string | undefined;
48
48
  }
49
- export declare const defaultAdapters: {
50
- 'application/json': {
51
- encode(data: {
52
- body: unknown;
53
- }): string;
54
- generateExample(data: {
55
- body: unknown;
56
- }, ctx: MediaContext): string | undefined;
57
- };
58
- 'application/xml': {
59
- encode(data: {
60
- body: unknown;
61
- }): any;
62
- generateExample(data: {
63
- body: unknown;
64
- }, ctx: MediaContext): string | undefined;
65
- };
66
- 'application/x-ndjson': {
67
- encode(data: {
68
- body: unknown;
69
- }): string;
70
- generateExample(data: {
71
- body: unknown;
72
- }, ctx: MediaContext): string | undefined;
73
- };
74
- 'application/x-www-form-urlencoded': {
75
- encode(data: {
76
- body: unknown;
77
- }): URLSearchParams;
78
- generateExample(data: {
79
- body: unknown;
80
- }, ctx: MediaContext): string | undefined;
81
- };
82
- 'multipart/form-data': {
83
- encode(data: {
84
- body: unknown;
85
- }): FormData;
86
- generateExample(data: {
87
- body: unknown;
88
- }, ctx: MediaContext): string | undefined;
89
- };
90
- 'application/octet-stream': {
91
- encode(data: {
92
- body: unknown;
93
- }): BodyInit;
94
- generateExample(): undefined;
95
- };
96
- };
49
+ //#endregion
50
+ export { MediaAdapter };
97
51
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/requests/media/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,UAAU,WAAW;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,UAAU,SAAU,SAAQ,WAAW;IACrC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,UAAU,WAAY,SAAQ,WAAW;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,SAAS,GACT,iBAAiB,GACjB,aAAa,GACb,CAAC,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,QAAQ,CAAC;IAE9C;;;;;;;;OAQG;IACH,eAAe,EAAE,CACf,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,EACvB,GAAG,EAAE,YAAY,KACd,MAAM,GAAG,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,eAAe;;;kBAjBH,OAAO;;;kBAYd,OAAO;;;;;kBAZA,OAAO;;;kBAYd,OAAO;;;;;kBAZA,OAAO;;;kBAYd,OAAO;;;;;kBAZA,OAAO;;;kBAYd,OAAO;;;;;kBAZA,OAAO;;;kBAYd,OAAO;;;;;kBAZA,OAAO;YAgLN,QAAQ;;;CAOM,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","names":[],"sources":["../../../src/requests/media/adapter.ts"],"sourcesContent":[],"mappings":";AAC8E,UAIpE,WAAA,CAAW;EAOX;AAA6B;AAKQ;EAUrC,UAAA,CAAA,EAlBK,MAkBS,CAAA,MAAA,EAAA,OAAQ,CAAA;AAKhC;UApBU,SAAA,SAAkB,WAqBxB,CAAA;EACA,IAAA,EAAA,IAAA;EACA,SAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;UAlBM,iBAAA,SAA0B,WAoB/B,CAAA;EAAW,IAAA,EAAA,IAAA;EAEC,SAAA,EAAA,CAAA,GAAY,EAAA,MAAA,EAAA,IAMU,EAAA,MAAA,EAWW,GAAA,IAAA;;UAlCxC,WAAA,SAAoB;;;;UAKpB,aAAA,SAAsB;;;;KAKpB,YAAA,GACR,cACA,YACA,oBACA,iBACC;;;UAEY,YAAA;;;;;;;;QAMsB;;;;;;;;;;;;UAWW"}
@@ -1,172 +1,125 @@
1
- import { escapeString, inputToString } from '../../requests/string-utils.js';
2
- export { resolveMediaAdapter, isMediaTypeSupported } from './resolve-adapter.js';
3
- // @ts-expect-error -- untyped
4
- import js2xml from 'xml-js/lib/js2xml';
5
- export const defaultAdapters = {
6
- 'application/json': {
7
- encode(data) {
8
- return JSON.stringify(data.body);
9
- },
10
- generateExample(data, ctx) {
11
- return str(data.body, 'application/json', ctx);
12
- },
13
- },
14
- 'application/xml': {
15
- encode(data) {
16
- return js2xml(data.body, {
17
- compact: true,
18
- spaces: 2,
19
- });
20
- },
21
- generateExample(data, ctx) {
22
- return str(data.body, 'application/xml', ctx);
23
- },
24
- },
25
- 'application/x-ndjson': {
26
- encode(data) {
27
- if (Array.isArray(data.body)) {
28
- return data.body.map((v) => JSON.stringify(v)).join('\n');
29
- }
30
- return JSON.stringify(data.body);
31
- },
32
- generateExample(data, ctx) {
33
- return str(data.body, 'application/x-ndjson', ctx);
34
- },
35
- },
36
- 'application/x-www-form-urlencoded': {
37
- encode(data) {
38
- if (typeof data.body !== 'object')
39
- throw new Error(`Input value must be object, received: ${typeof data.body}`);
40
- const params = new URLSearchParams();
41
- for (const key in data.body) {
42
- params.set(key, String(data.body[key]));
43
- }
44
- return params;
45
- },
46
- generateExample(data, ctx) {
47
- if (ctx.lang === 'js') {
48
- return `const body = new URLSearchParams(${JSON.stringify(data.body, null, 2)})`;
49
- }
50
- return str(data.body, 'application/x-www-form-urlencoded', ctx);
51
- },
52
- },
53
- 'multipart/form-data': {
54
- encode(data) {
55
- const formData = new FormData();
56
- const body = data.body;
57
- if (typeof body !== 'object' || !body) {
58
- throw new Error(`Unsupported body type: ${typeof body}, expected: object`);
59
- }
60
- for (const key in body) {
61
- const prop = body[key];
62
- if (prop === null || prop === undefined || Number.isNaN(prop))
63
- continue;
64
- // Arrays (multi-value field)
65
- if (Array.isArray(prop)) {
66
- for (const item of prop) {
67
- if (item === null || item === undefined)
68
- continue;
69
- if (item instanceof File) {
70
- formData.append(key, item, item.name);
71
- }
72
- else if (item instanceof Blob) {
73
- formData.append(key, item, 'blob');
74
- }
75
- else if (typeof item === 'object') {
76
- formData.append(key, JSON.stringify(item));
77
- }
78
- else {
79
- formData.append(key, String(item));
80
- }
81
- }
82
- }
83
- // Single File
84
- else if (prop instanceof File) {
85
- formData.set(key, prop, prop.name);
86
- }
87
- // Single Blob
88
- else if (prop instanceof Blob) {
89
- formData.set(key, prop, 'blob');
90
- }
91
- // Any other object (stringify)
92
- else if (typeof prop === 'object') {
93
- formData.set(key, JSON.stringify(prop));
94
- }
95
- // Primitive types
96
- else {
97
- formData.set(key, String(prop));
98
- }
99
- }
100
- return formData;
101
- },
102
- generateExample(data, ctx) {
103
- if (ctx.lang === 'python') {
104
- return `body = ${JSON.stringify(data.body, null, 2)}`;
105
- }
106
- const s = [];
107
- if (ctx.lang === 'js') {
108
- s.push(`const body = new FormData();`);
109
- for (const [key, value] of Object.entries(data.body)) {
110
- s.push(`body.set(${key}, ${JSON.stringify(inputToString(value))})`);
111
- }
112
- }
113
- if (ctx.lang === 'go') {
114
- const { addImport } = ctx;
115
- addImport('mime/multipart');
116
- addImport('bytes');
117
- s.push('body := new(bytes.Buffer)');
118
- s.push('mp := multipart.NewWriter(payload)');
119
- for (const [key, value] of Object.entries(data.body)) {
120
- if (!value)
121
- continue;
122
- const escaped = escapeString(inputToString(value, 'application/json'), '`');
123
- s.push(`mp.WriteField("${key}", ${escaped})`);
124
- }
125
- }
126
- if (ctx.lang === 'java') {
127
- const { addImport } = ctx;
128
- addImport('java.net.http.HttpRequest.BodyPublishers');
129
- s.push(`var body = BodyPublishers.ofByteArray(new byte[] { ... });`);
130
- }
131
- if (ctx.lang === 'csharp') {
132
- s.push(`var body = new MultipartFormDataContent();`);
133
- }
134
- if (s.length > 0)
135
- return s.join('\n');
136
- },
137
- },
138
- 'application/octet-stream': {
139
- encode(data) {
140
- return data.body;
141
- },
142
- generateExample() {
143
- // not supported
144
- return undefined;
145
- },
146
- },
1
+ import { escapeString, inputToString } from "../string-utils.js";
2
+ import { isMediaTypeSupported, resolveMediaAdapter } from "./resolve-adapter.js";
3
+ import js2xml from "xml-js/lib/js2xml";
4
+
5
+ //#region src/requests/media/adapter.ts
6
+ const defaultAdapters = {
7
+ "application/json": {
8
+ encode(data) {
9
+ return JSON.stringify(data.body);
10
+ },
11
+ generateExample(data, ctx) {
12
+ return str(data.body, "application/json", ctx);
13
+ }
14
+ },
15
+ "application/xml": {
16
+ encode(data) {
17
+ return js2xml(data.body, {
18
+ compact: true,
19
+ spaces: 2
20
+ });
21
+ },
22
+ generateExample(data, ctx) {
23
+ return str(data.body, "application/xml", ctx);
24
+ }
25
+ },
26
+ "application/x-ndjson": {
27
+ encode(data) {
28
+ if (Array.isArray(data.body)) return data.body.map((v) => JSON.stringify(v)).join("\n");
29
+ return JSON.stringify(data.body);
30
+ },
31
+ generateExample(data, ctx) {
32
+ return str(data.body, "application/x-ndjson", ctx);
33
+ }
34
+ },
35
+ "application/x-www-form-urlencoded": {
36
+ encode(data) {
37
+ if (typeof data.body !== "object") throw new Error(`Input value must be object, received: ${typeof data.body}`);
38
+ const params = new URLSearchParams();
39
+ for (const key in data.body) params.set(key, String(data.body[key]));
40
+ return params;
41
+ },
42
+ generateExample(data, ctx) {
43
+ if (ctx.lang === "js") return `const body = new URLSearchParams(${JSON.stringify(data.body, null, 2)})`;
44
+ return str(data.body, "application/x-www-form-urlencoded", ctx);
45
+ }
46
+ },
47
+ "multipart/form-data": {
48
+ encode(data) {
49
+ const formData = new FormData();
50
+ const body = data.body;
51
+ if (typeof body !== "object" || !body) throw new Error(`Unsupported body type: ${typeof body}, expected: object`);
52
+ for (const key in body) {
53
+ const prop = body[key];
54
+ if (prop === null || prop === void 0 || Number.isNaN(prop)) continue;
55
+ if (Array.isArray(prop)) for (const item of prop) {
56
+ if (item === null || item === void 0) continue;
57
+ if (item instanceof File) formData.append(key, item, item.name);
58
+ else if (item instanceof Blob) formData.append(key, item, "blob");
59
+ else if (typeof item === "object") formData.append(key, JSON.stringify(item));
60
+ else formData.append(key, String(item));
61
+ }
62
+ else if (prop instanceof File) formData.set(key, prop, prop.name);
63
+ else if (prop instanceof Blob) formData.set(key, prop, "blob");
64
+ else if (typeof prop === "object") formData.set(key, JSON.stringify(prop));
65
+ else formData.set(key, String(prop));
66
+ }
67
+ return formData;
68
+ },
69
+ generateExample(data, ctx) {
70
+ if (ctx.lang === "python") return `body = ${JSON.stringify(data.body, null, 2)}`;
71
+ const s = [];
72
+ if (ctx.lang === "js") {
73
+ s.push(`const body = new FormData();`);
74
+ for (const [key, value] of Object.entries(data.body)) s.push(`body.set(${key}, ${JSON.stringify(inputToString(value))})`);
75
+ }
76
+ if (ctx.lang === "go") {
77
+ const { addImport } = ctx;
78
+ addImport("mime/multipart");
79
+ addImport("bytes");
80
+ s.push("body := new(bytes.Buffer)");
81
+ s.push("mp := multipart.NewWriter(payload)");
82
+ for (const [key, value] of Object.entries(data.body)) {
83
+ if (!value) continue;
84
+ const escaped = escapeString(inputToString(value, "application/json"), "`");
85
+ s.push(`mp.WriteField("${key}", ${escaped})`);
86
+ }
87
+ }
88
+ if (ctx.lang === "java") {
89
+ const { addImport } = ctx;
90
+ addImport("java.net.http.HttpRequest.BodyPublishers");
91
+ s.push(`var body = BodyPublishers.ofByteArray(new byte[] { ... });`);
92
+ }
93
+ if (ctx.lang === "csharp") s.push(`var body = new MultipartFormDataContent();`);
94
+ if (s.length > 0) return s.join("\n");
95
+ }
96
+ },
97
+ "application/octet-stream": {
98
+ encode(data) {
99
+ return data.body;
100
+ },
101
+ generateExample() {}
102
+ }
147
103
  };
148
104
  function str(init, mediaType, ctx) {
149
- if (ctx.lang === 'js') {
150
- if (mediaType === 'application/json') {
151
- return `const body = JSON.stringify(${JSON.stringify(init, null, 2)})`;
152
- }
153
- return `const body = ${escapeString(inputToString(init, mediaType), '`')}`;
154
- }
155
- if (ctx.lang === 'python') {
156
- return `body = ${escapeString(inputToString(init, mediaType), '"""')}`;
157
- }
158
- if (ctx.lang === 'go') {
159
- const { addImport } = ctx;
160
- addImport('strings');
161
- return `body := strings.NewReader(${escapeString(inputToString(init, mediaType), '`')})`;
162
- }
163
- if (ctx.lang === 'java') {
164
- const { addImport } = ctx;
165
- addImport('java.net.http.HttpRequest.BodyPublishers');
166
- return `var body = BodyPublishers.ofString(${escapeString(inputToString(init, mediaType), '"""')});`;
167
- }
168
- if (ctx.lang === 'csharp') {
169
- const input = `\n${inputToString(init, mediaType)}\n`;
170
- return `var body = new StringContent(${escapeString(input, '"""')}, Encoding.UTF8, "${mediaType}");`;
171
- }
105
+ if (ctx.lang === "js") {
106
+ if (mediaType === "application/json") return `const body = JSON.stringify(${JSON.stringify(init, null, 2)})`;
107
+ return `const body = ${escapeString(inputToString(init, mediaType), "`")}`;
108
+ }
109
+ if (ctx.lang === "python") return `body = ${escapeString(inputToString(init, mediaType), "\"\"\"")}`;
110
+ if (ctx.lang === "go") {
111
+ const { addImport } = ctx;
112
+ addImport("strings");
113
+ return `body := strings.NewReader(${escapeString(inputToString(init, mediaType), "`")})`;
114
+ }
115
+ if (ctx.lang === "java") {
116
+ const { addImport } = ctx;
117
+ addImport("java.net.http.HttpRequest.BodyPublishers");
118
+ return `var body = BodyPublishers.ofString(${escapeString(inputToString(init, mediaType), "\"\"\"")});`;
119
+ }
120
+ if (ctx.lang === "csharp") return `var body = new StringContent(${escapeString(`\n${inputToString(init, mediaType)}\n`, "\"\"\"")}, Encoding.UTF8, "${mediaType}");`;
172
121
  }
122
+
123
+ //#endregion
124
+ export { defaultAdapters };
125
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","names":["s: string[]"],"sources":["../../../src/requests/media/adapter.ts"],"sourcesContent":["import { escapeString, inputToString } from '@/requests/string-utils';\nexport { resolveMediaAdapter, isMediaTypeSupported } from './resolve-adapter';\n// @ts-expect-error -- untyped\nimport js2xml from 'xml-js/lib/js2xml';\n\ninterface BaseContext {\n /**\n * Passed by your custom example generator, for your custom media adapter to receive.\n */\n customData?: Record<string, unknown>;\n}\n\ninterface GoContext extends BaseContext {\n lang: 'go';\n addImport: (name: string) => void;\n}\n\ninterface JavaScriptContext extends BaseContext {\n lang: 'js';\n addImport: (pkg: string, name: string) => void;\n}\n\ninterface JavaContext extends BaseContext {\n lang: 'java';\n addImport: (specifier: string) => void;\n}\n\ninterface CSharpContext extends BaseContext {\n lang: 'csharp';\n addImport: (specifier: string) => void;\n}\n\nexport type MediaContext =\n | JavaContext\n | GoContext\n | JavaScriptContext\n | CSharpContext\n | (BaseContext & { lang: string });\n\nexport interface MediaAdapter {\n /**\n * encode data into specified media type for `fetch()`.\n *\n * Return the encoded form of `data.body` property.\n */\n encode: (data: { body: unknown }) => BodyInit;\n\n /**\n * generate code example for creating the body in a given programming language.\n *\n * @param data - request data.\n * @param lang - name of programming language.\n * @param ctx - context passed from the generator of programming language.\n *\n * @returns code that inits a `body` variable, or undefined if not supported (skip example for that language).\n */\n generateExample: (data: { body: unknown }, ctx: MediaContext) => string | undefined;\n}\n\nexport const defaultAdapters = {\n 'application/json': {\n encode(data) {\n return JSON.stringify(data.body);\n },\n generateExample(data, ctx) {\n return str(data.body, 'application/json', ctx);\n },\n },\n 'application/xml': {\n encode(data) {\n return js2xml(data.body as Record<string, unknown>, {\n compact: true,\n spaces: 2,\n });\n },\n generateExample(data, ctx) {\n return str(data.body, 'application/xml', ctx);\n },\n },\n 'application/x-ndjson': {\n encode(data) {\n if (Array.isArray(data.body)) {\n return data.body.map((v) => JSON.stringify(v)).join('\\n');\n }\n\n return JSON.stringify(data.body);\n },\n generateExample(data, ctx) {\n return str(data.body, 'application/x-ndjson', ctx);\n },\n },\n 'application/x-www-form-urlencoded': {\n encode(data) {\n if (typeof data.body !== 'object')\n throw new Error(`Input value must be object, received: ${typeof data.body}`);\n\n const params = new URLSearchParams();\n for (const key in data.body) {\n params.set(key, String(data.body[key as keyof object]));\n }\n\n return params;\n },\n generateExample(data, ctx) {\n if (ctx.lang === 'js') {\n return `const body = new URLSearchParams(${JSON.stringify(data.body, null, 2)})`;\n }\n\n return str(data.body, 'application/x-www-form-urlencoded', ctx);\n },\n },\n 'multipart/form-data': {\n encode(data) {\n const formData = new FormData();\n const body = data.body as Record<string, unknown>;\n\n if (typeof body !== 'object' || !body) {\n throw new Error(`Unsupported body type: ${typeof body}, expected: object`);\n }\n\n for (const key in body) {\n const prop = body[key];\n\n if (prop === null || prop === undefined || Number.isNaN(prop)) continue;\n\n // Arrays (multi-value field)\n if (Array.isArray(prop)) {\n for (const item of prop) {\n if (item === null || item === undefined) continue;\n if (item instanceof File) {\n formData.append(key, item, item.name);\n } else if (item instanceof Blob) {\n formData.append(key, item, 'blob');\n } else if (typeof item === 'object') {\n formData.append(key, JSON.stringify(item));\n } else {\n formData.append(key, String(item));\n }\n }\n }\n\n // Single File\n else if (prop instanceof File) {\n formData.set(key, prop, prop.name);\n }\n\n // Single Blob\n else if (prop instanceof Blob) {\n formData.set(key, prop, 'blob');\n }\n\n // Any other object (stringify)\n else if (typeof prop === 'object') {\n formData.set(key, JSON.stringify(prop));\n }\n\n // Primitive types\n else {\n formData.set(key, String(prop));\n }\n }\n\n return formData;\n },\n generateExample(data, ctx) {\n if (ctx.lang === 'python') {\n return `body = ${JSON.stringify(data.body, null, 2)}`;\n }\n\n const s: string[] = [];\n if (ctx.lang === 'js') {\n s.push(`const body = new FormData();`);\n\n for (const [key, value] of Object.entries(data.body as object)) {\n s.push(`body.set(${key}, ${JSON.stringify(inputToString(value))})`);\n }\n }\n\n if (ctx.lang === 'go') {\n const { addImport } = ctx as GoContext;\n addImport('mime/multipart');\n addImport('bytes');\n\n s.push('body := new(bytes.Buffer)');\n s.push('mp := multipart.NewWriter(payload)');\n\n for (const [key, value] of Object.entries(data.body as object)) {\n if (!value) continue;\n\n const escaped = escapeString(inputToString(value, 'application/json'), '`');\n\n s.push(`mp.WriteField(\"${key}\", ${escaped})`);\n }\n }\n\n if (ctx.lang === 'java') {\n const { addImport } = ctx as JavaContext;\n addImport('java.net.http.HttpRequest.BodyPublishers');\n\n s.push(`var body = BodyPublishers.ofByteArray(new byte[] { ... });`);\n }\n\n if (ctx.lang === 'csharp') {\n s.push(`var body = new MultipartFormDataContent();`);\n }\n\n if (s.length > 0) return s.join('\\n');\n },\n },\n 'application/octet-stream': {\n encode(data) {\n return data.body as BodyInit;\n },\n generateExample() {\n // not supported\n return undefined;\n },\n },\n} satisfies Record<string, MediaAdapter>;\n\nfunction str(\n init: unknown,\n mediaType:\n | 'application/x-www-form-urlencoded'\n | 'application/x-ndjson'\n | 'application/json'\n | 'application/xml',\n ctx: MediaContext,\n) {\n if (ctx.lang === 'js') {\n if (mediaType === 'application/json') {\n return `const body = JSON.stringify(${JSON.stringify(init, null, 2)})`;\n }\n return `const body = ${escapeString(inputToString(init, mediaType), '`')}`;\n }\n\n if (ctx.lang === 'python') {\n return `body = ${escapeString(inputToString(init, mediaType), '\"\"\"')}`;\n }\n\n if (ctx.lang === 'go') {\n const { addImport } = ctx as GoContext;\n addImport('strings');\n return `body := strings.NewReader(${escapeString(inputToString(init, mediaType), '`')})`;\n }\n\n if (ctx.lang === 'java') {\n const { addImport } = ctx as JavaContext;\n addImport('java.net.http.HttpRequest.BodyPublishers');\n return `var body = BodyPublishers.ofString(${escapeString(inputToString(init, mediaType), '\"\"\"')});`;\n }\n\n if (ctx.lang === 'csharp') {\n const input = `\\n${inputToString(init, mediaType)}\\n`;\n\n return `var body = new StringContent(${escapeString(input, '\"\"\"')}, Encoding.UTF8, \"${mediaType}\");`;\n }\n}\n"],"mappings":";;;;;AA2DA,MAAa,kBAAkB;CAC7B,oBAAoB;EAClB,OAAO,MAAM;AACX,UAAO,KAAK,UAAU,KAAK,KAAK;;EAElC,gBAAgB,MAAM,KAAK;AACzB,UAAO,IAAI,KAAK,MAAM,oBAAoB,IAAI;;EAEjD;CACD,mBAAmB;EACjB,OAAO,MAAM;AACX,UAAO,OAAO,KAAK,MAAiC;IAClD,SAAS;IACT,QAAQ;IACT,CAAC;;EAEJ,gBAAgB,MAAM,KAAK;AACzB,UAAO,IAAI,KAAK,MAAM,mBAAmB,IAAI;;EAEhD;CACD,wBAAwB;EACtB,OAAO,MAAM;AACX,OAAI,MAAM,QAAQ,KAAK,KAAK,CAC1B,QAAO,KAAK,KAAK,KAAK,MAAM,KAAK,UAAU,EAAE,CAAC,CAAC,KAAK,KAAK;AAG3D,UAAO,KAAK,UAAU,KAAK,KAAK;;EAElC,gBAAgB,MAAM,KAAK;AACzB,UAAO,IAAI,KAAK,MAAM,wBAAwB,IAAI;;EAErD;CACD,qCAAqC;EACnC,OAAO,MAAM;AACX,OAAI,OAAO,KAAK,SAAS,SACvB,OAAM,IAAI,MAAM,yCAAyC,OAAO,KAAK,OAAO;GAE9E,MAAM,SAAS,IAAI,iBAAiB;AACpC,QAAK,MAAM,OAAO,KAAK,KACrB,QAAO,IAAI,KAAK,OAAO,KAAK,KAAK,KAAqB,CAAC;AAGzD,UAAO;;EAET,gBAAgB,MAAM,KAAK;AACzB,OAAI,IAAI,SAAS,KACf,QAAO,oCAAoC,KAAK,UAAU,KAAK,MAAM,MAAM,EAAE,CAAC;AAGhF,UAAO,IAAI,KAAK,MAAM,qCAAqC,IAAI;;EAElE;CACD,uBAAuB;EACrB,OAAO,MAAM;GACX,MAAM,WAAW,IAAI,UAAU;GAC/B,MAAM,OAAO,KAAK;AAElB,OAAI,OAAO,SAAS,YAAY,CAAC,KAC/B,OAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,oBAAoB;AAG5E,QAAK,MAAM,OAAO,MAAM;IACtB,MAAM,OAAO,KAAK;AAElB,QAAI,SAAS,QAAQ,SAAS,UAAa,OAAO,MAAM,KAAK,CAAE;AAG/D,QAAI,MAAM,QAAQ,KAAK,CACrB,MAAK,MAAM,QAAQ,MAAM;AACvB,SAAI,SAAS,QAAQ,SAAS,OAAW;AACzC,SAAI,gBAAgB,KAClB,UAAS,OAAO,KAAK,MAAM,KAAK,KAAK;cAC5B,gBAAgB,KACzB,UAAS,OAAO,KAAK,MAAM,OAAO;cACzB,OAAO,SAAS,SACzB,UAAS,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;SAE1C,UAAS,OAAO,KAAK,OAAO,KAAK,CAAC;;aAM/B,gBAAgB,KACvB,UAAS,IAAI,KAAK,MAAM,KAAK,KAAK;aAI3B,gBAAgB,KACvB,UAAS,IAAI,KAAK,MAAM,OAAO;aAIxB,OAAO,SAAS,SACvB,UAAS,IAAI,KAAK,KAAK,UAAU,KAAK,CAAC;QAKvC,UAAS,IAAI,KAAK,OAAO,KAAK,CAAC;;AAInC,UAAO;;EAET,gBAAgB,MAAM,KAAK;AACzB,OAAI,IAAI,SAAS,SACf,QAAO,UAAU,KAAK,UAAU,KAAK,MAAM,MAAM,EAAE;GAGrD,MAAMA,IAAc,EAAE;AACtB,OAAI,IAAI,SAAS,MAAM;AACrB,MAAE,KAAK,+BAA+B;AAEtC,SAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,KAAe,CAC5D,GAAE,KAAK,YAAY,IAAI,IAAI,KAAK,UAAU,cAAc,MAAM,CAAC,CAAC,GAAG;;AAIvE,OAAI,IAAI,SAAS,MAAM;IACrB,MAAM,EAAE,cAAc;AACtB,cAAU,iBAAiB;AAC3B,cAAU,QAAQ;AAElB,MAAE,KAAK,4BAA4B;AACnC,MAAE,KAAK,qCAAqC;AAE5C,SAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,KAAe,EAAE;AAC9D,SAAI,CAAC,MAAO;KAEZ,MAAM,UAAU,aAAa,cAAc,OAAO,mBAAmB,EAAE,IAAI;AAE3E,OAAE,KAAK,kBAAkB,IAAI,KAAK,QAAQ,GAAG;;;AAIjD,OAAI,IAAI,SAAS,QAAQ;IACvB,MAAM,EAAE,cAAc;AACtB,cAAU,2CAA2C;AAErD,MAAE,KAAK,6DAA6D;;AAGtE,OAAI,IAAI,SAAS,SACf,GAAE,KAAK,6CAA6C;AAGtD,OAAI,EAAE,SAAS,EAAG,QAAO,EAAE,KAAK,KAAK;;EAExC;CACD,4BAA4B;EAC1B,OAAO,MAAM;AACX,UAAO,KAAK;;EAEd,kBAAkB;EAInB;CACF;AAED,SAAS,IACP,MACA,WAKA,KACA;AACA,KAAI,IAAI,SAAS,MAAM;AACrB,MAAI,cAAc,mBAChB,QAAO,+BAA+B,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;AAEtE,SAAO,gBAAgB,aAAa,cAAc,MAAM,UAAU,EAAE,IAAI;;AAG1E,KAAI,IAAI,SAAS,SACf,QAAO,UAAU,aAAa,cAAc,MAAM,UAAU,EAAE,SAAM;AAGtE,KAAI,IAAI,SAAS,MAAM;EACrB,MAAM,EAAE,cAAc;AACtB,YAAU,UAAU;AACpB,SAAO,6BAA6B,aAAa,cAAc,MAAM,UAAU,EAAE,IAAI,CAAC;;AAGxF,KAAI,IAAI,SAAS,QAAQ;EACvB,MAAM,EAAE,cAAc;AACtB,YAAU,2CAA2C;AACrD,SAAO,sCAAsC,aAAa,cAAc,MAAM,UAAU,EAAE,SAAM,CAAC;;AAGnG,KAAI,IAAI,SAAS,SAGf,QAAO,gCAAgC,aAFzB,KAAK,cAAc,MAAM,UAAU,CAAC,KAES,SAAM,CAAC,oBAAoB,UAAU"}
@@ -1,9 +1,14 @@
1
- import type { MediaAdapter } from '../../requests/media/adapter.js';
2
- import type { NoReference } from '../../utils/schema.js';
3
- import type { ParameterObject } from '../../types.js';
4
- import type { RawRequestData, RequestData } from '../../requests/types.js';
5
- export interface EncodedParameter {
6
- readonly value: string | string[];
1
+ import "../../utils/schema.js";
2
+ import "../types.js";
3
+ import "../../types.js";
4
+
5
+ //#region src/requests/media/encode.d.ts
6
+ interface EncodedParameter {
7
+ readonly value: string;
7
8
  }
8
- export declare function encodeRequestData(from: RawRequestData, adapters: Record<string, MediaAdapter>, parameters: NoReference<ParameterObject>[]): RequestData;
9
+ interface EncodedParameterMultiple {
10
+ readonly values: string[];
11
+ }
12
+ //#endregion
13
+ export { EncodedParameter, EncodedParameterMultiple };
9
14
  //# sourceMappingURL=encode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../src/requests/media/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC;AAYD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACtC,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,GACzC,WAAW,CA+Fb"}
1
+ {"version":3,"file":"encode.d.ts","names":[],"sources":["../../../src/requests/media/encode.ts"],"sourcesContent":[],"mappings":";;;;;UAMiB,gBAAA;EAAA,SAAA,KAAA,EAAA,MAAgB;AAIjC;UAAiB,wBAAA"}