azion
Version:
Azion Packages for Edge Computing.
2 lines (1 loc) • 2.28 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=process.env.AZION_ENV==="stage"?"https://stage-api.azion.com/v4/workspace/purge":"https://api.azion.com/v4/workspace/purge",y=(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 f(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 m=async(s,r,o)=>i(`${c}/url`,s,r,o),w=async(s,r,o)=>i(`${c}/cachekey`,s,r,o),E=async(s,r,o)=>i(`${c}/wildcard`,s,r,o),i=async(s,r,o,e)=>{try{const t=await f(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=y(["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"}}}},R=process.env.AZION_DEBUG&&process.env.AZION_DEBUG==="true",a=s=>s??process.env.AZION_TOKEN??"",p=s=>s??!!R,g=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}},l=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}},d=async(s,r,o)=>{const e=await E(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),C=(s,r)=>l(a(),s,r),A=(s,r)=>d(a(),s,r),h=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)}};exports.createClient=h;exports.default=h;exports.purgeCacheKey=C;exports.purgeURL=v;exports.purgeWildCard=A;