UNPKG

@scalar/api-client

Version:

the open source API testing client

44 lines (43 loc) 1.18 kB
import { createExampleFromRequest as s } from "@scalar/oas-utils/entities/spec"; import { LS_KEYS as c } from "@scalar/helpers/object/local-storage"; import { iterateTitle as x } from "@scalar/helpers/string/iterate-title"; import { mutationFactory as u } from "@scalar/object-utils/mutator-record"; import { reactive as i } from "vue"; function L(a) { const t = i({}), m = u( t, i({}), a && c.REQUEST_EXAMPLE ); return { requestExamples: t, requestExampleMutators: m }; } function T({ requestExamples: a, requestExampleMutators: t, requestMutators: m, requests: d }) { return { addRequestExample: (e, o) => { const n = o ?? x( (e.summary ?? "Example") + " #1", (p) => e.examples.some((l) => a[l]?.name === p) ), r = s(e, n); return t.add(r), m.edit(e.uid, "examples", [...e.examples, r.uid]), r; }, deleteRequestExample: (e) => { e.requestUid && (m.edit( e.requestUid, "examples", d[e.requestUid]?.examples.filter((o) => o !== e.uid) || [] ), t.delete(e.uid)); } }; } export { L as createStoreRequestExamples, T as extendedExampleDataFactory };