@elysiajs/eden 0.7.2 → 0.7.4

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.
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ import{a as y}from"./chunk-Y6SMVGJX.mjs";var m=(p,u)=>(s,{query:h,params:i,body:n,...r}={})=>{i&&Object.entries(i).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=r.headers?.["Content-Type"];if(!o||o==="application/json")try{n=JSON.stringify(n)}catch{}let f=u?.fetcher||globalThis.fetch,l=h?`?${new URLSearchParams(h).toString()}`:"",c=()=>f(p+s+l,{...r,method:r.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...r.headers}:r.headers,body:n}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new y(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{m as a};
package/dist/fetch.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia } from 'elysia';
2
- import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-59a29919.js';
2
+ import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-d1b334ad.js';
3
3
 
4
4
  type Prettify<T> = {
5
5
  [K in keyof T]: T[K];
package/dist/fetch.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia } from 'elysia';
2
- import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-59a29919.js';
2
+ import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-d1b334ad.js';
3
3
 
4
4
  type Prettify<T> = {
5
5
  [K in keyof T]: T[K];
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var E=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!x.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};E(b,{edenFetch:()=>w});var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:c,...o}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{c=JSON.stringify(c)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...o,headers:c?{"content-type":"application/json",...o.headers}:o.headers,body:c}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(i=>Number.isNaN(+i)?i==="true"?!0:i==="false"?!1:i:+i);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};return j(b);})();
1
+ "use strict";var Eden=(()=>{var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!g.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};x(b,{edenFetch:()=>w});var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:o,...i}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{o=JSON.stringify(o)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...i,method:i.method?.toUpperCase()||"GET",headers:o?{"content-type":"application/json",...i.headers}:i.headers,body:o}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(c=>Number.isNaN(+c)?c==="true"?!0:c==="false"?!1:c:+c);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};return j(b);})();
package/dist/fetch.js CHANGED
@@ -1 +1 @@
1
- "use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var E=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!x.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};E(b,{edenFetch:()=>w});module.exports=j(b);var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:c,...o}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=o.headers?.["Content-Type"];if(!y||y==="application/json")try{c=JSON.stringify(c)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...o,headers:c?{"content-type":"application/json",...o.headers}:o.headers,body:c}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(i=>Number.isNaN(+i)?i==="true"?!0:i==="false"?!1:i:+i);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};0&&(module.exports={edenFetch});
1
+ "use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!g.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};x(b,{edenFetch:()=>w});module.exports=j(b);var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:o,...i}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{o=JSON.stringify(o)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...i,method:i.method?.toUpperCase()||"GET",headers:o?{"content-type":"application/json",...i.headers}:i.headers,body:o}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(c=>Number.isNaN(+c)?c==="true"?!0:c==="false"?!1:c:+c);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};0&&(module.exports={edenFetch});
package/dist/fetch.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-V6QCRD5H.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as edenFetch};
1
+ import{a}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as edenFetch};
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { edenTreaty } from './treaty.mjs';
2
2
  export { edenFetch } from './fetch.mjs';
3
3
  import 'elysia';
4
- import './types-59a29919.js';
4
+ import './types-d1b334ad.js';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { edenTreaty } from './treaty.js';
2
2
  export { edenFetch } from './fetch.js';
3
3
  import 'elysia';
