@scalar/api-client
Version:
the open source API testing client
145 lines (144 loc) • 5.02 kB
JavaScript
import { createStoreCollections as L, extendedCollectionDataFactory as R } from "./collections.js";
import { createStoreCookies as ee } from "./cookies.js";
import { createStoreEnvironments as te, extendedEnvironmentDataFactory as re } from "./environment.js";
import { createStoreEvents as oe } from "./events.js";
import { importSpecFileFactory as se } from "./import-spec.js";
import { createStoreRequestExamples as de, extendedExampleDataFactory as ae } from "./request-example.js";
import { createStoreRequests as ne, extendedRequestDataFactory as ce } from "./requests.js";
import { createStoreSecuritySchemes as ie, extendedSecurityDataFactory as me } from "./security-schemes.js";
import { createStoreServers as le, extendedServerDataFactory as pe } from "./servers.js";
import { createStoreTags as ue, extendedTagDataFactory as ve } from "./tags.js";
import { createStoreWorkspaces as Se, extendedWorkspaceDataFactory as fe } from "./workspace.js";
import { useModal as ye } from "@scalar/components";
import { inject as Ee, reactive as Me, ref as xe, toRaw as r } from "vue";
const ge = ({
useLocalStorage: e = !0,
showSidebar: C = !0,
proxyUrl: a,
theme: y,
hideClientButton: D = !1,
_integration: A
}) => {
const { collections: n, collectionMutators: c } = L(e), { tags: i, tagMutators: m } = ue(e), { requests: l, requestMutators: p } = ne(e), { requestExamples: u, requestExampleMutators: v } = de(e), { cookies: E, cookieMutators: b } = ee(e), { environments: M, environmentMutators: x } = te(e), { servers: q, serverMutators: S } = le(e), { securitySchemes: w, securitySchemeMutators: f } = ie(e), { workspaces: d, workspaceMutators: o } = Se(e), t = {
collections: n,
collectionMutators: c,
tags: i,
tagMutators: m,
requests: l,
requestMutators: p,
requestExamples: u,
requestExampleMutators: v,
environmentMutators: x,
serverMutators: S,
securitySchemeMutators: f,
workspaces: d,
workspaceMutators: o
}, { addTag: k, deleteTag: T } = ve(t), { addRequest: I, deleteRequest: O, findRequestParents: g } = ce(t, k), { deleteEnvironment: j } = re(t), { addServer: P, deleteServer: B } = pe(t), { addCollection: H, deleteCollection: K } = R(t), { addRequestExample: Y, deleteRequestExample: _ } = ae(t), { addWorkspace: z, deleteWorkspace: G } = fe(t), { addSecurityScheme: J, deleteSecurityScheme: N } = me(t), { addCollectionEnvironment: h, removeCollectionEnvironment: F } = R(t), Q = Me([]), { importSpecFile: U, importSpecFromUrl: V } = se(t), W = xe((e ? localStorage == null ? void 0 : localStorage.getItem("sidebarWidth") : void 0) || "280px"), X = (s) => {
W.value = s, e && (localStorage == null || localStorage.setItem("sidebarWidth", s));
}, Z = ye();
Object.values(d).forEach(({ uid: s }) => {
a && o.edit(s, "proxyUrl", a), y && o.edit(s, "themeId", y);
}), typeof window < "u" && (window.dataDump = () => ({
collections: r(n),
cookies: r(E),
environments: r(M),
requestExamples: r(u),
requests: r(l),
securitySchemes: r(w),
servers: r(q),
tags: r(i),
workspaces: r(d)
}));
const $ = oe();
return {
// ---------------------------------------------------------------------------
// STATE
workspaces: d,
collections: n,
tags: i,
cookies: E,
environments: M,
requestExamples: u,
requests: l,
servers: q,
securitySchemes: w,
modalState: Z,
events: $,
sidebarWidth: W,
setSidebarWidth: X,
proxyUrl: a,
// ---------------------------------------------------------------------------
// CONFIGURATION "PROPS"
// TODO: move these to their own store
hideClientButton: D,
showSidebar: C,
integration: A,
// ---------------------------------------------------------------------------
// METHODS
importSpecFile: U,
importSpecFromUrl: V,
cookieMutators: b,
collectionMutators: {
...c,
rawAdd: c.add,
add: H,
delete: K,
addEnvironment: h,
removeEnvironment: F
},
environmentMutators: {
...x,
delete: j
},
requestMutators: {
...p,
rawAdd: p.add,
add: I,
delete: O
},
findRequestParents: g,
requestExampleMutators: {
...v,
rawAdd: v.add,
add: Y,
delete: _
},
requestHistory: Q,
securitySchemeMutators: {
...f,
rawAdd: f.add,
add: J,
delete: N
},
serverMutators: {
...S,
rawAdd: S.add,
add: P,
delete: B
},
tagMutators: {
...m,
rawAdd: m.add,
add: k,
delete: T
},
workspaceMutators: {
...o,
rawAdd: o.add,
add: z,
delete: G
},
addCollectionEnvironment: h,
removeCollectionEnvironment: F
};
}, qe = Symbol(), je = () => {
const e = Ee(qe);
if (!e)
throw new Error("Workspace store not provided");
return e;
};
export {
qe as WORKSPACE_SYMBOL,
ge as createWorkspaceStore,
je as useWorkspace
};