@userfrosting/sprinkle-core
Version:
Core Sprinkle for UserFrosting
69 lines (68 loc) • 2.31 kB
JavaScript
import { ref as l, watchEffect as S } from "vue";
import { a as f, u as A } from "./useAlertsStore-Ca6nXz8C.js";
import u from "axios";
import "vue-router";
import { S as b } from "./severity-DwLpzIij.js";
const K = () => {
const e = l(h()), n = l(y()), a = l(d(e.value)), s = l(d(n.value));
function i() {
u.defaults.headers.post[e.value] = a.value, u.defaults.headers.post[n.value] = s.value, u.defaults.headers.put[e.value] = a.value, u.defaults.headers.put[n.value] = s.value, u.defaults.headers.delete[e.value] = a.value, u.defaults.headers.delete[n.value] = s.value, u.defaults.headers.patch[e.value] = a.value, u.defaults.headers.patch[n.value] = s.value;
}
async function g() {
const t = await u.get("/api/csrf");
v(t.headers);
}
function h() {
return f().get("csrf.name", "csrf") + "_name";
}
function y() {
return f().get("csrf.name", "csrf") + "_value";
}
function d(t) {
var o;
return ((o = document.querySelector("meta[name='" + t + "']")) == null ? void 0 : o.getAttribute("content")) ?? "";
}
function m(t, o) {
const c = document.querySelector("meta[name='" + t + "']");
if (c)
c.setAttribute("content", o);
else {
const r = document.createElement("meta");
r.setAttribute("name", t), r.setAttribute("content", o), document.head.appendChild(r);
}
}
function v(t) {
const o = f(), c = o.get("csrf.name", "csrf") + "-name", r = o.get("csrf.name", "csrf") + "-value";
c in t && (a.value = t[c]), r in t && (s.value = t[r]);
}
function p() {
return f().get("csrf.enabled", !0);
}
return S(() => {
p() && a.value !== "" && s.value !== "" && (m(e.value, a.value), m(n.value, s.value), i());
}), {
key_name: e,
key_value: n,
name: a,
token: s,
isEnabled: p,
updateFromHeaders: v,
fetchCsrfToken: g
};
}, _ = () => {
u.interceptors.response.use(
(e) => e,
(e) => {
var n, a, s;
return e.response.status !== 401 && A().push({
title: e.response.data.title ?? ((n = e.response) == null ? void 0 : n.statusText),
description: ((s = (a = e.response) == null ? void 0 : a.data) == null ? void 0 : s.description) ?? e.message,
style: b.Danger
}), Promise.reject(e);
}
);
};
export {
K as a,
_ as u
};