@scalar/api-client
Version:
the open source API testing client
56 lines (55 loc) • 1.57 kB
JavaScript
import { securitySchemeSchema as m } from "@scalar/oas-utils/entities/spec";
import { LS_KEYS as d } from "@scalar/helpers/object/local-storage";
import { mutationFactory as a } from "@scalar/object-utils/mutator-record";
import { reactive as y } from "vue";
function l(u) {
const c = y({}), i = a(
c,
y({}),
u && d.SECURITY_SCHEME
);
return {
securitySchemes: c,
securitySchemeMutators: i
};
}
function b({
securitySchemeMutators: u,
collectionMutators: c,
collections: i,
requests: S,
requestMutators: s
}) {
return {
addSecurityScheme: (r, e) => {
const t = m.parse(r);
return u.add(t), e && i[e] && c.edit(e, "securitySchemes", [
...i[e].securitySchemes,
t.uid
]), t;
},
deleteSecurityScheme: (r) => {
Object.values(i).forEach((e) => {
e.securitySchemes.includes(r) && c.edit(
e.uid,
"securitySchemes",
e.securitySchemes.filter((t) => t !== r)
);
}), Object.values(S).forEach((e) => {
e.security?.some((t) => Object.keys(t).includes(r)) && s.edit(
e.uid,
"security",
S[e.uid]?.security?.filter((t) => !Object.keys(t).includes(r))
), e.selectedSecuritySchemeUids.flat().includes(r) && s.edit(
e.uid,
"selectedSecuritySchemeUids",
e.selectedSecuritySchemeUids?.filter((t) => Array.isArray(t) ? !t.includes(r) : t !== r)
);
}), u.delete(r);
}
};
}
export {
l as createStoreSecuritySchemes,
b as extendedSecurityDataFactory
};