UNPKG

@scalar/api-client

Version:

the open source API testing client

68 lines (67 loc) 2.35 kB
import { getResolvedRef as k } from "@scalar/workspace-store/helpers/get-resolved-ref"; import { filterGlobalCookie as q } from "../../../operation-block/helpers/filter-global-cookies.js"; import { getDefaultHeaders as T } from "../../../request-block/helpers/get-default-headers.js"; import { processBody as C } from "./process-body.js"; import { processParameters as H } from "./process-parameters.js"; import { processSecuritySchemes as z } from "./process-security-schemes.js"; import { processServerUrl as D } from "./process-server-url.js"; const w = ({ includeDefaultHeaders: u = !1, operation: t, contentType: f, method: l, path: p, server: c = null, example: a, securitySchemes: n, globalCookies: h }) => { const y = u ? T({ method: l, operation: t, exampleKey: a ?? "default", hideDisabledHeaders: !0 }).filter((e) => !e.isOverridden) : [], g = t["x-scalar-disable-parameters"]?.["global-cookies"]?.[a ?? "default"] ?? {}, v = D(c, p), r = { method: l, url: v, headers: y.map((e) => ({ name: e.name, value: e.defaultValue })), queryString: [], postData: void 0, httpVersion: "HTTP/1.1", cookies: [], headersSize: -1, bodySize: -1 }; if (t.parameters) { const { url: e, headers: s, queryString: o, cookies: S } = H({ harRequest: r, parameters: t.parameters, example: a }), b = h?.filter((i) => q({ cookie: i, url: e, disabledGlobalCookies: g }))?.map((i) => ({ name: i.name, value: i.value })) ?? []; r.url = e, r.headers = s, r.queryString = o, r.cookies = [...b, ...S]; } const d = k(t.requestBody); if (d?.content) { const e = C({ requestBody: d, contentType: f, example: a }); if (e && (r.postData = e, r.bodySize = e.text?.length ?? -1, e.mimeType)) { const s = r.headers.find( (o) => o.name.toLowerCase() === "content-type" ); s && !s.value ? s.value = e.mimeType : s || r.headers.push({ name: "Content-Type", value: e.mimeType }); } } if (n) { const { headers: e, queryString: s, cookies: o } = z(n); r.headers.push(...e), r.queryString.push(...s), r.cookies.push(...o); } let m = 0; for (const e of r.headers) m += (e.name?.length ?? 0) + 2 + (e.value?.length ?? 0) + 2; return r.headersSize = m, r; }; export { w as operationToHar };