UNPKG

@scalar/api-client

Version:

the open source API testing client

145 lines (144 loc) 5.02 kB
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 };