@scalar/api-client
Version:
the open source API testing client
44 lines (43 loc) • 1.18 kB
JavaScript
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
};