@scalar/api-client
Version:
the open source API testing client
53 lines (52 loc) • 1.41 kB
JavaScript
import { requestExampleSchema as m, collectionSchema as l } from "@scalar/oas-utils/entities/spec";
import { workspaceSchema as u } from "@scalar/oas-utils/entities/workspace";
import { LS_KEYS as f } from "@scalar/helpers/object/local-storage";
import { mutationFactory as k } from "@scalar/object-utils/mutator-record";
import { reactive as d } from "vue";
import { createInitialRequest as h } from "./requests.js";
function D(o) {
const e = d({}), r = k(e, d({}), o && f.WORKSPACE);
return {
workspaces: e,
workspaceMutators: r
};
}
function F({
workspaces: o,
workspaceMutators: e,
collectionMutators: r,
requestMutators: i,
requestExampleMutators: p
}) {
return {
addWorkspace: (a = {}) => {
const { request: t } = h(), c = m.parse({
name: "Example",
requestUid: t.uid
});
t.examples.push(c.uid);
const s = l.parse({
info: {
title: "Drafts"
},
children: [t.uid],
requests: [t.uid]
}), n = u.parse({
...a,
collections: [s.uid]
});
return p.add(c), i.add(t), r.add(s), e.add(n), n;
},
deleteWorkspace: (a) => {
if (Object.keys(o).length <= 1) {
console.warn("The last workspace cannot be deleted.");
return;
}
e.delete(a);
}
};
}
export {
D as createStoreWorkspaces,
F as extendedWorkspaceDataFactory
};