@scalar/api-client
Version:
the open source API testing client
48 lines (47 loc) • 1.29 kB
JavaScript
import { createExampleFromRequest as c } from "@scalar/oas-utils/entities/spec";
import { LS_KEYS as x } from "@scalar/helpers/object/local-storage";
import { iterateTitle as u } from "@scalar/helpers/string/iterate-title";
import { mutationFactory as E } from "@scalar/object-utils/mutator-record";
import { reactive as n } from "vue";
function T(o) {
const t = n({}), m = E(
t,
n({}),
o && x.REQUEST_EXAMPLE
);
return {
requestExamples: t,
requestExampleMutators: m
};
}
function _({
requestExamples: o,
requestExampleMutators: t,
requestMutators: m,
requests: p
}) {
return {
addRequestExample: (e, a) => {
const r = a ?? u(
(e.summary ?? "Example") + " #1",
(l) => e.examples.some((s) => {
var d;
return ((d = o[s]) == null ? void 0 : d.name) === l;
})
), i = c(e, r);
return t.add(i), m.edit(e.uid, "examples", [...e.examples, i.uid]), i;
},
deleteRequestExample: (e) => {
var a;
e.requestUid && (m.edit(
e.requestUid,
"examples",
((a = p[e.requestUid]) == null ? void 0 : a.examples.filter((r) => r !== e.uid)) || []
), t.delete(e.uid));
}
};
}
export {
T as createStoreRequestExamples,
_ as extendedExampleDataFactory
};