UNPKG

azion

Version:

Azion Packages for Edge Computing.

2 lines (1 loc) 6.55 kB
var a=r=>r??process.env.AZION_TOKEN??"",l=r=>{let i=process.env.AZION_DEBUG&&process.env.AZION_DEBUG==="true";return typeof r>"u"||r===null?!!i:!!r};async function m(r,i,t,e=!0){let n=await fetch(r,i);if(!n.ok){let s=`HTTP error! Status: ${n.status} - ${n.statusText}`;throw t&&console.log(`Error in fetch: ${s}`),new Error(s)}if(e){let s=n.headers.get("content-type");if(!s||!s.includes("application/json")){let g=`Expected JSON response, but got: ${await n.text()}`;throw t&&console.log(`Error in fetch: ${g}`),new Error(g)}return await n.json()}else return await n.text()}var d=process.env.AZION_ENV==="stage"?"https://stage-api.azion.net/domains":"https://api.azionapi.net/domains",u=(r,i)=>{let t;return r.forEach(e=>{i[e]&&(t=Array.isArray(i[e])?i[e].join(", "):i[e])}),t??JSON.stringify(i)},p=r=>({Authorization:`Token ${r}`,Accept:"application/json; version=3","Content-Type":"application/json"}),A=async(r,i,{debug:t})=>{try{let e={name:i.name,cnames:i?.cnames??[],cname_access_only:i?.cnameAccessOnly??!1,digital_certificate_id:i?.digitalCertificateId??void 0,edge_application_id:i.edgeApplicationId,edge_firewall_id:i?.edgeFirewallId??void 0,is_active:!0};if(i?.mtls){if(i.mtls.verification!=="enforce"&&i.mtls.verification!=="permissive")throw new Error("mtls.verification must be enforce or permissive");e={...e,is_mtls_enabled:!0,mtls_verification:i.mtls.verification,mtls_trusted_ca_certificate_id:i.mtls.trustedCaCertificateId,crl_list:i.mtls.crlList}}let n=await m(d,{method:"POST",headers:p(r),body:JSON.stringify(e)},t);return n.results?n:{error:{message:u(["detail","edge_application_id"],n),operation:"create domain"}}}catch(e){return t&&console.error("Error creating Domain:",e),{error:{message:e.toString(),operation:"create domain"}}}},f=async(r,i,t)=>{try{let{page_size:e=10,page:n=1}=t||{},s=new URLSearchParams({page_size:String(e),page:String(n)}),c=await m(`${d}?${s.toString()}`,{method:"GET",headers:p(r)},i?.debug);return c.results?{...c,results:c.results.map(o=>({id:o.id,name:o.name,url:o.domain_name,environment:o.environment,active:o.is_active,edgeApplicationId:o.edge_application_id,cnameAccessOnly:o.cname_access_only,digitalCertificateId:o.digital_certificate_id,edgeFirewallId:o?.edge_firewall_id,cnames:o.cnames,mtls:o.is_mtls_enabled?{verification:o.mtls_verification,trustedCaCertificateId:o.mtls_trusted_ca_certificate_id,crlList:o.crl_list}:void 0}))}:{error:{message:u(["detail","edge_application_id"],c),operation:"list domains"}}}catch(e){return i?.debug&&console.error("Error listing Domains:",e),{error:{message:e.toString(),operation:"list domains"}}}},_=async(r,i,t)=>{try{let e=await m(`${d}/${i}`,{method:"GET",headers:p(r)},t?.debug);return e.results?e:{error:{message:u(["detail","edge_application_id"],e),operation:"get domain"}}}catch(e){return t?.debug&&console.error("Error getting Domain:",e),{error:{message:e.toString(),operation:"get domain"}}}},D=async(r,i,t,e)=>{try{let n={name:t.name,cnames:t?.cnames??[],cname_access_only:t?.cnameAccessOnly??!1,digital_certificate_id:t?.digitalCertificateId??void 0,edge_application_id:t.edgeApplicationId,edge_firewall_id:t?.edgeFirewallId??void 0,is_active:t.active??!0};if(t?.mtls){if(t.mtls.verification!=="enforce"&&t.mtls.verification!=="permissive")throw new Error("mtls.verification must be enforce or permissive");n={...n,is_mtls_enabled:!0,mtls_verification:t.mtls.verification,mtls_trusted_ca_certificate_id:t.mtls.trustedCaCertificateId,crl_list:t.mtls.crlList}}let s=await m(`${d}/${i}`,{method:"PUT",headers:p(r),body:JSON.stringify(n)},e?.debug);return s.results?s:{error:{message:u(["detail","edge_application_id"],s),operation:"update domain"}}}catch(n){return e?.debug&&console.error("Error updating Domain:",n),{error:{message:n.toString(),operation:"update domain"}}}},z=async(r,i,t)=>{try{return await m(`${d}/${i}`,{method:"DELETE",headers:p(r)},t?.debug,!1),{results:void 0}}catch(e){return t?.debug&&console.error("Error deleting Domain:",e),{error:{message:e.toString(),operation:"delete domain"}}}};var y=async(r,i,t)=>{if(i.name===void 0||i.edgeApplicationId===void 0)return{error:{message:"Domain name and Edge Application ID are required",operation:"create domain"}};let{results:e,error:n}=await A(a(r),i,{...t,debug:l(t?.debug)});return e&&e.id?{data:{state:"executed",id:e.id,name:e?.name,url:e?.domain_name,environment:e?.environment,active:e?.is_active}}:{error:n}},b=async(r,i,t)=>{let e=await f(a(r),t,i);return e.results?{data:{count:e.count??e.results.length,state:"executed",results:e.results,pages:e.total_pages??1}}:{error:e.error}},C=async(r,i,t)=>{let{results:e,error:n}=await _(a(r),i,{...t,debug:l(t?.debug)});return e&&e.id?{data:{state:"executed",id:e.id,name:e?.name,url:e?.domain_name,environment:e?.environment,active:e?.is_active,cnameAccessOnly:e?.cname_access_only,digitalCertificateId:e?.digital_certificate_id,cnames:e?.cnames,edgeApplicationId:e?.edge_application_id,edgeFirewallId:e?.edge_firewall_id,mtls:e?.is_mtls_enabled?{verification:e.mtls_verification,trustedCaCertificateId:e.mtls_trusted_ca_certificate_id,crlList:e.crl_list}:void 0}}:{error:n}},v=async(r,i,t,e)=>{if(t?.edgeApplicationId===void 0)return{error:{message:"Edge Application ID is required",operation:"update domain"}};let n=await D(a(r),i,t,{...e,debug:l(e?.debug)});return n?.results?.id?{data:{state:"executed",name:n?.results?.name,id:n?.results?.id,environment:n?.results?.environment,cnames:n?.results?.cnames,url:n?.results?.domain_name,active:n?.results?.is_active,cnameAccessOnly:n?.results?.cname_access_only,digitalCertificateId:n?.results?.digital_certificate_id,edgeApplicationId:n?.results?.edge_application_id,edgeFirewallId:n?.results?.edge_firewall_id,mtls:n?.results?.is_mtls_enabled?{verification:n?.results.mtls_verification,trustedCaCertificateId:n?.results.mtls_trusted_ca_certificate_id,crlList:n?.results.crl_list}:void 0}}:{error:n?.error}},h=async(r,i,t)=>{let{error:e}=await z(a(r),i,{...t,debug:l(t?.debug)});return e?{error:e}:{data:{state:"executed",id:i}}},S=async(r,i)=>y(a(),r,i),x=async(r,i)=>b(a(),i,r),T=async(r,i)=>C(a(),r,i),$=async(r,i,t)=>v(a(),r,i,t),L=async(r,i)=>h(a(),r,i),O=r=>{let i=a(r?.token),t=l(r?.options?.debug);return{createDomain:(n,s)=>y(i,n,{...s,debug:t}),getDomains:(n,s)=>b(i,s,{...n,debug:t}),getDomain:(n,s)=>C(i,n,{...s,debug:t}),updateDomain:(n,s,c)=>v(i,n,s,{...c,debug:t}),deleteDomain:(n,s)=>h(i,n,{...s,debug:t})}};var N=O;export{O as createClient,S as createDomain,N as default,L as deleteDomain,T as getDomain,x as getDomains,$ as updateDomain};