4
- import './types-59a29919.js';
4
+ import './types-d1b334ad.js';
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var x=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},M=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of j(e))!C.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=K(e,a))||s.enumerable});return n};var P=n=>M(x({},"__esModule",{value:!0}),n);var I={};R(I,{edenFetch:()=>N,edenTreaty:()=>W});var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var $=(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 F=typeof FileList>"u",A=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,B=n=>{if(!n)return!1;for(let e in n){if(A(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>A(t)))return!0}return!1},L=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),k=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}},O=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return O(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:c,$headers:b,...S}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let m=e.lastIndexOf("/"),u=e.slice(m+1),i=$(n,m===-1?"/":e.slice(0,m),r),y=t.fetcher??fetch;return u==="subscribe"?new k(i.replace(/^([^]+):\/\//,i.startsWith("https://")?"wss://":"ws://")):(async()=>{let l,T={...t.$fetch?.headers,...c?.headers,...b};if(u!=="GET"&&u!=="HEAD"){l=Object.keys(S).length?S:void 0;let f=typeof l=="object";if(f&&B(l)){let g=new FormData;for(let[w,d]of Object.entries(l))if(F)g.append(w,d);else if(d instanceof File)g.append(w,await L(d));else if(d instanceof FileList)for(let v=0;v<d.length;v++)g.append(w,await L(d[v]));else g.append(w,d);l=g}else T["content-type"]=f?"application/json":"text/plain",f&&(l=JSON.stringify(l))}let o=await y(i,{method:u,body:l,...t.$fetch,...c,headers:T}),E;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await o.json();break;default:E=await o.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}return o.status>300?{data:E,error:new h(o.status,await E),status:o.status,raw:o,headers:o.headers}:{data:E,status:o.status,response:o,headers:o.headers,error:null}})()}}),W=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return O(n,s,e)}});var N=(n,e)=>(t,{query:s,params:a,body:r,...c}={})=>{a&&Object.entries(a).forEach(([i,y])=>{t=t.replace(`:${i}`,y)});let b=c.headers?.["Content-Type"];if(!b||b==="application/json")try{r=JSON.stringify(r)}catch{}let S=e?.fetcher||globalThis.fetch,m=s?`?${new URLSearchParams(s).toString()}`:"",u=()=>S(n+t+m,{...c,headers:r?{"content-type":"application/json",...c.headers}:c.headers,body:r}).then(async i=>{let y;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await i.json();break;default:y=await i.text().then(p=>Number.isNaN(+p)?p==="true"?!0:p==="false"?!1:p:+p);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:u,error:new h(i.status,y)}:{data:y,error:null,status:i.status,headers:i.headers,retry:u}});return u()};return P(I);})();
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);})();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var x=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},M=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of j(e))!C.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=K(e,a))||s.enumerable});return n};var P=n=>M(x({},"__esModule",{value:!0}),n);var I={};R(I,{edenFetch:()=>N,edenTreaty:()=>W});module.exports=P(I);var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var $=(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 F=typeof FileList>"u",A=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,B=n=>{if(!n)return!1;for(let e in n){if(A(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>A(t)))return!0}return!1},L=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),k=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}},O=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return O(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:c,$headers:b,...S}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let m=e.lastIndexOf("/"),u=e.slice(m+1),i=$(n,m===-1?"/":e.slice(0,m),r),y=t.fetcher??fetch;return u==="subscribe"?new k(i.replace(/^([^]+):\/\//,i.startsWith("https://")?"wss://":"ws://")):(async()=>{let l,T={...t.$fetch?.headers,...c?.headers,...b};if(u!=="GET"&&u!=="HEAD"){l=Object.keys(S).length?S:void 0;let f=typeof l=="object";if(f&&B(l)){let g=new FormData;for(let[w,d]of Object.entries(l))if(F)g.append(w,d);else if(d instanceof File)g.append(w,await L(d));else if(d instanceof FileList)for(let v=0;v<d.length;v++)g.append(w,await L(d[v]));else g.append(w,d);l=g}else T["content-type"]=f?"application/json":"text/plain",f&&(l=JSON.stringify(l))}let o=await y(i,{method:u,body:l,...t.$fetch,...c,headers:T}),E;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await o.json();break;default:E=await o.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}return o.status>300?{data:E,error:new h(o.status,await E),status:o.status,raw:o,headers:o.headers}:{data:E,status:o.status,response:o,headers:o.headers,error:null}})()}}),W=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return O(n,s,e)}});var N=(n,e)=>(t,{query:s,params:a,body:r,...c}={})=>{a&&Object.entries(a).forEach(([i,y])=>{t=t.replace(`:${i}`,y)});let b=c.headers?.["Content-Type"];if(!b||b==="application/json")try{r=JSON.stringify(r)}catch{}let S=e?.fetcher||globalThis.fetch,m=s?`?${new URLSearchParams(s).toString()}`:"",u=()=>S(n+t+m,{...c,headers:r?{"content-type":"application/json",...c.headers}:c.headers,body:r}).then(async i=>{let y;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await i.json();break;default:y=await i.text().then(p=>Number.isNaN(+p)?p==="true"?!0:p==="false"?!1:p:+p);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:u,error:new h(i.status,y)}:{data:y,error:null,status:i.status,headers:i.headers,retry:u}});return u()};0&&(module.exports={edenFetch,edenTreaty});
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});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as e}from"./chunk-BYO7CHLQ.mjs";import{a as t}from"./chunk-V6QCRD5H.mjs";import"./chunk-Y6SMVGJX.mjs";export{t as edenFetch,e as edenTreaty};
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};
@@ -18,18 +18,28 @@ type AnySchema = {
18
18
  params: unknown;
19
19
  response: any;
20
20
  };
