@elysiajs/eden 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2022 saltyAom
1
+ Copyright 2023 saltyAom
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
@@ -0,0 +1 @@
1
+ import{a as W}from"./chunk-Y6SMVGJX.mjs";var T=(s,e,t)=>{if(s.endsWith("/")||(s+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${s}${e}`;let r="";for(let[f,n]of Object.entries(t))r+=`${f}=${n}&`;return`${s}${e}?${r.slice(0,-1)}`};var $=typeof FileList>"u",K=s=>$?s instanceof Blob:s instanceof FileList||s instanceof File,C=s=>{if(!s)return!1;for(let e in s){if(K(s[e]))return!0;if(Array.isArray(s[e])&&s[e].find(t=>K(t)))return!0}return!1},k=s=>$?s:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],s.name,{lastModified:s.lastModified,type:s.type});e(r)},t.readAsArrayBuffer(s)}),x=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,f=>{if(e==="message"){let n=f.data.toString(),u=n.charCodeAt(0);if(u===47||u===123)try{n=JSON.parse(n)}catch{}else Number.isNaN(+n)?n==="true"?n=!0:n==="fase"&&(n=!1):n=+n;t({...f,data:n})}else t(f)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},R=(s,e="",t)=>new Proxy(()=>{},{get(r,f,n){return R(s,`${e}/${f.toString()}`,t)},apply(r,f,[n,u={}]=[{},{}]){let y=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:N,$fetch:F,$headers:j,$transform:E,...M}=n??{};y??=M;let S=e.lastIndexOf("/"),b=e.slice(S+1).toUpperCase(),v=T(s,S===-1?"/":e.slice(0,S),Object.assign(u.query??{},N)),I=t.fetcher??fetch,h=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,w=E?Array.isArray(E)?E:[E]:void 0;return w&&(h?h=w.concat(h):h=w),b==="SUBSCRIBE"?new x(v.replace(/^([^]+):\/\//,v.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,O={...t.$fetch?.headers,...F?.headers,...u.headers,...j};if(b!=="GET"&&b!=="HEAD"){c=Object.keys(y).length||Array.isArray(y)?y:void 0;let i=typeof c=="object"||Array.isArray(y);if(i&&C(c)){let m=new FormData;for(let[g,o]of Object.entries(c))if($)m.append(g,o);else if(o instanceof File)m.append(g,await k(o));else if(o instanceof FileList)for(let l=0;l<o.length;l++)m.append(g,await k(o[l]));else if(Array.isArray(o))for(let l=0;l<o.length;l++){let A=o[l];m.append(g,A instanceof File?k(A):A)}else m.append(g,o);c=m}else O["content-type"]=i?"application/json":"text/plain",c=i?JSON.stringify(c):y}let a=await I(v,{method:b,body:c,...t.$fetch,...u.fetch,...F,headers:O}),p;switch(a.headers.get("Content-Type")?.split(";")[0]){case"application/json":p=await a.json();break;default:p=await a.text().then(i=>Number.isNaN(+i)?i==="true"?!0:i==="false"?!1:i:+i)}let L=a.status>=300||a.status<200?new W(a.status,p):null;if(h)for(let i of h){let d=i({data:p,status:a.status,headers:a.headers,response:a,error:L});d instanceof Promise&&(d=await d),d!=null&&(p=d)}return{data:p,error:L,response:a,status:a.status,headers:a.headers}})()}}),B=(s,e={fetcher:fetch})=>new Proxy({},{get(t,r){return R(s,r,e)}});export{x as a,B as b};
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var F=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(n,e)=>{for(var t in e)F(n,t,{get:e[t],enumerable:!0})},D=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of P(e))!I.call(n,a)&&a!==t&&F(n,a,{get:()=>e[a],enumerable:!(s=B(e,a))||s.enumerable});return n};var J=n=>D(F({},"__esModule",{value:!0}),n);var V={};M(V,{edenFetch:()=>R,edenTreaty:()=>j});var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var $=typeof FileList>"u",N=n=>$?n instanceof Blob:n instanceof FileList||n instanceof File,U=n=>{if(!n)return!1;for(let e in n){if(N(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>N(t)))return!0}return!1},C=n=>$?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),A=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),c=r.charCodeAt(0);if(c===47||c===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},K=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return K(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:c,$headers:w,$transform:m,...v}={$fetch:void 0,$headers:void 0,$query:void 0,$transform:void 0}]=[{}]){let d=e.lastIndexOf("/"),i=e.slice(d+1).toUpperCase(),u=W(n,d===-1?"/":e.slice(0,d),r),l=t.fetcher??fetch,E=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=m?Array.isArray(m)?m:[m]:void 0;return k&&(E?E=k.concat(E):E=k),i==="SUBSCRIBE"?new A(u.replace(/^([^]+):\/\//,u.startsWith("https://")?"wss://":"ws://")):(async()=>{let y,L={...t.$fetch?.headers,...c?.headers,...w};if(i!=="GET"&&i!=="HEAD"){y=Object.keys(v).length?v:void 0;let f=typeof y=="object";if(f&&U(y)){let b=new FormData;for(let[x,h]of Object.entries(y))if($)b.append(x,h);else if(h instanceof File)b.append(x,await C(h));else if(h instanceof FileList)for(let T=0;T<h.length;T++)b.append(x,await C(h[T]));else b.append(x,h);y=b}else L["content-type"]=f?"application/json":"text/plain",f&&(y=JSON.stringify(y))}let o=await l(u,{method:i,body:y,...t.$fetch,...c,headers:L}),g;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await o.json();break;default:g=await o.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}let O=o.status>=300||o.status<200?new S(o.status,g):null;if(E)for(let f of E){let p=f({data:g,status:o.status,headers:o.headers,response:o,error:O});p instanceof Promise&&(p=await p),p!=null&&(g=p)}return{data:g,error:O,response:o,status:o.status,headers:o.headers}})()}}),j=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return K(n,s,e)}});var R=(n,e)=>(t,{query:s,params:a,body:r,...c}={})=>{a&&Object.entries(a).forEach(([i,u])=>{t=t.replace(`:${i}`,u)});let w=c.headers?.["Content-Type"];if(!w||w==="application/json")try{r=JSON.stringify(r)}catch{}let m=e?.fetcher||globalThis.fetch,v=s?`?${new URLSearchParams(s).toString()}`:"",d=()=>m(n+t+v,{...c,method:c.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...c.headers}:c.headers,body:r}).then(async i=>{let u;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await i.json();break;default:u=await i.text().then(l=>Number.isNaN(+l)?l==="true"?!0:l==="false"?!1:l:+l);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:d,error:new S(i.status,u)}:{data:u,error:null,status:i.status,headers:i.headers,retry:d}});return d()};return J(V);})();
1
+ "use strict";var Eden=(()=>{var O=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(r,e)=>{for(var t in e)O(r,t,{get:e[t],enumerable:!0})},z=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!U.call(r,a)&&a!==t&&O(r,a,{get:()=>e[a],enumerable:!(n=D(e,a))||n.enumerable});return r};var B=r=>z(O({},"__esModule",{value:!0}),r);var H={};V(H,{edenFetch:()=>P,edenTreaty:()=>I});var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var C=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(let[a,s]of Object.entries(t))n+=`${a}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`};var N=typeof FileList>"u",K=r=>N?r instanceof Blob:r instanceof FileList||r instanceof File,G=r=>{if(!r)return!1;for(let e in r){if(K(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>K(t)))return!0}return!1},j=r=>N?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let n=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(n)},t.readAsArrayBuffer(r)}),L=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,n){return this.addEventListener(e,t,n)}off(e,t,n){return this.ws.removeEventListener(e,t,n),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,n){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),o=s.charCodeAt(0);if(o===47||o===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...a,data:s})}else t(a)},n),this}removeEventListener(e,t,n){return this.off(e,t,n),this}close(){return this.ws.close(),this}},M=(r,e="",t)=>new Proxy(()=>{},{get(n,a,s){return M(r,`${e}/${a.toString()}`,t)},apply(n,a,[s,o={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:A,$fetch:x,$headers:w,$transform:i,...l}=s??{};y??=l;let d=e.lastIndexOf("/"),k=e.slice(d+1).toUpperCase(),F=C(r,d===-1?"/":e.slice(0,d),Object.assign(o.query??{},A)),q=t.fetcher??fetch,E=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,$=i?Array.isArray(i)?i:[i]:void 0;return $&&(E?E=$.concat(E):E=$),k==="SUBSCRIBE"?new L(F.replace(/^([^]+):\/\//,F.startsWith("https://")?"wss://":"ws://")):(async()=>{let p,W={...t.$fetch?.headers,...x?.headers,...o.headers,...w};if(k!=="GET"&&k!=="HEAD"){p=Object.keys(y).length||Array.isArray(y)?y:void 0;let f=typeof p=="object"||Array.isArray(y);if(f&&G(p)){let b=new FormData;for(let[v,u]of Object.entries(p))if(N)b.append(v,u);else if(u instanceof File)b.append(v,await j(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)b.append(v,await j(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let T=u[m];b.append(v,T instanceof File?j(T):T)}else b.append(v,u);p=b}else W["content-type"]=f?"application/json":"text/plain",p=f?JSON.stringify(p):y}let c=await q(F,{method:k,body:p,...t.$fetch,...o.fetch,...x,headers:W}),g;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await c.json();break;default:g=await c.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}let R=c.status>=300||c.status<200?new S(c.status,g):null;if(E)for(let f of E){let h=f({data:g,status:c.status,headers:c.headers,response:c,error:R});h instanceof Promise&&(h=await h),h!=null&&(g=h)}return{data:g,error:R,response:c,status:c.status,headers:c.headers}})()}}),I=(r,e={fetcher:fetch})=>new Proxy({},{get(t,n){return M(r,n,e)}});var P=(r,e)=>(t,{query:n,params:a,body:s,...o}={})=>{a&&Object.entries(a).forEach(([i,l])=>{t=t.replace(`:${i}`,l)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{s=JSON.stringify(s)}catch{}let A=e?.fetcher||globalThis.fetch,x=n?`?${new URLSearchParams(n).toString()}`:"",w=()=>A(r+t+x,{...o,method:o.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...o.headers}:o.headers,body:s}).then(async i=>{let l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(d=>Number.isNaN(+d)?d==="true"?!0:d==="false"?!1:d:+d);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:w,error:new S(i.status,l)}:{data:l,error:null,status:i.status,headers:i.headers,retry:w}});return w()};return B(H);})();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var F=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(n,e)=>{for(var t in e)F(n,t,{get:e[t],enumerable:!0})},D=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of P(e))!I.call(n,a)&&a!==t&&F(n,a,{get:()=>e[a],enumerable:!(s=B(e,a))||s.enumerable});return n};var J=n=>D(F({},"__esModule",{value:!0}),n);var V={};M(V,{edenFetch:()=>R,edenTreaty:()=>j});module.exports=J(V);var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var $=typeof FileList>"u",N=n=>$?n instanceof Blob:n instanceof FileList||n instanceof File,U=n=>{if(!n)return!1;for(let e in n){if(N(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>N(t)))return!0}return!1},C=n=>$?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),A=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),c=r.charCodeAt(0);if(c===47||c===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},K=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return K(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:c,$headers:w,$transform:m,...v}={$fetch:void 0,$headers:void 0,$query:void 0,$transform:void 0}]=[{}]){let d=e.lastIndexOf("/"),i=e.slice(d+1).toUpperCase(),u=W(n,d===-1?"/":e.slice(0,d),r),l=t.fetcher??fetch,E=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=m?Array.isArray(m)?m:[m]:void 0;return k&&(E?E=k.concat(E):E=k),i==="SUBSCRIBE"?new A(u.replace(/^([^]+):\/\//,u.startsWith("https://")?"wss://":"ws://")):(async()=>{let y,L={...t.$fetch?.headers,...c?.headers,...w};if(i!=="GET"&&i!=="HEAD"){y=Object.keys(v).length?v:void 0;let f=typeof y=="object";if(f&&U(y)){let b=new FormData;for(let[x,h]of Object.entries(y))if($)b.append(x,h);else if(h instanceof File)b.append(x,await C(h));else if(h instanceof FileList)for(let T=0;T<h.length;T++)b.append(x,await C(h[T]));else b.append(x,h);y=b}else L["content-type"]=f?"application/json":"text/plain",f&&(y=JSON.stringify(y))}let o=await l(u,{method:i,body:y,...t.$fetch,...c,headers:L}),g;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await o.json();break;default:g=await o.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}let O=o.status>=300||o.status<200?new S(o.status,g):null;if(E)for(let f of E){let p=f({data:g,status:o.status,headers:o.headers,response:o,error:O});p instanceof Promise&&(p=await p),p!=null&&(g=p)}return{data:g,error:O,response:o,status:o.status,headers:o.headers}})()}}),j=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return K(n,s,e)}});var R=(n,e)=>(t,{query:s,params:a,body:r,...c}={})=>{a&&Object.entries(a).forEach(([i,u])=>{t=t.replace(`:${i}`,u)});let w=c.headers?.["Content-Type"];if(!w||w==="application/json")try{r=JSON.stringify(r)}catch{}let m=e?.fetcher||globalThis.fetch,v=s?`?${new URLSearchParams(s).toString()}`:"",d=()=>m(n+t+v,{...c,method:c.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...c.headers}:c.headers,body:r}).then(async i=>{let u;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":u=await i.json();break;default:u=await i.text().then(l=>Number.isNaN(+l)?l==="true"?!0:l==="false"?!1:l:+l);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:d,error:new S(i.status,u)}:{data:u,error:null,status:i.status,headers:i.headers,retry:d}});return d()};0&&(module.exports={edenFetch,edenTreaty});
1
+ "use strict";var O=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(r,e)=>{for(var t in e)O(r,t,{get:e[t],enumerable:!0})},z=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!U.call(r,a)&&a!==t&&O(r,a,{get:()=>e[a],enumerable:!(n=D(e,a))||n.enumerable});return r};var B=r=>z(O({},"__esModule",{value:!0}),r);var H={};V(H,{edenFetch:()=>P,edenTreaty:()=>I});module.exports=B(H);var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var C=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(let[a,s]of Object.entries(t))n+=`${a}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`};var N=typeof FileList>"u",K=r=>N?r instanceof Blob:r instanceof FileList||r instanceof File,G=r=>{if(!r)return!1;for(let e in r){if(K(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>K(t)))return!0}return!1},j=r=>N?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let n=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(n)},t.readAsArrayBuffer(r)}),L=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,n){return this.addEventListener(e,t,n)}off(e,t,n){return this.ws.removeEventListener(e,t,n),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,n){return this.ws.addEventListener(e,a=>{if(e==="message"){let s=a.data.toString(),o=s.charCodeAt(0);if(o===47||o===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...a,data:s})}else t(a)},n),this}removeEventListener(e,t,n){return this.off(e,t,n),this}close(){return this.ws.close(),this}},M=(r,e="",t)=>new Proxy(()=>{},{get(n,a,s){return M(r,`${e}/${a.toString()}`,t)},apply(n,a,[s,o={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:A,$fetch:x,$headers:w,$transform:i,...l}=s??{};y??=l;let d=e.lastIndexOf("/"),k=e.slice(d+1).toUpperCase(),F=C(r,d===-1?"/":e.slice(0,d),Object.assign(o.query??{},A)),q=t.fetcher??fetch,E=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,$=i?Array.isArray(i)?i:[i]:void 0;return $&&(E?E=$.concat(E):E=$),k==="SUBSCRIBE"?new L(F.replace(/^([^]+):\/\//,F.startsWith("https://")?"wss://":"ws://")):(async()=>{let p,W={...t.$fetch?.headers,...x?.headers,...o.headers,...w};if(k!=="GET"&&k!=="HEAD"){p=Object.keys(y).length||Array.isArray(y)?y:void 0;let f=typeof p=="object"||Array.isArray(y);if(f&&G(p)){let b=new FormData;for(let[v,u]of Object.entries(p))if(N)b.append(v,u);else if(u instanceof File)b.append(v,await j(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)b.append(v,await j(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let T=u[m];b.append(v,T instanceof File?j(T):T)}else b.append(v,u);p=b}else W["content-type"]=f?"application/json":"text/plain",p=f?JSON.stringify(p):y}let c=await q(F,{method:k,body:p,...t.$fetch,...o.fetch,...x,headers:W}),g;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await c.json();break;default:g=await c.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}let R=c.status>=300||c.status<200?new S(c.status,g):null;if(E)for(let f of E){let h=f({data:g,status:c.status,headers:c.headers,response:c,error:R});h instanceof Promise&&(h=await h),h!=null&&(g=h)}return{data:g,error:R,response:c,status:c.status,headers:c.headers}})()}}),I=(r,e={fetcher:fetch})=>new Proxy({},{get(t,n){return M(r,n,e)}});var P=(r,e)=>(t,{query:n,params:a,body:s,...o}={})=>{a&&Object.entries(a).forEach(([i,l])=>{t=t.replace(`:${i}`,l)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{s=JSON.stringify(s)}catch{}let A=e?.fetcher||globalThis.fetch,x=n?`?${new URLSearchParams(n).toString()}`:"",w=()=>A(r+t+x,{...o,method:o.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...o.headers}:o.headers,body:s}).then(async i=>{let l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(d=>Number.isNaN(+d)?d==="true"?!0:d==="false"?!1:d:+d);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:w,error:new S(i.status,l)}:{data:l,error:null,status:i.status,headers:i.headers,retry:w}});return w()};0&&(module.exports={edenFetch,edenTreaty});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as e}from"./chunk-2G5RO3ND.mjs";import{a as t}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{t as edenFetch,e as edenTreaty};
1
+ import{b as e}from"./chunk-VFBRC7KF.mjs";import{a as t}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{t as edenFetch,e as edenTreaty};
@@ -8,9 +8,6 @@ type Replace<RecordType, TargetType, GenericType> = {
8
8
  [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
9
9
  };
10
10
  type Split<S extends string> = S extends `${infer Head}/${infer Tail}` ? Head extends '' ? Tail extends '' ? [] : Split<Tail> : [Head, ...Split<Tail>] : S extends `/` ? [] : S extends `${infer Head}/` ? [Head] : [S];
11
- type Prettify<T> = {
12
- [K in keyof T]: T[K];
13
- } & {};
14
11
  type AnySchema = {
15
12
  body: unknown;
16
13
  headers: unknown;
@@ -75,11 +72,17 @@ export declare namespace EdenTreaty {
75
72
  $params: undefined;
76
73
  $headers: undefined;
77
74
  $query: undefined;
78
- } extends Params ? (params?: Prettify<Params & {
79
- $transform?: EdenTreaty.Transform<Response>;
80
- }>) => Response : (params: Prettify<Params & {
81
- $transform?: EdenTreaty.Transform<Response>;
82
- }>) => Response : never : never;
75
+ } extends Params ? (params?: Params, options?: {
76
+ fetch?: RequestInit;
77
+ transform?: EdenTreaty.Transform<Response>;
78
+ query?: Params['query'];
79
+ headers?: Params['headers'];
80
+ }) => Response : (params: Params, options?: {
81
+ fetch?: RequestInit;
82
+ transform?: EdenTreaty.Transform<Response>;
83
+ query?: Params['query'];
84
+ headers?: Params['headers'];
85
+ }) => Response : never : never;
83
86
  } : {};
84
87
  export interface OnMessage<Data = unknown> extends MessageEvent {
85
88
  data: Data;
package/dist/treaty.d.mts CHANGED
@@ -8,9 +8,6 @@ type Replace<RecordType, TargetType, GenericType> = {
8
8
  [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
9
9
  };
10
10
  type Split<S extends string> = S extends `${infer Head}/${infer Tail}` ? Head extends '' ? Tail extends '' ? [] : Split<Tail> : [Head, ...Split<Tail>] : S extends `/` ? [] : S extends `${infer Head}/` ? [Head] : [S];
11
- type Prettify<T> = {
12
- [K in keyof T]: T[K];
13
- } & {};
14
11
  type AnySchema = {
15
12
  body: unknown;
16
13
  headers: unknown;
@@ -75,11 +72,17 @@ declare namespace EdenTreaty {
75
72
  $params: undefined;
76
73
  $headers: undefined;
77
74
  $query: undefined;
78
- } extends Params ? (params?: Prettify<Params & {
79
- $transform?: EdenTreaty.Transform<Response>;
80
- }>) => Response : (params: Prettify<Params & {
81
- $transform?: EdenTreaty.Transform<Response>;
82
- }>) => Response : never : never;
75
+ } extends Params ? (params?: Params, options?: {
76
+ fetch?: RequestInit;
77
+ transform?: EdenTreaty.Transform<Response>;
78
+ query?: Params['query'];
79
+ headers?: Params['headers'];
80
+ }) => Response : (params: Params, options?: {
81
+ fetch?: RequestInit;
82
+ transform?: EdenTreaty.Transform<Response>;
83
+ query?: Params['query'];
84
+ headers?: Params['headers'];
85
+ }) => Response : never : never;
83
86
  } : {};
84
87
  export interface OnMessage<Data = unknown> extends MessageEvent {
85
88
  data: Data;
package/dist/treaty.d.ts CHANGED
@@ -8,9 +8,6 @@ type Replace<RecordType, TargetType, GenericType> = {
8
8
  [K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
9
9
  };
10
10
  type Split<S extends string> = S extends `${infer Head}/${infer Tail}` ? Head extends '' ? Tail extends '' ? [] : Split<Tail> : [Head, ...Split<Tail>] : S extends `/` ? [] : S extends `${infer Head}/` ? [Head] : [S];
11
- type Prettify<T> = {
12
- [K in keyof T]: T[K];
13
- } & {};
14
11
  type AnySchema = {
15
12
  body: unknown;
16
13
  headers: unknown;
@@ -75,11 +72,17 @@ declare namespace EdenTreaty {
75
72
  $params: undefined;
76
73
  $headers: undefined;
77
74
  $query: undefined;
78
- } extends Params ? (params?: Prettify<Params & {
79
- $transform?: EdenTreaty.Transform<Response>;
80
- }>) => Response : (params: Prettify<Params & {
81
- $transform?: EdenTreaty.Transform<Response>;
82
- }>) => Response : never : never;
75
+ } extends Params ? (params?: Params, options?: {
76
+ fetch?: RequestInit;
77
+ transform?: EdenTreaty.Transform<Response>;
78
+ query?: Params['query'];
79
+ headers?: Params['headers'];
80
+ }) => Response : (params: Params, options?: {
81
+ fetch?: RequestInit;
82
+ transform?: EdenTreaty.Transform<Response>;
83
+ query?: Params['query'];
84
+ headers?: Params['headers'];
85
+ }) => Response : never : never;
83
86
  } : {};
84
87
  export interface OnMessage<Data = unknown> extends MessageEvent {
85
88
  data: Data;
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var x=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},P=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of C(e))!I.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=B(e,a))||s.enumerable});return n};var j=n=>P(x({},"__esModule",{value:!0}),n);var V={};M(V,{EdenWS:()=>v,edenTreaty:()=>J});var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var A=typeof FileList>"u",O=n=>A?n instanceof Blob:n instanceof FileList||n instanceof File,D=n=>{if(!n)return!1;for(let e in n){if(O(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>O(t)))return!0}return!1},F=n=>A?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),v=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),y=r.charCodeAt(0);if(y===47||y===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},K=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return K(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:y,$headers:N,$transform:h,...$}={$fetch:void 0,$headers:void 0,$query:void 0,$transform:void 0}]=[{}]){let g=e.lastIndexOf("/"),m=e.slice(g+1).toUpperCase(),b=W(n,g===-1?"/":e.slice(0,g),r),R=t.fetcher??fetch,d=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,w=h?Array.isArray(h)?h:[h]:void 0;return w&&(d?d=w.concat(d):d=w),m==="SUBSCRIBE"?new v(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async()=>{let f,L={...t.$fetch?.headers,...y?.headers,...N};if(m!=="GET"&&m!=="HEAD"){f=Object.keys($).length?$:void 0;let o=typeof f=="object";if(o&&D(f)){let p=new FormData;for(let[E,u]of Object.entries(f))if(A)p.append(E,u);else if(u instanceof File)p.append(E,await F(u));else if(u instanceof FileList)for(let k=0;k<u.length;k++)p.append(E,await F(u[k]));else p.append(E,u);f=p}else L["content-type"]=o?"application/json":"text/plain",o&&(f=JSON.stringify(f))}let i=await R(b,{method:m,body:f,...t.$fetch,...y,headers:L}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}let T=i.status>=300||i.status<200?new S(i.status,l):null;if(d)for(let o of d){let c=o({data:l,status:i.status,headers:i.headers,response:i,error:T});c instanceof Promise&&(c=await c),c!=null&&(l=c)}return{data:l,error:T,response:i,status:i.status,headers:i.headers}})()}}),J=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return K(n,s,e)}});return j(V);})();
1
+ "use strict";var Eden=(()=>{var $=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var J=(s,e)=>{for(var t in e)$(s,t,{get:e[t],enumerable:!0})},V=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of q(e))!D.call(s,a)&&a!==t&&$(s,a,{get:()=>e[a],enumerable:!(r=P(e,a))||r.enumerable});return s};var z=s=>V($({},"__esModule",{value:!0}),s);var U={};J(U,{EdenWS:()=>v,edenTreaty:()=>H});var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(s,e,t)=>{if(s.endsWith("/")||(s+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${s}${e}`;let r="";for(let[a,n]of Object.entries(t))r+=`${a}=${n}&`;return`${s}${e}?${r.slice(0,-1)}`};var O=typeof FileList>"u",R=s=>O?s instanceof Blob:s instanceof FileList||s instanceof File,B=s=>{if(!s)return!1;for(let e in s){if(R(s[e]))return!0;if(Array.isArray(s[e])&&s[e].find(t=>R(t)))return!0}return!1},F=s=>O?s:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],s.name,{lastModified:s.lastModified,type:s.type});e(r)},t.readAsArrayBuffer(s)}),v=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let n=a.data.toString(),l=n.charCodeAt(0);if(l===47||l===123)try{n=JSON.parse(n)}catch{}else Number.isNaN(+n)?n==="true"?n=!0:n==="fase"&&(n=!1):n=+n;t({...a,data:n})}else t(a)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},j=(s,e="",t)=>new Proxy(()=>{},{get(r,a,n){return j(s,`${e}/${a.toString()}`,t)},apply(r,a,[n,l={}]=[{},{}]){let u=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:N,$fetch:L,$headers:M,$transform:E,...I}=n??{};u??=I;let w=e.lastIndexOf("/"),b=e.slice(w+1).toUpperCase(),k=K(s,w===-1?"/":e.slice(0,w),Object.assign(l.query??{},N)),C=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,A=E?Array.isArray(E)?E:[E]:void 0;return A&&(p?p=A.concat(p):p=A),b==="SUBSCRIBE"?new v(k.replace(/^([^]+):\/\//,k.startsWith("https://")?"wss://":"ws://")):(async()=>{let f,W={...t.$fetch?.headers,...L?.headers,...l.headers,...M};if(b!=="GET"&&b!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let o=typeof f=="object"||Array.isArray(u);if(o&&B(f)){let m=new FormData;for(let[g,c]of Object.entries(f))if(O)m.append(g,c);else if(c instanceof File)m.append(g,await F(c));else if(c instanceof FileList)for(let y=0;y<c.length;y++)m.append(g,await F(c[y]));else if(Array.isArray(c))for(let y=0;y<c.length;y++){let x=c[y];m.append(g,x instanceof File?F(x):x)}else m.append(g,c);f=m}else W["content-type"]=o?"application/json":"text/plain",f=o?JSON.stringify(f):u}let i=await C(k,{method:b,body:f,...t.$fetch,...l.fetch,...L,headers:W}),h;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await i.json();break;default:h=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}let T=i.status>=300||i.status<200?new S(i.status,h):null;if(p)for(let o of p){let d=o({data:h,status:i.status,headers:i.headers,response:i,error:T});d instanceof Promise&&(d=await d),d!=null&&(h=d)}return{data:h,error:T,response:i,status:i.status,headers:i.headers}})()}}),H=(s,e={fetcher:fetch})=>new Proxy({},{get(t,r){return j(s,r,e)}});return z(U);})();
package/dist/treaty.js CHANGED
@@ -1 +1 @@
1
- "use strict";var x=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},P=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of C(e))!I.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=B(e,a))||s.enumerable});return n};var j=n=>P(x({},"__esModule",{value:!0}),n);var V={};M(V,{EdenWS:()=>v,edenTreaty:()=>J});module.exports=j(V);var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var A=typeof FileList>"u",O=n=>A?n instanceof Blob:n instanceof FileList||n instanceof File,D=n=>{if(!n)return!1;for(let e in n){if(O(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>O(t)))return!0}return!1},F=n=>A?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),v=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),y=r.charCodeAt(0);if(y===47||y===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},K=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return K(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:y,$headers:N,$transform:h,...$}={$fetch:void 0,$headers:void 0,$query:void 0,$transform:void 0}]=[{}]){let g=e.lastIndexOf("/"),m=e.slice(g+1).toUpperCase(),b=W(n,g===-1?"/":e.slice(0,g),r),R=t.fetcher??fetch,d=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,w=h?Array.isArray(h)?h:[h]:void 0;return w&&(d?d=w.concat(d):d=w),m==="SUBSCRIBE"?new v(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async()=>{let f,L={...t.$fetch?.headers,...y?.headers,...N};if(m!=="GET"&&m!=="HEAD"){f=Object.keys($).length?$:void 0;let o=typeof f=="object";if(o&&D(f)){let p=new FormData;for(let[E,u]of Object.entries(f))if(A)p.append(E,u);else if(u instanceof File)p.append(E,await F(u));else if(u instanceof FileList)for(let k=0;k<u.length;k++)p.append(E,await F(u[k]));else p.append(E,u);f=p}else L["content-type"]=o?"application/json":"text/plain",o&&(f=JSON.stringify(f))}let i=await R(b,{method:m,body:f,...t.$fetch,...y,headers:L}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}let T=i.status>=300||i.status<200?new S(i.status,l):null;if(d)for(let o of d){let c=o({data:l,status:i.status,headers:i.headers,response:i,error:T});c instanceof Promise&&(c=await c),c!=null&&(l=c)}return{data:l,error:T,response:i,status:i.status,headers:i.headers}})()}}),J=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return K(n,s,e)}});0&&(module.exports={EdenWS,edenTreaty});
1
+ "use strict";var $=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var J=(s,e)=>{for(var t in e)$(s,t,{get:e[t],enumerable:!0})},V=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of q(e))!D.call(s,a)&&a!==t&&$(s,a,{get:()=>e[a],enumerable:!(r=P(e,a))||r.enumerable});return s};var z=s=>V($({},"__esModule",{value:!0}),s);var U={};J(U,{EdenWS:()=>v,edenTreaty:()=>H});module.exports=z(U);var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(s,e,t)=>{if(s.endsWith("/")||(s+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${s}${e}`;let r="";for(let[a,n]of Object.entries(t))r+=`${a}=${n}&`;return`${s}${e}?${r.slice(0,-1)}`};var O=typeof FileList>"u",R=s=>O?s instanceof Blob:s instanceof FileList||s instanceof File,B=s=>{if(!s)return!1;for(let e in s){if(R(s[e]))return!0;if(Array.isArray(s[e])&&s[e].find(t=>R(t)))return!0}return!1},F=s=>O?s:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],s.name,{lastModified:s.lastModified,type:s.type});e(r)},t.readAsArrayBuffer(s)}),v=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,a=>{if(e==="message"){let n=a.data.toString(),l=n.charCodeAt(0);if(l===47||l===123)try{n=JSON.parse(n)}catch{}else Number.isNaN(+n)?n==="true"?n=!0:n==="fase"&&(n=!1):n=+n;t({...a,data:n})}else t(a)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},j=(s,e="",t)=>new Proxy(()=>{},{get(r,a,n){return j(s,`${e}/${a.toString()}`,t)},apply(r,a,[n,l={}]=[{},{}]){let u=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:N,$fetch:L,$headers:M,$transform:E,...I}=n??{};u??=I;let w=e.lastIndexOf("/"),b=e.slice(w+1).toUpperCase(),k=K(s,w===-1?"/":e.slice(0,w),Object.assign(l.query??{},N)),C=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,A=E?Array.isArray(E)?E:[E]:void 0;return A&&(p?p=A.concat(p):p=A),b==="SUBSCRIBE"?new v(k.replace(/^([^]+):\/\//,k.startsWith("https://")?"wss://":"ws://")):(async()=>{let f,W={...t.$fetch?.headers,...L?.headers,...l.headers,...M};if(b!=="GET"&&b!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let o=typeof f=="object"||Array.isArray(u);if(o&&B(f)){let m=new FormData;for(let[g,c]of Object.entries(f))if(O)m.append(g,c);else if(c instanceof File)m.append(g,await F(c));else if(c instanceof FileList)for(let y=0;y<c.length;y++)m.append(g,await F(c[y]));else if(Array.isArray(c))for(let y=0;y<c.length;y++){let x=c[y];m.append(g,x instanceof File?F(x):x)}else m.append(g,c);f=m}else W["content-type"]=o?"application/json":"text/plain",f=o?JSON.stringify(f):u}let i=await C(k,{method:b,body:f,...t.$fetch,...l.fetch,...L,headers:W}),h;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await i.json();break;default:h=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}let T=i.status>=300||i.status<200?new S(i.status,h):null;if(p)for(let o of p){let d=o({data:h,status:i.status,headers:i.headers,response:i,error:T});d instanceof Promise&&(d=await d),d!=null&&(h=d)}return{data:h,error:T,response:i,status:i.status,headers:i.headers}})()}}),H=(s,e={fetcher:fetch})=>new Proxy({},{get(t,r){return j(s,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
package/dist/treaty.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-2G5RO3ND.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
1
+ import{a,b}from"./chunk-VFBRC7KF.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
package/package.json CHANGED
@@ -1,79 +1,75 @@
1
1
  {
2
- "name": "@elysiajs/eden",
3
- "version": "0.7.4",
4
- "description": "Fully type-safe Elysia client",
5
- "author": {
6
- "name": "saltyAom",
7
- "url": "https://github.com/SaltyAom",
8
- "email": "saltyaom@gmail.com"
9
- },
10
- "main": "./dist/index.js",
11
- "exports": {
12
- ".": {
13
- "require": "./dist/index.js",
14
- "import": "./dist/index.mjs",
15
- "node": "./dist/index.js",
16
- "default": "./dist/index.js",
17
- "types": "./dist/index.d.ts"
2
+ "name": "@elysiajs/eden",
3
+ "version": "0.7.6",
4
+ "description": "Fully type-safe Elysia client",
5
+ "author": {
6
+ "name": "saltyAom",
7
+ "url": "https://github.com/SaltyAom",
8
+ "email": "saltyaom@gmail.com"
18
9
  },
19
- "./treaty": {
20
- "require": "./dist/treaty.js",
21
- "import": "./dist/treaty.mjs",
22
- "node": "./dist/treaty.js",
23
- "default": "./dist/treaty.js",
24
- "types": "./dist/treaty/index.d.ts"
10
+ "main": "./dist/index.js",
11
+ "exports": {
12
+ ".": {
13
+ "require": "./dist/index.js",
14
+ "import": "./dist/index.mjs",
15
+ "node": "./dist/index.js",
16
+ "default": "./dist/index.js",
17
+ "types": "./dist/index.d.ts"
18
+ },
19
+ "./treaty": {
20
+ "require": "./dist/treaty.js",
21
+ "import": "./dist/treaty.mjs",
22
+ "node": "./dist/treaty.js",
23
+ "default": "./dist/treaty.js",
24
+ "types": "./dist/treaty/index.d.ts"
25
+ },
26
+ "./fetch": {
27
+ "require": "./dist/fetch.js",
28
+ "import": "./dist/fetch.mjs",
29
+ "node": "./dist/fetch.js",
30
+ "default": "./dist/fetch.js",
31
+ "types": "./dist/fetch/index.d.ts"
32
+ }
25
33
  },
26
- "./fetch": {
27
- "require": "./dist/fetch.js",
28
- "import": "./dist/fetch.mjs",
29
- "node": "./dist/fetch.js",
30
- "default": "./dist/fetch.js",
31
- "types": "./dist/fetch/index.d.ts"
32
- }
33
- },
34
- "types": "./src/index.ts",
35
- "keywords": [
36
- "elysia",
37
- "eden",
38
- "connector"
39
- ],
40
- "homepage": "https://github.com/elysiajs/eden",
41
- "repository": {
42
- "type": "git",
43
- "url": "https://github.com/elysiajs/eden"
44
- },
45
- "bugs": "https://github.com/elysiajs/eden/issues",
46
- "license": "MIT",
47
- "scripts": {
48
- "dev": "bun run --watch example/index.ts",
49
- "test": "bun test",
50
- "build": "rimraf dist && tsup",
51
- "release": "npm run build && npm run test && npm publish --access public"
52
- },
53
- "peerDependencies": {
54
- "elysia": ">= 0.7.0"
55
- },
56
- "peerDependenciesMeta": {
57
- "@sinclair/typebox": {
58
- "optional": true
34
+ "types": "./src/index.ts",
35
+ "keywords": ["elysia", "eden", "connector"],
36
+ "homepage": "https://github.com/elysiajs/eden",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/elysiajs/eden"
40
+ },
41
+ "bugs": "https://github.com/elysiajs/eden/issues",
42
+ "license": "MIT",
43
+ "scripts": {
44
+ "dev": "bun run --watch example/index.ts",
45
+ "test": "bun test",
46
+ "build": "rimraf dist && tsup",
47
+ "release": "npm run build && npm run test && npm publish --access public"
48
+ },
49
+ "peerDependencies": {
50
+ "elysia": ">= 0.7.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "@sinclair/typebox": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "devDependencies": {
58
+ "@elysiajs/cors": "0.7.0",
59
+ "@sinclair/typebox": "^0.31.6",
60
+ "@types/node": "^18.15.5",
61
+ "bun-types": "^1.0.1",
62
+ "elysia": "^0.7.15",
63
+ "esbuild": "^0.19.3",
64
+ "eslint": "^8.26.0",
65
+ "rimraf": "^4.4.1",
66
+ "tsup": "^7.2.0",
67
+ "typescript": "^5.2.2"
68
+ },
69
+ "prettier": {
70
+ "semi": false,
71
+ "tabWidth": 4,
72
+ "singleQuote": true,
73
+ "trailingComma": "none"
59
74
  }
60
- },
61
- "devDependencies": {
62
- "@elysiajs/cors": "0.7.0",
63
- "@sinclair/typebox": "^0.31.6",
64
- "@types/node": "^18.15.5",
65
- "bun-types": "^1.0.1",
66
- "elysia": "^0.7.15",
67
- "esbuild": "^0.19.3",
68
- "eslint": "^8.26.0",
69
- "rimraf": "^4.4.1",
70
- "tsup": "^7.2.0",
71
- "typescript": "^5.2.2"
72
- },
73
- "prettier": {
74
- "semi": false,
75
- "tabWidth": 4,
76
- "singleQuote": true,
77
- "trailingComma": "none"
78
- }
79
75
  }
@@ -37,15 +37,19 @@ const hasFile = (obj: Record<string, any>) => {
37
37
  }
38
38
 
39
39
  // @ts-ignore
40
- const fileToBlob = (v: File) =>
40
+ const createNewFile = (v: File) =>
41
41
  isServer
42
42
  ? v
43
- : new Promise<Blob>((resolve) => {
43
+ : new Promise<File>((resolve) => {
44
44
  // @ts-ignore
45
45
  const reader = new FileReader()
46
46
 
47
47
  reader.onload = () => {
48
- resolve(new Blob([reader.result!], { type: v.type }))
48
+ const file = new File([reader.result!], v.name, {
49
+ lastModified: v.lastModified,
50
+ type: v.type
51
+ })
52
+ resolve(file)
49
53
  }
50
54
 
51
55
  reader.readAsArrayBuffer(v)
@@ -161,30 +165,42 @@ const createProxy = (
161
165
  get(target, key, value) {
162
166
  return createProxy(domain, `${path}/${key.toString()}`, config)
163
167
  },
168
+ // @ts-ignore
164
169
  apply(
165
170
  target,
166
171
  _,
167
- [
168
- { $query, $fetch, $headers, $transform, ...bodyObj } = {
169
- $fetch: undefined,
170
- $headers: undefined,
171
- $query: undefined,
172
- $transform: undefined
172
+ [initialBody, options = {}]: [
173
+ {
174
+ [x: string]: any
175
+ $fetch?: RequestInit
176
+ $headers?: HeadersInit
177
+ $query?: Record<string, string>
178
+ },
179
+ {
180
+ fetch?: RequestInit
181
+ transform?: EdenTreaty.Transform
182
+ headers?: Record<string, string>
183
+ query?: Record<string, string | number>
173
184
  }
174
- ]: {
175
- [x: string]: any
176
- $fetch?: RequestInit
177
- $headers?: HeadersInit
178
- $query?: Record<string, string>
179
- $transform?: EdenTreaty.Transform
180
- }[] = [{}]
185
+ ] = [{}, {}]
181
186
  ) {
187
+ let bodyObj: any =
188
+ initialBody !== undefined &&
189
+ (typeof initialBody !== 'object' || Array.isArray(initialBody))
190
+ ? initialBody
191
+ : undefined
192
+
193
+ const { $query, $fetch, $headers, $transform, ...restBody } =
194
+ initialBody ?? {}
195
+
196
+ bodyObj ??= restBody
197
+
182
198
  const i = path.lastIndexOf('/'),
183
199
  method = path.slice(i + 1).toUpperCase(),
184
200
  url = composePath(
185
201
  domain,
186
202
  i === -1 ? '/' : path.slice(0, i),
187
- $query
203
+ Object.assign(options.query ?? {}, $query)
188
204
  )
189
205
 
190
206
  const fetcher = config.fetcher ?? fetch
@@ -219,12 +235,19 @@ const createProxy = (
219
235
  const headers = {
220
236
  ...config.$fetch?.headers,
221
237
  ...$fetch?.headers,
238
+ ...options.headers,
222
239
  ...$headers
223
240
  } as Record<string, string>
224
241
 
225
242
  if (method !== 'GET' && method !== 'HEAD') {
226
- body = Object.keys(bodyObj).length ? bodyObj : undefined
227
- const isObject = typeof body === 'object'
243
+ body = Object.keys(bodyObj).length
244
+ ? bodyObj
245
+ : Array.isArray(bodyObj)
246
+ ? bodyObj
247
+ : undefined
248
+
249
+ const isObject =
250
+ typeof body === 'object' || Array.isArray(bodyObj)
228
251
  const isFormData = isObject && hasFile(body)
229
252
 
230
253
  if (isFormData) {
@@ -239,7 +262,7 @@ const createProxy = (
239
262
  if (field instanceof File)
240
263
  newBody.append(
241
264
  key,
242
- await fileToBlob(field as any)
265
+ await createNewFile(field as any)
243
266
  )
244
267
  // @ts-ignore
245
268
  else if (field instanceof FileList) {
@@ -247,7 +270,20 @@ const createProxy = (
247
270
  for (let i = 0; i < field.length; i++) {
248
271
  newBody.append(
249
272
  key as any,
250
- await fileToBlob((field as any)[i])
273
+ await createNewFile(
274
+ (field as any)[i]
275
+ )
276
+ )
277
+ }
278
+ } else if (Array.isArray(field)) {
279
+ for (let i = 0; i < field.length; i++) {
280
+ const value = (field as any)[i]
281
+
282
+ newBody.append(
283
+ key as any,
284
+ value instanceof File
285
+ ? createNewFile(value)
286
+ : value
251
287
  )
252
288
  }
253
289
  } else newBody.append(key, field as string)
@@ -260,7 +296,7 @@ const createProxy = (
260
296
  ? 'application/json'
261
297
  : 'text/plain'
262
298
 
263
- if (isObject) body = JSON.stringify(body)
299
+ body = isObject ? JSON.stringify(body) : bodyObj
264
300
  }
265
301
  }
266
302
 
@@ -268,6 +304,7 @@ const createProxy = (
268
304
  method,
269
305
  body,
270
306
  ...config.$fetch,
307
+ ...options.fetch,
271
308
  ...$fetch,
272
309
  headers
273
310
  })
@@ -25,10 +25,10 @@ type Split<S extends string> = S extends `${infer Head}/${infer Tail}`
25
25
  : Split<Tail>
26
26
  : [Head, ...Split<Tail>]
27
27
  : S extends `/`
28
- ? []
29
- : S extends `${infer Head}/`
30
- ? [Head]
31
- : [S]
28
+ ? []
29
+ : S extends `${infer Head}/`
30
+ ? [Head]
31
+ : [S]
32
32
 
33
33
  type Prettify<T> = {
34
34
  [K in keyof T]: T[K]
@@ -55,8 +55,8 @@ export namespace EdenTreaty {
55
55
  type SplitKeys<T> = T extends [infer First, ...infer Rest]
56
56
  ? [First, Rest]
57
57
  : T extends [infer First, ...infer Rest][number]
58
- ? [First, Rest]
59
- : never
58
+ ? [First, Rest]
59
+ : never
60
60
 
61
61
  type UnwrapPromise<T> = T extends Promise<infer A> ? A : T
62
62
 
@@ -97,85 +97,101 @@ export namespace EdenTreaty {
97
97
  : Prefix]: Sign<Schema, Rest, `${Carry}/${Key}`>
98
98
  }
99
99
  : Schema[Carry extends '' ? '/' : Carry] extends infer Routes
100
- ? {
101
- [Method in keyof Routes]: Routes[Method] extends infer Route extends AnySchema
102
- ? Method extends 'subscribe'
103
- ? undefined extends Route['query']
104
- ? (params?: {
105
- $query?: Record<string, string>
106
- }) => EdenWS<Route>
107
- : (params: {
108
- $query: Route['query']
109
- }) => EdenWS<Route>
110
- : ((
111
- params: {
112
- $fetch?: RequestInit
113
- } & (IsUnknown<Route['body']> extends false
114
- ? Replace<Route['body'], Blob | Blob[], Files>
115
- : {}) &
116
- (undefined extends Route['query']
117
- ? {
118
- $query?: Record<string, string>
100
+ ? {
101
+ [Method in keyof Routes]: Routes[Method] extends infer Route extends
102
+ AnySchema
103
+ ? Method extends 'subscribe'
104
+ ? undefined extends Route['query']
105
+ ? (params?: {
106
+ $query?: Record<string, string>
107
+ }) => EdenWS<Route>
108
+ : (params: {
109
+ $query: Route['query']
110
+ }) => EdenWS<Route>
111
+ : ((
112
+ params: {
113
+ $fetch?: RequestInit
114
+ } & (IsUnknown<Route['body']> extends false
115
+ ? Replace<
116
+ Route['body'],
117
+ Blob | Blob[],
118
+ Files
119
+ >
120
+ : {}) &
121
+ (undefined extends Route['query']
122
+ ? {
123
+ $query?: Record<string, string>
124
+ }
125
+ : {
126
+ $query: Route['query']
127
+ }) &
128
+ (undefined extends Route['headers']
129
+ ? {
130
+ $headers?: Record<string, unknown>
131
+ }
132
+ : {
133
+ $headers: Route['headers']
134
+ })
135
+ ) => Promise<
136
+ (
137
+ | {
138
+ data: Route['response'] extends {
139
+ 200: infer ReturnedType
140
+ }
141
+ ? Awaited<ReturnedType>
142
+ : unknown
143
+ error: null
119
144
  }
120
- : {
121
- $query: Route['query']
122
- }) &
123
- (undefined extends Route['headers']
124
- ? {
125
- $headers?: Record<string, unknown>
145
+ | {
146
+ data: null
147
+ error: MapError<
148
+ Route['response']
149
+ > extends infer Errors
150
+ ? IsNever<Errors> extends true
151
+ ? EdenFetchError<
152
+ number,
153
+ string
154
+ >
155
+ : Errors
156
+ : EdenFetchError<number, string>
126
157
  }
127
- : {
128
- $headers: Route['headers']
129
- })
130
- ) => Promise<
131
- (
132
- | {
133
- data: Route['response'] extends {
134
- 200: infer ReturnedType
135
- }
136
- ? Awaited<ReturnedType>
137
- : unknown
138
- error: null
139
- }
140
- | {
141
- data: null
142
- error: MapError<
143
- Route['response']
144
- > extends infer Errors
145
- ? IsNever<Errors> extends true
146
- ? EdenFetchError<number, string>
147
- : Errors
148
- : EdenFetchError<number, string>
149
- }
150
- ) & {
151
- status: number
152
- response: Response
153
- headers: Record<string, string>
154
- }
155
- >) extends (params: infer Params) => infer Response
156
- ? {
157
- $params: undefined
158
- $headers: undefined
159
- $query: undefined
160
- } extends Params
161
- ? (
162
- params?: Prettify<
163
- Params & {
164
- $transform?: EdenTreaty.Transform<Response>
158
+ ) & {
159
+ status: number
160
+ response: Response
161
+ headers: Record<string, string>
162
+ }
163
+ >) extends (params: infer Params) => infer Response
164
+ ? {
165
+ $params: undefined
166
+ $headers: undefined
167
+ $query: undefined
168
+ } extends Params
169
+ ? (
170
+ params?: Params,
171
+ options?: {
172
+ fetch?: RequestInit
173
+ transform?: EdenTreaty.Transform<Response>
174
+ // @ts-ignore
175
+ query?: Params['query']
176
+ // @ts-ignore
177
+ headers?: Params['headers']
165
178
  }
166
- >
167
- ) => Response
168
- : (
169
- params: Prettify<
170
- Params & {
171
- $transform?: EdenTreaty.Transform<Response>
179
+ ) => Response
180
+ : (
181
+ params: Params,
182
+ options?: {
183
+ fetch?: RequestInit
184
+ transform?: EdenTreaty.Transform<Response>
185
+ // @ts-ignore
186
+ query?: Params['query']
187
+ // @ts-ignore
188
+ headers?: Params['headers']
172
189
  }
173
- >
174
- ) => Response
175
- : never
176
- : never
177
- }
178
- : {}
190
+ ) => Response
191
+ : never
192
+ : never
193
+ }
194
+ : {}
179
195
 
180
196
  export interface OnMessage<Data = unknown> extends MessageEvent {
181
197
  data: Data
@@ -1 +0,0 @@
1
- import{a as L}from"./chunk-Y6SMVGJX.mjs";var T=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var k=typeof FileList>"u",W=n=>k?n instanceof Blob:n instanceof FileList||n instanceof File,R=n=>{if(!n)return!1;for(let e in n){if(W(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>W(t)))return!0}return!1},F=n=>k?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),w=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),u=s.charCodeAt(0);if(u===47||u===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},O=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return O(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:u,$headers:K,$transform:h,...x}={$fetch:void 0,$headers:void 0,$query:void 0,$transform:void 0}]=[{}]){let g=e.lastIndexOf("/"),m=e.slice(g+1).toUpperCase(),v=T(n,g===-1?"/":e.slice(0,g),s),N=t.fetcher??fetch,y=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,S=h?Array.isArray(h)?h:[h]:void 0;return S&&(y?y=S.concat(y):y=S),m==="SUBSCRIBE"?new w(v.replace(/^([^]+):\/\//,v.startsWith("https://")?"wss://":"ws://")):(async()=>{let f,A={...t.$fetch?.headers,...u?.headers,...K};if(m!=="GET"&&m!=="HEAD"){f=Object.keys(x).length?x:void 0;let i=typeof f=="object";if(i&&R(f)){let p=new FormData;for(let[E,d]of Object.entries(f))if(k)p.append(E,d);else if(d instanceof File)p.append(E,await F(d));else if(d instanceof FileList)for(let b=0;b<d.length;b++)p.append(E,await F(d[b]));else p.append(E,d);f=p}else A["content-type"]=i?"application/json":"text/plain",i&&(f=JSON.stringify(f))}let a=await N(v,{method:m,body:f,...t.$fetch,...u,headers:A}),l;switch(a.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await a.json();break;default:l=await a.text().then(i=>Number.isNaN(+i)?i==="true"?!0:i==="false"?!1:i:+i)}let $=a.status>=300||a.status<200?new L(a.status,l):null;if(y)for(let i of y){let c=i({data:l,status:a.status,headers:a.headers,response:a,error:$});c instanceof Promise&&(c=await c),c!=null&&(l=c)}return{data:l,error:$,response:a,status:a.status,headers:a.headers}})()}}),P=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return O(n,r,e)}});export{w as a,P as b};