UNPKG

@elysiajs/eden

Version:

Fully type-safe Elysia client

2 lines (1 loc) 1.01 kB
import{a as y,b as p}from"./chunk-XYW4OUFN.mjs";var g=async t=>{switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":return t.json();case"application/octet-stream":return t.arrayBuffer();case"multipart/form-data":{let e=await t.formData(),n={};return e.forEach((c,a)=>{n[a]=c}),n}}return t.text().then(p)},T=async(t,r)=>{let e=await g(t);return t.status>300?{data:null,status:t.status,headers:t.headers,retry:r,error:new y(t.status,e)}:{data:e,error:null,status:t.status,headers:t.headers,retry:r}},w=(t,r)=>(e,{query:n,params:c,body:a,...s}={})=>{c&&Object.entries(c).forEach(([o,E])=>{e=e.replace(`:${o}`,E)});let i=s.headers?.["Content-Type"];if(!i||i==="application/json")try{a=JSON.stringify(a)}catch{}let f=r?.fetcher||globalThis.fetch,d=n?`?${new URLSearchParams(n).toString()}`:"",u=`${t}${e}${d}`,l=a?{"content-type":"application/json",...s.headers}:s.headers,m={...s,method:s.method?.toUpperCase()||"GET",headers:l,body:a},h=()=>f(u,m).then(o=>T(o,h));return h()};export{w as a};