21
+ type MaybeArray<T> = T | T[];
21
22
  export declare namespace EdenTreaty {
22
- type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
+ export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
24
  schema: infer Schema extends Record<string, any>;
24
25
  } ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
25
- interface Config {
26
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
27
+ export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
28
+ data: any;
29
+ error: any;
30
+ response: Response;
31
+ status: number;
32
+ headers: Headers;
33
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
34
+ export interface Config {
26
35
  /**
27
36
  * Default options to pass to fetch
28
37
  */
29
38
  $fetch?: RequestInit;
30
39
  fetcher?: typeof fetch;
40
+ transform?: Transform;
31
41
  }
32
- type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
42
+ export type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
33
43
  infer Prefix extends string | number,
34
44
  ...infer Rest extends (string | number)[]
35
45
  ] ? {
@@ -65,12 +75,17 @@ export declare namespace EdenTreaty {
65
75
  $params: undefined;
66
76
  $headers: undefined;
67
77
  $query: undefined;
68
- } extends Params ? (params?: Prettify<Params>) => Response : (params: Prettify<Params>) => Response : never : never;
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;
69
83
  } : {};
70
- interface OnMessage<Data = unknown> extends MessageEvent {
84
+ export interface OnMessage<Data = unknown> extends MessageEvent {
71
85
  data: Data;
72
86
  rawData: MessageEvent['data'];
73
87
  }
74
- type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
88
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
89
+ export {};
75
90
  }
76
91
  export {};
package/dist/treaty.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia, InputSchema } from 'elysia';
2
- import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-59a29919.js';
2
+ import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-d1b334ad.js';
3
3
 
4
4
  /// <reference lib="dom" />
5
5
 
@@ -18,18 +18,28 @@ type AnySchema = {
18
18
  params: unknown;
19
19
  response: any;
20
20
  };
21
+ type MaybeArray<T> = T | T[];
21
22
  declare namespace EdenTreaty {
22
- type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
+ export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
24
  schema: infer Schema extends Record<string, any>;
24
25
  } ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
25
- interface Config {
26
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
27
+ export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
28
+ data: any;
29
+ error: any;
30
+ response: Response;
31
+ status: number;
32
+ headers: Headers;
33
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
34
+ export interface Config {
26
35
  /**
27
36
  * Default options to pass to fetch
28
37
  */
29
38
  $fetch?: RequestInit;
30
39
  fetcher?: typeof fetch;
40
+ transform?: Transform;
31
41
  }
32
- type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
42
+ export type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
33
43
  infer Prefix extends string | number,
34
44
  ...infer Rest extends (string | number)[]
35
45
  ] ? {
@@ -65,13 +75,18 @@ declare namespace EdenTreaty {
65
75
  $params: undefined;
66
76
  $headers: undefined;
67
77
  $query: undefined;
68
- } extends Params ? (params?: Prettify<Params>) => Response : (params: Prettify<Params>) => Response : never : never;
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;
69
83
  } : {};
