azion
Version:
Azion Packages for Edge Computing.
2 lines (1 loc) • 2.14 kB
JavaScript
var a=process.env.AZION_ENV==="stage"?"https://stage-api.azion.com/v4/edge/purge":"https://api.azion.com/v4/edge/purge",z=(n,r,o)=>{let e={message:"Error unknown",operation:o};return n.forEach(t=>{r[t]&&(e={message:Array.isArray(r[t])?r[t].join(", "):r[t],operation:o})}),e};async function y(n,r,o,e=!0){let t=await fetch(n,r);if(!t.ok){let s=`HTTP error! Status: ${t.status} - ${t.statusText}`;throw o&&console.log(`Error in fetch: ${s}`),new Error(s)}if(e){let s=t.headers.get("content-type");if(!s||!s.includes("application/json")){let 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()}var c=async(n,r,o)=>p(`${a}/url`,n,r,o),l=async(n,r,o)=>p(`${a}/cachekey`,n,r,o),P=async(n,r,o)=>p(`${a}/wildcard`,n,r,o),p=async(n,r,o,e)=>{try{let t=await y(n,{method:"POST",headers:{Authorization:`Token ${r}`,"Content-Type":"application/json",Accept:"application/json; version=3"},credentials:"include",body:JSON.stringify({items:o,layer:"edge_cache"})},e);return t.data?(e&&console.log("Response:",t),t):(e&&console.log("Response Error:",t),t.error=z(["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"}}}};var C=process.env.AZION_DEBUG&&process.env.AZION_DEBUG==="true",i=n=>n??process.env.AZION_TOKEN??"",g=n=>n??!!C,A=async(n,r,o)=>{let e=await c(i(n),r,g(o?.debug));return e?.data&&e.state?{data:{items:e.data.items,state:e.state}}:{error:e.error}},d=async(n,r,o)=>{let e=await l(i(n),r,g(o?.debug));return e?.data&&e.state?{data:{items:e.data.items,state:e.state}}:{error:e.error}},m=async(n,r,o)=>{let e=await P(i(n),r,g(o?.debug));return e?.data&&e.state?{data:{items:e.data.items,state:e.state}}:{error:e.error}},w=(n,r)=>A(i(),n,r),b=(n,r)=>d(i(),n,r),v=(n,r)=>m(i(),n,r),R=n=>{let r=i(n?.token);return{purgeURL:(e,t)=>A(r,e,t),purgeCacheKey:(e,t)=>d(r,e,t),purgeWildCard:(e,t)=>m(r,e,t)}};var x=R;export{R as createClient,x as default,b as purgeCacheKey,w as purgeURL,v as purgeWildCard};