fumadocs-openapi 10.2.2 → 10.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generate-file.d.ts +53 -49
- package/dist/generate-file.d.ts.map +1 -1
- package/dist/generate-file.js +88 -102
- package/dist/generate-file.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3 -1
- package/dist/playground/client.d.ts +88 -72
- package/dist/playground/client.d.ts.map +1 -1
- package/dist/playground/client.js +446 -296
- package/dist/playground/client.js.map +1 -0
- package/dist/playground/components/inputs.js +395 -172
- package/dist/playground/components/inputs.js.map +1 -0
- package/dist/playground/components/oauth-dialog.js +270 -174
- package/dist/playground/components/oauth-dialog.js.map +1 -0
- package/dist/playground/components/server-select.js +115 -55
- package/dist/playground/components/server-select.js.map +1 -0
- package/dist/playground/fetcher.d.ts +10 -18
- package/dist/playground/fetcher.d.ts.map +1 -1
- package/dist/playground/fetcher.js +67 -75
- package/dist/playground/fetcher.js.map +1 -0
- package/dist/playground/get-default-values.js +23 -26
- package/dist/playground/get-default-values.js.map +1 -0
- package/dist/playground/index.d.ts +23 -13
- package/dist/playground/index.d.ts.map +1 -1
- package/dist/playground/index.js +87 -91
- package/dist/playground/index.js.map +1 -0
- package/dist/playground/lazy.js +9 -2
- package/dist/playground/lazy.js.map +1 -0
- package/dist/playground/schema.d.ts +18 -55
- package/dist/playground/schema.d.ts.map +1 -1
- package/dist/playground/schema.js +117 -106
- package/dist/playground/schema.js.map +1 -0
- package/dist/playground/status-info.js +49 -37
- package/dist/playground/status-info.js.map +1 -0
- package/dist/requests/generators/csharp.js +40 -50
- package/dist/requests/generators/csharp.js.map +1 -0
- package/dist/requests/generators/curl.js +28 -27
- package/dist/requests/generators/curl.js.map +1 -0
- package/dist/requests/generators/go.js +39 -35
- package/dist/requests/generators/go.js.map +1 -0
- package/dist/requests/generators/index.js +49 -43
- package/dist/requests/generators/index.js.map +1 -0
- package/dist/requests/generators/java.js +56 -67
- package/dist/requests/generators/java.js.map +1 -0
- package/dist/requests/generators/javascript.js +38 -45
- package/dist/requests/generators/javascript.js.map +1 -0
- package/dist/requests/generators/python.js +33 -37
- package/dist/requests/generators/python.js.map +1 -0
- package/dist/requests/media/adapter.d.ts +38 -84
- package/dist/requests/media/adapter.d.ts.map +1 -1
- package/dist/requests/media/adapter.js +122 -169
- package/dist/requests/media/adapter.js.map +1 -0
- package/dist/requests/media/encode.d.ts +12 -7
- package/dist/requests/media/encode.d.ts.map +1 -1
- package/dist/requests/media/encode.js +131 -109
- package/dist/requests/media/encode.js.map +1 -0
- package/dist/requests/media/resolve-adapter.js +28 -28
- package/dist/requests/media/resolve-adapter.js.map +1 -0
- package/dist/requests/string-utils.js +28 -35
- package/dist/requests/string-utils.js.map +1 -0
- package/dist/requests/to-python-object.js +16 -28
- package/dist/requests/to-python-object.js.map +1 -0
- package/dist/requests/types.d.ts +25 -21
- package/dist/requests/types.d.ts.map +1 -1
- package/dist/scalar/client.js +57 -20
- package/dist/scalar/client.js.map +1 -0
- package/dist/scalar/index.d.ts +8 -2
- package/dist/scalar/index.d.ts.map +1 -1
- package/dist/scalar/index.js +29 -19
- package/dist/scalar/index.js.map +1 -0
- package/dist/server/create.d.ts +29 -25
- package/dist/server/create.d.ts.map +1 -1
- package/dist/server/create.js +42 -39
- package/dist/server/create.js.map +1 -0
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +4 -2
- package/dist/server/proxy.d.ts +28 -28
- package/dist/server/proxy.d.ts.map +1 -1
- package/dist/server/proxy.js +58 -75
- package/dist/server/proxy.js.map +1 -0
- package/dist/server/source-api.d.ts +32 -29
- package/dist/server/source-api.d.ts.map +1 -1
- package/dist/server/source-api.js +82 -75
- package/dist/server/source-api.js.map +1 -0
- package/dist/types.d.ts +41 -36
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/api-page.d.ts +140 -136
- package/dist/ui/api-page.d.ts.map +1 -1
- package/dist/ui/api-page.js +134 -118
- package/dist/ui/api-page.js.map +1 -0
- package/dist/ui/client/index.d.ts +30 -26
- package/dist/ui/client/index.d.ts.map +1 -1
- package/dist/ui/client/index.js +8 -2
- package/dist/ui/client/index.js.map +1 -0
- package/dist/ui/client/storage-key.js +16 -10
- package/dist/ui/client/storage-key.js.map +1 -0
- package/dist/ui/components/accordion.js +40 -14
- package/dist/ui/components/accordion.js.map +1 -0
- package/dist/ui/components/dialog.js +51 -15
- package/dist/ui/components/dialog.js.map +1 -0
- package/dist/ui/components/input.js +18 -8
- package/dist/ui/components/input.js.map +1 -0
- package/dist/ui/components/method-label.js +38 -33
- package/dist/ui/components/method-label.js.map +1 -0
- package/dist/ui/components/select.js +66 -15
- package/dist/ui/components/select.js.map +1 -0
- package/dist/ui/contexts/api.js +96 -85
- package/dist/ui/contexts/api.js.map +1 -0
- package/dist/ui/contexts/api.lazy.js +9 -2
- package/dist/ui/contexts/api.lazy.js.map +1 -0
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.js +3 -1
- package/dist/ui/operation/client.js +65 -27
- package/dist/ui/operation/client.js.map +1 -0
- package/dist/ui/operation/index.js +403 -186
- package/dist/ui/operation/index.js.map +1 -0
- package/dist/ui/operation/request-tabs.d.ts +15 -16
- package/dist/ui/operation/request-tabs.d.ts.map +1 -1
- package/dist/ui/operation/request-tabs.js +151 -131
- package/dist/ui/operation/request-tabs.js.map +1 -0
- package/dist/ui/operation/response-tabs.d.ts +27 -28
- package/dist/ui/operation/response-tabs.d.ts.map +1 -1
- package/dist/ui/operation/response-tabs.js +73 -56
- package/dist/ui/operation/response-tabs.js.map +1 -0
- package/dist/ui/operation/usage-tabs/client.js +117 -88
- package/dist/ui/operation/usage-tabs/client.js.map +1 -0
- package/dist/ui/operation/usage-tabs/index.d.ts +22 -21
- package/dist/ui/operation/usage-tabs/index.d.ts.map +1 -1
- package/dist/ui/operation/usage-tabs/index.js +63 -48
- package/dist/ui/operation/usage-tabs/index.js.map +1 -0
- package/dist/ui/operation/usage-tabs/lazy.js +11 -4
- package/dist/ui/operation/usage-tabs/lazy.js.map +1 -0
- package/dist/ui/schema/client.d.ts +11 -7
- package/dist/ui/schema/client.d.ts.map +1 -1
- package/dist/ui/schema/client.js +213 -127
- package/dist/ui/schema/client.js.map +1 -0
- package/dist/ui/schema/index.d.ts +51 -50
- package/dist/ui/schema/index.d.ts.map +1 -1
- package/dist/ui/schema/index.js +225 -248
- package/dist/ui/schema/index.js.map +1 -0
- package/dist/ui/schema/lazy.js +9 -2
- package/dist/ui/schema/lazy.js.map +1 -0
- package/dist/utils/cn.js +3 -1
- package/dist/utils/deep-equal.js +18 -26
- package/dist/utils/deep-equal.js.map +1 -0
- package/dist/utils/get-typescript-schema.js +21 -19
- package/dist/utils/get-typescript-schema.js.map +1 -0
- package/dist/utils/id-to-title.js +13 -16
- package/dist/utils/id-to-title.js.map +1 -0
- package/dist/utils/lazy.js +13 -11
- package/dist/utils/lazy.js.map +1 -0
- package/dist/utils/merge-schema.js +130 -174
- package/dist/utils/merge-schema.js.map +1 -0
- package/dist/utils/pages/builder.d.ts +80 -76
- package/dist/utils/pages/builder.d.ts.map +1 -1
- package/dist/utils/pages/builder.js +101 -118
- package/dist/utils/pages/builder.js.map +1 -0
- package/dist/utils/pages/preset-auto.d.ts +58 -55
- package/dist/utils/pages/preset-auto.d.ts.map +1 -1
- package/dist/utils/pages/preset-auto.js +124 -137
- package/dist/utils/pages/preset-auto.js.map +1 -0
- package/dist/utils/pages/to-body.js +21 -18
- package/dist/utils/pages/to-body.js.map +1 -0
- package/dist/utils/pages/to-static-data.js +48 -40
- package/dist/utils/pages/to-static-data.js.map +1 -0
- package/dist/utils/pages/to-text.d.ts +43 -41
- package/dist/utils/pages/to-text.d.ts.map +1 -1
- package/dist/utils/pages/to-text.js +93 -126
- package/dist/utils/pages/to-text.js.map +1 -0
- package/dist/utils/process-document.d.ts +18 -19
- package/dist/utils/process-document.d.ts.map +1 -1
- package/dist/utils/process-document.js +43 -54
- package/dist/utils/process-document.js.map +1 -0
- package/dist/utils/remove-undefined.js +18 -18
- package/dist/utils/remove-undefined.js.map +1 -0
- package/dist/utils/schema-to-string.js +46 -64
- package/dist/utils/schema-to-string.js.map +1 -0
- package/dist/utils/schema.d.ts +11 -27
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +43 -44
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/url.js +35 -56
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/use-query.js +39 -33
- package/dist/utils/use-query.js.map +1 -0
- package/package.json +34 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/playground/components/inputs.d.ts +0 -25
- package/dist/playground/components/inputs.d.ts.map +0 -1
- package/dist/playground/components/oauth-dialog.d.ts +0 -13
- package/dist/playground/components/oauth-dialog.d.ts.map +0 -1
- package/dist/playground/components/server-select.d.ts +0 -3
- package/dist/playground/components/server-select.d.ts.map +0 -1
- package/dist/playground/get-default-values.d.ts +0 -3
- package/dist/playground/get-default-values.d.ts.map +0 -1
- package/dist/playground/lazy.d.ts +0 -2
- package/dist/playground/lazy.d.ts.map +0 -1
- package/dist/playground/status-info.d.ts +0 -8
- package/dist/playground/status-info.d.ts.map +0 -1
- package/dist/requests/generators/csharp.d.ts +0 -3
- package/dist/requests/generators/csharp.d.ts.map +0 -1
- package/dist/requests/generators/curl.d.ts +0 -3
- package/dist/requests/generators/curl.d.ts.map +0 -1
- package/dist/requests/generators/go.d.ts +0 -3
- package/dist/requests/generators/go.d.ts.map +0 -1
- package/dist/requests/generators/index.d.ts +0 -3
- package/dist/requests/generators/index.d.ts.map +0 -1
- package/dist/requests/generators/java.d.ts +0 -3
- package/dist/requests/generators/java.d.ts.map +0 -1
- package/dist/requests/generators/javascript.d.ts +0 -3
- package/dist/requests/generators/javascript.d.ts.map +0 -1
- package/dist/requests/generators/python.d.ts +0 -3
- package/dist/requests/generators/python.d.ts.map +0 -1
- package/dist/requests/media/resolve-adapter.d.ts +0 -19
- package/dist/requests/media/resolve-adapter.d.ts.map +0 -1
- package/dist/requests/string-utils.d.ts +0 -7
- package/dist/requests/string-utils.d.ts.map +0 -1
- package/dist/requests/to-python-object.d.ts +0 -2
- package/dist/requests/to-python-object.d.ts.map +0 -1
- package/dist/requests/types.js +0 -1
- package/dist/scalar/client.d.ts +0 -7
- package/dist/scalar/client.d.ts.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/ui/client/storage-key.d.ts +0 -9
- package/dist/ui/client/storage-key.d.ts.map +0 -1
- package/dist/ui/components/accordion.d.ts +0 -8
- package/dist/ui/components/accordion.d.ts.map +0 -1
- package/dist/ui/components/dialog.d.ts +0 -20
- package/dist/ui/components/dialog.d.ts.map +0 -1
- package/dist/ui/components/input.d.ts +0 -6
- package/dist/ui/components/input.d.ts.map +0 -1
- package/dist/ui/components/method-label.d.ts +0 -10
- package/dist/ui/components/method-label.d.ts.map +0 -1
- package/dist/ui/components/select.d.ts +0 -14
- package/dist/ui/components/select.d.ts.map +0 -1
- package/dist/ui/contexts/api.d.ts +0 -33
- package/dist/ui/contexts/api.d.ts.map +0 -1
- package/dist/ui/contexts/api.lazy.d.ts +0 -2
- package/dist/ui/contexts/api.lazy.d.ts.map +0 -1
- package/dist/ui/icons.d.ts +0 -49
- package/dist/ui/icons.d.ts.map +0 -1
- package/dist/ui/icons.js +0 -281
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/operation/client.d.ts +0 -19
- package/dist/ui/operation/client.d.ts.map +0 -1
- package/dist/ui/operation/index.d.ts +0 -12
- package/dist/ui/operation/index.d.ts.map +0 -1
- package/dist/ui/operation/usage-tabs/client.d.ts +0 -23
- package/dist/ui/operation/usage-tabs/client.d.ts.map +0 -1
- package/dist/ui/operation/usage-tabs/lazy.d.ts +0 -4
- package/dist/ui/operation/usage-tabs/lazy.d.ts.map +0 -1
- package/dist/ui/schema/lazy.d.ts +0 -2
- package/dist/ui/schema/lazy.d.ts.map +0 -1
- package/dist/utils/cn.d.ts +0 -2
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/deep-equal.d.ts +0 -2
- package/dist/utils/deep-equal.d.ts.map +0 -1
- package/dist/utils/get-typescript-schema.d.ts +0 -4
- package/dist/utils/get-typescript-schema.d.ts.map +0 -1
- package/dist/utils/id-to-title.d.ts +0 -2
- package/dist/utils/id-to-title.d.ts.map +0 -1
- package/dist/utils/lazy.d.ts +0 -5
- package/dist/utils/lazy.d.ts.map +0 -1
- package/dist/utils/merge-schema.d.ts +0 -7
- package/dist/utils/merge-schema.d.ts.map +0 -1
- package/dist/utils/pages/to-body.d.ts +0 -4
- package/dist/utils/pages/to-body.d.ts.map +0 -1
- package/dist/utils/pages/to-static-data.d.ts +0 -10
- package/dist/utils/pages/to-static-data.d.ts.map +0 -1
- package/dist/utils/remove-undefined.d.ts +0 -2
- package/dist/utils/remove-undefined.d.ts.map +0 -1
- package/dist/utils/schema-to-string.d.ts +0 -8
- package/dist/utils/schema-to-string.d.ts.map +0 -1
- package/dist/utils/url.d.ts +0 -11
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/use-query.d.ts +0 -8
- package/dist/utils/use-query.d.ts.map +0 -1
|
@@ -1,43 +1,39 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import { resolveMediaAdapter } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
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
|
-
|
|
1
|
+
//#region src/requests/media/adapter.d.ts
|
|
2
2
|
interface BaseContext {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
10
|
-
|
|
9
|
+
lang: 'go';
|
|
10
|
+
addImport: (name: string) => void;
|
|
11
11
|
}
|
|
12
12
|
interface JavaScriptContext extends BaseContext {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
lang: 'js';
|
|
14
|
+
addImport: (pkg: string, name: string) => void;
|
|
15
15
|
}
|
|
16
16
|
interface JavaContext extends BaseContext {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
lang: 'java';
|
|
18
|
+
addImport: (specifier: string) => void;
|
|
19
19
|
}
|
|
20
20
|
interface CSharpContext extends BaseContext {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
lang: 'csharp';
|
|
22
|
+
addImport: (specifier: string) => void;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
type MediaContext = JavaContext | GoContext | JavaScriptContext | CSharpContext | (BaseContext & {
|
|
25
|
+
lang: string;
|
|
26
26
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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","
|
|
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,EAAQ,OAAA,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,MAWW,EAAA,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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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","
|
|
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"}
|