mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-20 00:23:58 +01:00
166 lines
5.1 KiB
JavaScript
166 lines
5.1 KiB
JavaScript
function g(e, n) {
|
|
return console.log("IMPORTING Environment", e._id, e.name, JSON.stringify(e, null, 2)), {
|
|
id: e._id,
|
|
createdAt: new Date(e.created ?? Date.now()).toISOString().replace("Z", ""),
|
|
updatedAt: new Date(e.updated ?? Date.now()).toISOString().replace("Z", ""),
|
|
workspaceId: n,
|
|
model: "environment",
|
|
name: e.name,
|
|
variables: Object.entries(e.data).map(([t, a]) => ({
|
|
enabled: !0,
|
|
name: t,
|
|
value: `${a}`
|
|
}))
|
|
};
|
|
}
|
|
function S(e) {
|
|
return m(e) && e._type === "workspace";
|
|
}
|
|
function I(e) {
|
|
return m(e) && e._type === "request_group";
|
|
}
|
|
function y(e) {
|
|
return m(e) && e._type === "request";
|
|
}
|
|
function h(e) {
|
|
return m(e) && e._type === "grpc_request";
|
|
}
|
|
function f(e) {
|
|
return m(e) && e._type === "environment";
|
|
}
|
|
function m(e) {
|
|
return Object.prototype.toString.call(e) === "[object Object]";
|
|
}
|
|
function w(e) {
|
|
return Object.prototype.toString.call(e) === "[object String]";
|
|
}
|
|
function O(e) {
|
|
return Object.entries(e).map(([n, t]) => ({
|
|
enabled: !0,
|
|
name: n,
|
|
value: `${t}`
|
|
}));
|
|
}
|
|
function d(e) {
|
|
return w(e) ? e.replaceAll(/{{\s*(_\.)?([^}]+)\s*}}/g, "${[$2]}") : e;
|
|
}
|
|
function _(e, n, t = 0) {
|
|
var l, r;
|
|
console.log("IMPORTING REQUEST", e._id, e.name, JSON.stringify(e, null, 2));
|
|
let a = null, o = null;
|
|
((l = e.body) == null ? void 0 : l.mimeType) === "application/graphql" ? (a = "graphql", o = d(e.body.text)) : ((r = e.body) == null ? void 0 : r.mimeType) === "application/json" && (a = "application/json", o = d(e.body.text));
|
|
let s = null, p = {};
|
|
return e.authentication.type === "bearer" ? (s = "bearer", p = {
|
|
token: d(e.authentication.token)
|
|
}) : e.authentication.type === "basic" && (s = "basic", p = {
|
|
username: d(e.authentication.username),
|
|
password: d(e.authentication.password)
|
|
}), {
|
|
id: e._id,
|
|
createdAt: new Date(e.created ?? Date.now()).toISOString().replace("Z", ""),
|
|
updatedAt: new Date(e.updated ?? Date.now()).toISOString().replace("Z", ""),
|
|
workspaceId: n,
|
|
folderId: e.parentId === n ? null : e.parentId,
|
|
model: "http_request",
|
|
sortPriority: t,
|
|
name: e.name,
|
|
url: d(e.url),
|
|
body: o,
|
|
bodyType: a,
|
|
authentication: p,
|
|
authenticationType: s,
|
|
method: e.method,
|
|
headers: (e.headers ?? []).map(({ name: u, value: c, disabled: i }) => ({
|
|
enabled: !i,
|
|
name: u,
|
|
value: c
|
|
})).filter(({ name: u, value: c }) => u !== "" || c !== "")
|
|
};
|
|
}
|
|
function R(e, n) {
|
|
return console.log("IMPORTING FOLDER", e._id, e.name, JSON.stringify(e, null, 2)), {
|
|
id: e._id,
|
|
createdAt: new Date(e.created ?? Date.now()).toISOString().replace("Z", ""),
|
|
updatedAt: new Date(e.updated ?? Date.now()).toISOString().replace("Z", ""),
|
|
folderId: e.parentId === n ? null : e.parentId,
|
|
workspaceId: n,
|
|
model: "folder",
|
|
name: e.name
|
|
};
|
|
}
|
|
function D(e, n, t = 0) {
|
|
var p;
|
|
console.log("IMPORTING GRPC REQUEST", e._id, e.name, JSON.stringify(e, null, 2));
|
|
const a = e.protoMethodName.split("/").filter((l) => l !== ""), o = a[0] ?? null, s = a[1] ?? null;
|
|
return {
|
|
id: e._id,
|
|
createdAt: new Date(e.created ?? Date.now()).toISOString().replace("Z", ""),
|
|
updatedAt: new Date(e.updated ?? Date.now()).toISOString().replace("Z", ""),
|
|
workspaceId: n,
|
|
folderId: e.parentId === n ? null : e.parentId,
|
|
model: "grpc_request",
|
|
sortPriority: t,
|
|
name: e.name,
|
|
url: d(e.url),
|
|
service: o,
|
|
method: s,
|
|
message: ((p = e.body) == null ? void 0 : p.text) ?? "",
|
|
metadata: (e.metadata ?? []).map(({ name: l, value: r, disabled: u }) => ({
|
|
enabled: !u,
|
|
name: l,
|
|
value: r
|
|
})).filter(({ name: l, value: r }) => l !== "" || r !== "")
|
|
};
|
|
}
|
|
function q(e) {
|
|
let n;
|
|
try {
|
|
n = JSON.parse(e);
|
|
} catch {
|
|
return;
|
|
}
|
|
if (!m(n) || !Array.isArray(n.resources))
|
|
return;
|
|
const t = {
|
|
workspaces: [],
|
|
httpRequests: [],
|
|
grpcRequests: [],
|
|
environments: [],
|
|
folders: []
|
|
}, a = n.resources.filter(S);
|
|
for (const o of a) {
|
|
const s = n.resources.find(
|
|
(r) => f(r) && r.parentId === o._id
|
|
);
|
|
t.workspaces.push({
|
|
id: o._id,
|
|
createdAt: new Date(a.created ?? Date.now()).toISOString().replace("Z", ""),
|
|
updatedAt: new Date(a.updated ?? Date.now()).toISOString().replace("Z", ""),
|
|
model: "workspace",
|
|
name: o.name,
|
|
variables: s ? O(s.data) : []
|
|
});
|
|
const p = n.resources.filter(
|
|
(r) => f(r) && r.parentId === (s == null ? void 0 : s._id)
|
|
);
|
|
t.environments.push(
|
|
...p.map((r) => g(r, o._id))
|
|
);
|
|
const l = (r) => {
|
|
const u = n.resources.filter((i) => i.parentId === r);
|
|
let c = 0;
|
|
for (const i of u)
|
|
I(i) ? (t.folders.push(R(i, o._id)), l(i._id)) : y(i) ? t.httpRequests.push(
|
|
_(i, o._id, c++)
|
|
) : h(i) && (console.log("GRPC", JSON.stringify(i, null, 1)), t.grpcRequests.push(
|
|
D(i, o._id, c++)
|
|
));
|
|
};
|
|
l(o._id);
|
|
}
|
|
return t.httpRequests = t.httpRequests.filter(Boolean), t.grpcRequests = t.grpcRequests.filter(Boolean), t.environments = t.environments.filter(Boolean), t.workspaces = t.workspaces.filter(Boolean), { resources: t };
|
|
}
|
|
export {
|
|
q as pluginHookImport
|
|
};
|