70
- interface OnMessage<Data = unknown> extends MessageEvent {
84
+ export interface OnMessage<Data = unknown> extends MessageEvent {
71
85
  data: Data;
72
86
  rawData: MessageEvent['data'];
73
87
  }
74
- type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
88
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
89
+ export {};
75
90
  }
76
91
 
77
92
  declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
package/dist/treaty.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Elysia, InputSchema } from 'elysia';
2
- import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-59a29919.js';
2
+ import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-d1b334ad.js';
3
3
 
4
4
  /// <reference lib="dom" />
5
5
 
@@ -18,18 +18,28 @@ type AnySchema = {
18
18
  params: unknown;
19
19
  response: any;
20
20
  };
21
+ type MaybeArray<T> = T | T[];
21
22
  declare namespace EdenTreaty {
22
- type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
+ export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
23
24
  schema: infer Schema extends Record<string, any>;
24
25
  } ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
25
- interface Config {
26
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T;
27
+ export type Transform<T = unknown> = MaybeArray<(response: unknown extends T ? {
28
+ data: any;
29
+ error: any;
30
+ response: Response;
31
+ status: number;
32
+ headers: Headers;
33
+ } : UnwrapPromise<T>) => UnwrapPromise<T> | void>;
34
+ export interface Config {
26
35
  /**
27
36
  * Default options to pass to fetch
28
37
  */
29
38
  $fetch?: RequestInit;
30
39
  fetcher?: typeof fetch;
40
+ transform?: Transform;
31
41
  }
32
- type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
42
+ export type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
33
43
  infer Prefix extends string | number,
34
44
  ...infer Rest extends (string | number)[]
35
45
  ] ? {
@@ -65,13 +75,18 @@ declare namespace EdenTreaty {
65
75
  $params: undefined;
66
76
  $headers: undefined;
67
77
  $query: undefined;
68
- } extends Params ? (params?: Prettify<Params>) => Response : (params: Prettify<Params>) => Response : never : never;
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;
69
83
  } : {};
70
- interface OnMessage<Data = unknown> extends MessageEvent {
84
+ export interface OnMessage<Data = unknown> extends MessageEvent {
71
85
  data: Data;
72
86
  rawData: MessageEvent['data'];
73
87
  }
74
- type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
88
+ export type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
89
+ export {};
75
90
  }
76
91
 
