UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

53 lines (47 loc) 1.64 kB
'use client'; import { ident } from "../string-utils.js"; import { resolveMediaAdapter } from "../media/resolve-adapter.js"; import "../media/adapter.js"; //#region src/requests/generators/go.ts const generator = (url, data, { mediaAdapters }) => { const imports = [ "fmt", "net/http", "io/ioutil" ]; const headers = /* @__PURE__ */ new Map(); const variables = /* @__PURE__ */ new Map(); variables.set("url", JSON.stringify(url)); for (const header in data.header) headers.set(header, JSON.stringify(data.header[header].value)); const cookies = Object.entries(data.cookie); if (cookies.length > 0) headers.set("Cookie", JSON.stringify(cookies.map(([k, param]) => `${k}=${param.value}`).join("; "))); let body; if (data.body && data.bodyMediaType) { const adapter = resolveMediaAdapter(data.bodyMediaType, mediaAdapters); headers.set("Content-Type", `"${data.bodyMediaType}"`); body = adapter?.generateExample(data, { lang: "go", addImport(from) { imports.push(from); } }); } return `package main import ( ${ident(imports.map((v) => `"${v}"`).join("\n"))} ) func main() { ${Array.from(variables.entries()).map(([k, v]) => ident(`${k} := ${v}`)).join("\n")} ${body ? ident(body) : ""} req, _ := http.NewRequest("${data.method}", url, ${body ? "body" : "nil"}) ${ident(Array.from(headers.entries()).map(([key, value]) => `req.Header.Add("${key}", ${value})`).join("\n"))} res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }`; }; //#endregion export { generator }; //# sourceMappingURL=go.js.map