@scalar/api-client
Version:
the open source API testing client
137 lines (136 loc) • 5.01 kB
JavaScript
import { defineComponent as I, ref as D, computed as B, useTemplateRef as O, createElementBlock as V, openBlock as W, Fragment as L, createElementVNode as r, createVNode as o, withCtx as i, toDisplayString as m, unref as c, normalizeClass as M } from "vue";
import { ScalarListbox as P, ScalarButton as j, ScalarIcon as z } from "@scalar/components";
import { REGEX as F } from "@scalar/oas-utils/helpers";
import { emitCustomEvent as N } from "@scalar/workspace-store/events";
import { useRouter as T } from "vue-router";
import $ from "./CommandActionForm.vue.js";
import A from "../HttpMethod/HttpMethod.vue.js";
import { PathId as p } from "../../routes.js";
import { useActiveEntities as G } from "../../store/active-entities.js";
import { useWorkspace as H } from "../../store/store.js";
const X = { class: "flex h-9 flex-row items-center gap-2 rounded border p-[3px] text-sm" }, J = { class: "flex h-full" }, K = { class: "scroll-timeline-x whitespace-nowrap" }, Q = { class: "flex" }, ie = /* @__PURE__ */ I({
__name: "CommandPaletteImportCurl",
props: {
metaData: {}
},
emits: ["close", "back"],
setup(e, { emit: x }) {
const w = x, b = H(), { activeWorkspaceCollections: f, activeCollection: S, activeWorkspace: v } = G(), { requestMutators: k, serverMutators: q, servers: R } = b, d = D(""), U = T(), n = B(
() => f.value.map((t) => ({
id: t.uid,
label: t.info?.title ?? "Unititled Collection"
}))
), l = D(
e.metaData.collectionUid ? n.value.find(
(t) => t.id === e.metaData.collectionUid
) : n.value.find(
(t) => t.id === S.value?.uid
)
);
function g({ collectionUid: t }) {
if (!e.metaData.parsedCurl)
return;
const a = f.value.find(
(u) => u.uid === t
);
if (!a)
return;
const s = a?.info?.title === "Drafts";
if (!s && e.metaData.parsedCurl.servers) {
const u = Object.values(R).find(
(y) => y.url === e.metaData.parsedCurl?.servers?.[0]
);
u ? d.value = u.uid : (d.value = q.add(
{ url: e.metaData.parsedCurl.servers[0] ?? "/" },
a.uid
).uid, N(E.value?.$el, "scalar-add-server", {
server: { url: e.metaData.parsedCurl.servers[0] ?? "/" },
options: {
disableOldStoreUpdate: !0
}
}));
}
const h = k.add(
{
summary: s ? e.metaData.parsedCurl?.url?.replace(F.PROTOCOL, "") : e.metaData.parsedCurl?.path,
path: s ? e.metaData.parsedCurl?.url : e.metaData.parsedCurl?.path,
method: e.metaData.parsedCurl?.method,
parameters: e.metaData.parsedCurl?.parameters,
selectedServerUid: s ? void 0 : d.value,
requestBody: e.metaData.parsedCurl?.requestBody
},
a.uid
);
h && v.value?.uid && U.push({
name: "request",
params: {
[p.Workspace]: v.value.uid,
[p.Collection]: a.uid,
[p.Request]: h.uid
}
}), w("close");
}
const C = () => {
g({
collectionUid: l.value?.id ?? ""
});
}, E = O("wrapper-ref");
return (t, a) => (W(), V(L, null, [
a[1] || (a[1] = r("div", { class: "text-c-2 flex-center py-1.5 text-sm" }, "Import cURL", -1)),
o($, {
ref: "wrapper-ref",
class: "mt-1.5 min-h-fit",
onSubmit: C
}, {
options: i(() => [
r("div", Q, [
o(c(P), {
modelValue: l.value,
"onUpdate:modelValue": a[0] || (a[0] = (s) => l.value = s),
options: n.value
}, {
default: i(() => [
o(c(j), {
class: "hover:bg-b-2 max-h-8 w-full justify-between gap-1 p-2 text-xs",
variant: "outlined"
}, {
default: i(() => [
r("span", {
class: M(["whitespace-nowrap", l.value ? "text-c-1" : "text-c-3"])
}, m(l.value ? l.value.label : "Select Collection"), 3),
o(c(z), {
class: "text-c-3",
icon: "ChevronDown",
size: "md"
})
]),
_: 1
})
]),
_: 1
}, 8, ["modelValue", "options"])
])
]),
submit: i(() => [
r("span", { onClick: C }, "Import Request")
]),
default: i(() => [
r("div", X, [
r("div", J, [
o(A, {
isEditable: !1,
isSquare: "",
method: t.metaData.parsedCurl?.method || "get"
}, null, 8, ["method"])
]),
r("span", K, m(t.metaData.parsedCurl?.servers?.[0] || "") + m(t.metaData.parsedCurl?.path || ""), 1)
])
]),
_: 1
}, 512)
], 64));
}
});
export {
ie as default
};