77
92
  declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var M=n=>R(v({},"__esModule",{value:!0}),n);var I={};N(I,{EdenWS:()=>g,edenTreaty:()=>B});var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var x=(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 S=typeof FileList>"u",$=n=>S?n instanceof Blob:n instanceof FileList||n instanceof File,j=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},L=n=>S?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),g=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(),f=r.charCodeAt(0);if(f===47||f===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}},W=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return W(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:f,$headers:A,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let E=e.lastIndexOf("/"),y=e.slice(E+1),b=x(n,E===-1?"/":e.slice(0,E),r),O=t.fetcher??fetch;return y==="subscribe"?new g(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,k={...t.$fetch?.headers,...f?.headers,...A};if(y!=="GET"&&y!=="HEAD"){c=Object.keys(w).length?w:void 0;let o=typeof c=="object";if(o&&j(c)){let d=new FormData;for(let[p,u]of Object.entries(c))if(S)d.append(p,u);else if(u instanceof File)d.append(p,await L(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)d.append(p,await L(u[m]));else d.append(p,u);c=d}else k["content-type"]=o?"application/json":"text/plain",o&&(c=JSON.stringify(c))}let i=await O(b,{method:y,body:c,...t.$fetch,...f,headers:k}),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)}return i.status>300?{data:l,error:new h(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),B=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return W(n,s,e)}});return M(I);})();
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);})();
package/dist/treaty.js CHANGED
@@ -1 +1 @@
1
- "use strict";var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var M=n=>R(v({},"__esModule",{value:!0}),n);var I={};N(I,{EdenWS:()=>g,edenTreaty:()=>B});module.exports=M(I);var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var x=(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 S=typeof FileList>"u",$=n=>S?n instanceof Blob:n instanceof FileList||n instanceof File,j=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},L=n=>S?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),g=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(),f=r.charCodeAt(0);if(f===47||f===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}},W=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return W(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:f,$headers:A,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let E=e.lastIndexOf("/"),y=e.slice(E+1),b=x(n,E===-1?"/":e.slice(0,E),r),O=t.fetcher??fetch;return y==="subscribe"?new g(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,k={...t.$fetch?.headers,...f?.headers,...A};if(y!=="GET"&&y!=="HEAD"){c=Object.keys(w).length?w:void 0;let o=typeof c=="object";if(o&&j(c)){let d=new FormData;for(let[p,u]of Object.entries(c))if(S)d.append(p,u);else if(u instanceof File)d.append(p,await L(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)d.append(p,await L(u[m]));else d.append(p,u);c=d}else k["content-type"]=o?"application/json":"text/plain",o&&(c=JSON.stringify(c))}let i=await O(b,{method:y,body:c,...t.$fetch,...f,headers:k}),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)}return i.status>300?{data:l,error:new h(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),B=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return W(n,s,e)}});0&&(module.exports={EdenWS,edenTreaty});
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});
package/dist/treaty.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-BYO7CHLQ.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
1
+ import{a,b}from"./chunk-2G5RO3ND.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
@@ -14,7 +14,7 @@ type MapError<T extends Record<number, unknown>> = [
14
14
  ] extends [infer A extends number] ? {
15
15
  [K in A]: EdenFetchError<K, T[K]>;
16
16
  }[A] : false;
17
- type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
17
+ type UnionToIntersect<U> = (U extends any ? (arg: U) => any : never) extends (arg: infer I) => void ? I : never;
18
18
  type IsAny<T> = 0 extends 1 & T ? true : false;
19
19
  type IsNever<T> = [T] extends [never] ? true : false;
20
20
  type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
package/dist/types.d.ts CHANGED
@@ -9,7 +9,8 @@ export type MapError<T extends Record<number, unknown>> = [
9
9
  ] extends [infer A extends number] ? {
10
10
  [K in A]: EdenFetchError<K, T[K]>;
11
11
  }[A] : false;
12
- export type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
12
+ export type UnionToIntersect<U> = (U extends any ? (arg: U) => any : never) extends (arg: infer I) => void ? I : never;
13
+ export type UnionToTuple<T> = UnionToIntersect<T extends any ? (t: T) => T : never> extends (_: any) => infer W ? [...UnionToTuple<Exclude<T, W>>, W] : [];
13
14
  export type IsAny<T> = 0 extends 1 & T ? true : false;
14
15
  export type IsNever<T> = [T] extends [never] ? true : false;
15
16
  export type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -63,7 +63,7 @@
63
63
  "@sinclair/typebox": "^0.31.6",
64
64
  "@types/node": "^18.15.5",
65
65
  "bun-types": "^1.0.1",
66
- "elysia": "^0.7.9",
66
+ "elysia": "^0.7.15",
67
67
  "esbuild": "^0.19.3",
68
68
  "eslint": "^8.26.0",
69
69
  "rimraf": "^4.4.1",
@@ -33,6 +33,7 @@ export const edenFetch =
33
33
  // @ts-ignore
