UNPKG

azion

Version:

Azion Packages for Edge Computing.

85 lines (84 loc) 2.85 kB
const c = process.env.AZION_ENV === "stage" ? "https://stage-api.azion.com/v4/workspace/purge" : "https://api.azion.com/v4/workspace/purge", h = (s, r, o) => { let e = { message: "Error unknown", operation: o }; return s.forEach((t) => { r[t] && (e = { message: Array.isArray(r[t]) ? r[t].join(", ") : r[t], operation: o }); }), e; }; async function y(s, r, o, e = !0) { const t = await fetch(s, r); if (!t.ok) { const n = `HTTP error! Status: ${t.status} - ${t.statusText}`; throw o && console.log(`Error in fetch: ${n}`), new Error(n); } if (e) { const n = t.headers.get("content-type"); if (!n || !n.includes("application/json")) { const u = `Expected JSON response, but got: ${await t.text()}`; throw o && console.log(`Error in fetch: ${u}`), new Error(u); } return await t.json(); } else return await t.text(); } const f = async (s, r, o) => i(`${c}/url`, s, r, o), m = async (s, r, o) => i(`${c}/cachekey`, s, r, o), w = async (s, r, o) => i(`${c}/wildcard`, s, r, o), i = async (s, r, o, e) => { try { const t = await y( s, { method: "POST", headers: { Authorization: `Token ${r}`, "Content-Type": "application/json", Accept: "application/json; version=3" }, credentials: "include", body: JSON.stringify({ items: o, layer: "cache" }) }, e ); return t.data ? (e && console.log("Response:", t), t) : (e && console.log("Response Error:", t), t.error = h(["detail", "error", "items"], t, "post purge"), { error: t.error ?? JSON.stringify(t) }); } catch (t) { return e && console.error("Error purging:", t), { error: { message: t.toString(), operation: "post purge" } }; } }, E = process.env.AZION_DEBUG && process.env.AZION_DEBUG === "true", a = (s) => s ?? process.env.AZION_TOKEN ?? "", p = (s) => s ?? !!E, g = async (s, r, o) => { const e = await f(a(s), r, p(o?.debug)); return e?.data && e.state ? { data: { items: e.data.items, state: e.state } } : { error: e.error }; }, l = async (s, r, o) => { const e = await m(a(s), r, p(o?.debug)); return e?.data && e.state ? { data: { items: e.data.items, state: e.state } } : { error: e.error }; }, d = async (s, r, o) => { const e = await w(a(s), r, p(o?.debug)); return e?.data && e.state ? { data: { items: e.data.items, state: e.state } } : { error: e.error }; }, v = (s, r) => g(a(), s, r), A = (s, r) => l(a(), s, r), k = (s, r) => d(a(), s, r), N = (s) => { const r = a(s?.token); return { purgeURL: (e, t) => g(r, e, t), purgeCacheKey: (e, t) => l(r, e, t), purgeWildCard: (e, t) => d(r, e, t) }; }; export { N as createClient, N as default, A as purgeCacheKey, v as purgeURL, k as purgeWildCard };