34
34
  const execute = () => fetch(server + endpoint + queryStr, {
35
35
  ...options,
36
+ method: options.method?.toUpperCase() || 'GET',
36
37
  headers: body
37
38
  ? {
38
39
  'content-type': 'application/json',
@@ -165,20 +165,22 @@ const createProxy = (
165
165
  target,
166
166
  _,
167
167
  [
168
- { $query, $fetch, $headers, ...bodyObj } = {
168
+ { $query, $fetch, $headers, $transform, ...bodyObj } = {
169
169
  $fetch: undefined,
170
170
  $headers: undefined,
171
- $query: undefined
171
+ $query: undefined,
172
+ $transform: undefined
172
173
  }
173
174
  ]: {
174
175
  [x: string]: any
175
176
  $fetch?: RequestInit
176
177
  $headers?: HeadersInit
177
178
  $query?: Record<string, string>
179
+ $transform?: EdenTreaty.Transform
178
180
  }[] = [{}]
179
181
  ) {
180
182
  const i = path.lastIndexOf('/'),
181
- method = path.slice(i + 1),
183
+ method = path.slice(i + 1).toUpperCase(),
182
184
  url = composePath(
183
185
  domain,
184
186
  i === -1 ? '/' : path.slice(0, i),
@@ -186,8 +188,24 @@ const createProxy = (
186
188
  )
187
189
 
188
190
  const fetcher = config.fetcher ?? fetch
191
+ let transforms = config.transform
192
+ ? Array.isArray(config.transform)
193
+ ? config.transform
194
+ : [config.transform]
195
+ : undefined
196
+
197
+ const $transforms = $transform
198
+ ? Array.isArray($transform)
199
+ ? $transform
200
+ : [$transform]
201
+ : undefined
202
+
203
+ if ($transforms) {
204
+ if (transforms) transforms = $transforms.concat(transforms)
205
+ else transforms = $transforms as any
206
+ }
189
207
 
190
- if (method === 'subscribe')
208
+ if (method === 'SUBSCRIBE')
191
209
  return new EdenWS(
192
210
  url.replace(
193
211
  /^([^]+):\/\//,
@@ -271,21 +289,31 @@ const createProxy = (
271
289
  })
272
290
  }
273
291
 
274
- if (response.status > 300)
275
- return {
276
- data,
277
- error: new EdenFetchError(response.status, await data),
278
- status: response.status,
279
- raw: response,
280
- headers: response.headers
292
+ const error =
293
+ response.status >= 300 || response.status < 200
294
+ ? new EdenFetchError(response.status, data)
295
+ : null
296
+
297
+ if (transforms)
298
+ for (const transform of transforms) {
299
+ let temp = transform({
300
+ data,
301
+ status: response.status,
302
+ headers: response.headers,
303
+ response,
304
+ error
305
+ })
306
+ if (temp instanceof Promise) temp = await temp
307
+
308
+ if (temp !== undefined && temp !== null) data = temp
281
309
  }
282
310
 
283
311
  return {
284
312
  data,
285
- status: response.status,
313
+ error,
286
314
  response: response,
287
- headers: response.headers,
288
- error: null as null
315
+ status: response.status,
316
+ headers: response.headers
289
317
  }
290
318
  }
291
319
 
@@ -42,6 +42,8 @@ type AnySchema = {
42
42
  response: any
43
43
  }
44
44
 
45
+ type MaybeArray<T> = T | T[]
46
+
45
47
  export namespace EdenTreaty {
46
48
  export type Create<App extends Elysia<any, any, any, any, any, any>> =
47
49
  App extends {
@@ -50,17 +52,39 @@ export namespace EdenTreaty {
50
52
  ? UnionToIntersect<Sign<Schema>>
51
53
  : 'Please install Elysia before using Eden'
52
54
 
55
+ type SplitKeys<T> = T extends [infer First, ...infer Rest]
56
+ ? [First, Rest]
57
+ : T extends [infer First, ...infer Rest][number]
58
+ ? [First, Rest]
59
+ : never
60
+
61
+ type UnwrapPromise<T> = T extends Promise<infer A> ? A : T
62
+
63
+ export type Transform<T = unknown> = MaybeArray<
64
+ (
65
+ response: unknown extends T
66
+ ? {
67
+ data: any
68
+ error: any
69
+ response: Response
70
+ status: number
71
+ headers: Headers
72
+ }
73
+ : UnwrapPromise<T>
74
+ ) => UnwrapPromise<T> | void
75
+ >
76
+
53
77
  export interface Config {
54
78
  /**
55
79
  * Default options to pass to fetch
56
80
  */
57
81
  $fetch?: RequestInit
58
82
  fetcher?: typeof fetch
83
+ transform?: Transform
59
84
  }
60
85
 
61
86
  export type Sign<
62
87
  Schema extends Record<string, Record<string, unknown>>,
63
- // @ts-ignore
64
88
  Paths extends (string | number)[] = Split<keyof Schema & string>,
65
89
  Carry extends string = ''
66
90
  > = Paths extends [
@@ -134,8 +158,20 @@ export namespace EdenTreaty {
134
158
  $headers: undefined
135
159
  $query: undefined
136
160
  } extends Params
137
- ? (params?: Prettify<Params>) => Response
138
- : (params: Prettify<Params>) => Response
161
+ ? (
162
+ params?: Prettify<
163
+ Params & {
164
+ $transform?: EdenTreaty.Transform<Response>
165
+ }
166
+ >
167
+ ) => Response
168
+ : (
169
+ params: Prettify<
170
+ Params & {
171
+ $transform?: EdenTreaty.Transform<Response>
172
+ }
173
+ >
174
+ ) => Response
139
175
  : never
140
176
  : never
141
177
  }
package/src/types.ts CHANGED
@@ -26,11 +26,17 @@ export type MapError<T extends Record<number, unknown>> = [
26
26
  : false
27
27
 
28
28
  export type UnionToIntersect<U> = (
29
- U extends unknown ? (arg: U) => 0 : never
30
- ) extends (arg: infer I) => 0
29
+ U extends any ? (arg: U) => any : never
30
+ ) extends (arg: infer I) => void
31
31
  ? I
32
32
  : never
33
33
 
34
+ export type UnionToTuple<T> = UnionToIntersect<
35
+ T extends any ? (t: T) => T : never
36
+ > extends (_: any) => infer W
37
+ ? [...UnionToTuple<Exclude<T, W>>, W]
38
+ : []
39
+
34
40
  export type IsAny<T> = 0 extends 1 & T ? true : false
35
41
 
36
42
  export type IsNever<T> = [T] extends [never] ? true : false
@@ -1 +0,0 @@
1
- import{a as S}from"./chunk-Y6SMVGJX.mjs";var k=(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 v=typeof FileList>"u",x=n=>v?n instanceof Blob:n instanceof FileList||n instanceof File,F=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>v?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),b=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(),d=s.charCodeAt(0);if(d===47||d===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}},L=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return L(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:W,...m}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let h=e.lastIndexOf("/"),u=e.slice(h+1),g=k(n,h===-1?"/":e.slice(0,h),s),A=t.fetcher??fetch;return u==="subscribe"?new b(g.replace(/^([^]+):\/\//,g.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,w={...t.$fetch?.headers,...d?.headers,...W};if(u!=="GET"&&u!=="HEAD"){c=Object.keys(m).length?m:void 0;let a=typeof c=="object";if(a&&F(c)){let y=new FormData;for(let[p,f]of Object.entries(c))if(v)y.append(p,f);else if(f instanceof File)y.append(p,await $(f));else if(f instanceof FileList)for(let E=0;E<f.length;E++)y.append(p,await $(f[E]));else y.append(p,f);c=y}else w["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await A(g,{method:u,body:c,...t.$fetch,...d,headers:w}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new S(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),M=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return L(n,r,e)}});export{b as a,M as b};
@@ -1 +0,0 @@
1
- import{a as y}from"./chunk-Y6SMVGJX.mjs";var E=(p,u)=>(s,{query:i,params:h,body:a,...n}={})=>{h&&Object.entries(h).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=n.headers?.["Content-Type"];if(!o||o==="application/json")try{a=JSON.stringify(a)}catch{}let f=u?.fetcher||globalThis.fetch,l=i?`?${new URLSearchParams(i).toString()}`:"",c=()=>f(p+s+l,{...n,headers:a?{"content-type":"application/json",...n.headers}:n.headers,body:a}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(r=>Number.isNaN(+r)?r==="true"?!0:r==="false"?!1:r:+r);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new y(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{E as a};