@elysiajs/eden 0.7.7 → 0.8.1

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
+ github: SaltyAom
@@ -0,0 +1,28 @@
1
+ name: Build and Test
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ build:
9
+ name: Build and test code
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Setup bun
17
+ uses: oven-sh/setup-bun@v1
18
+ with:
19
+ bun-version: latest
20
+
21
+ - name: Install packages
22
+ run: bun install
23
+
24
+ - name: Build code
25
+ run: bun run build
26
+
27
+ - name: Test
28
+ run: bun run test
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # @elysiajs/eden
2
- Fully type-safe Elysia client refers to the [documentation](https://elysiajs.com/plugins/eden/overview)
2
+ Fully type-safe Elysia client refers to the [documentation](https://elysiajs.com/eden/overview)
3
3
 
4
4
  ## Installation
5
5
  ```bash
@@ -0,0 +1 @@
1
+ import{a as L}from"./chunk-Y6SMVGJX.mjs";var W=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[c,r]of Object.entries(t))s+=`${c}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`},k=n=>!Number.isNaN(parseInt(n));var F=typeof FileList>"u",K=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,J=n=>{if(!n)return!1;for(let e in n){if(K(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>K(t)))return!0}return!1},T=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),$=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,c=>{if(e==="message"){let r=c.data.toString(),u=r.charCodeAt(0);if(u===47||u===123)try{r=JSON.parse(r)}catch{}else k(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);t({...c,data:r})}else t(c)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},j=(n,e="",t)=>new Proxy(()=>{},{get(s,c,r){return j(n,`${e}/${c.toString()}`,t)},apply(s,c,[r,u={}]=[{},{}]){let y=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:I,$fetch:O,$headers:M,$transform:g,getRaw:N,...P}=r??{};y??=P;let w=e.lastIndexOf("/"),E=e.slice(w+1).toUpperCase(),S=W(n,w===-1?"/":e.slice(0,w),Object.assign(u.query??{},I)),C=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,v=g?Array.isArray(g)?g:[g]:void 0;return v&&(p?p=v.concat(p):p=v),E==="SUBSCRIBE"?new $(S.replace(/^([^]+):\/\//,S.startsWith("https://")?"wss://":"ws://")):(async q=>{let f,R={...t.$fetch?.headers,...O?.headers,...u.headers,...M};if(E!=="GET"&&E!=="HEAD"){f=Object.keys(y).length||Array.isArray(y)?y:void 0;let a=typeof f=="object"||Array.isArray(y);if(a&&J(f)){let h=new FormData;for(let[m,o]of Object.entries(f))if(F)h.append(m,o);else if(o instanceof File)h.append(m,await T(o));else if(o instanceof FileList)for(let l=0;l<o.length;l++)h.append(m,await T(o[l]));else if(Array.isArray(o))for(let l=0;l<o.length;l++){let A=o[l];h.append(m,A instanceof File?await T(A):A)}else h.append(m,o);f=h}else R["content-type"]=a?"application/json":"text/plain",f=a?JSON.stringify(f):y}let i=await C(S,{method:E,body:f,...t.$fetch,...u.fetch,...O,headers:R}),b;if(q.getRaw)return i;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await i.json();break;default:b=await i.text().then(a=>k(a)?+a:a==="true"?!0:a==="false"?!1:a)}let D=i.status>=300||i.status<200?new L(i.status,b):null,x={data:b,error:D,response:i,status:i.status,headers:i.headers};if(p)for(let a of p){let d=a(x);d instanceof Promise&&(d=await d),d!=null&&(x=d)}return x})({getRaw:N})}}),_=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return j(n,s,e)}});export{$ as a,_ as b};
@@ -1,4 +1,4 @@
1
1
  import type { Elysia } from 'elysia';
2
2
  import type { EdenFetch } from './types';
3
3
  export type { EdenFetch } from './types';
4
- export declare const edenFetch: <App extends Elysia<any, any, any, any, any, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
4
+ export declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, false>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
@@ -15,7 +15,7 @@ export declare namespace EdenFetch {
15
15
  method?: Method;
16
16
  } : {
17
17
  method: Method;
18
- }) & (IsNever<keyof Route['params']> extends true ? {
18
+ }) & (IsNever<Route['params']> extends true ? {
19
19
  params?: Record<never, string>;
20
20
  } : {
21
21
  params: Route['params'];
package/dist/fetch.d.mts CHANGED
@@ -15,7 +15,7 @@ declare namespace EdenFetch {
15
15
  method?: Method;
16
16
  } : {
17
17
  method: Method;
18
- }) & (IsNever<keyof Route['params']> extends true ? {
18
+ }) & (IsNever<Route['params']> extends true ? {
19
19
  params?: Record<never, string>;
20
20
  } : {
21
21
  params: Route['params'];
@@ -44,6 +44,6 @@ declare namespace EdenFetch {
44
44
  }>>;
45
45
  }
46
46
 
47
- declare const edenFetch: <App extends Elysia<any, any, any, any, any, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
47
+ declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, false>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
48
48
 
49
49
  export { EdenFetch, edenFetch };
package/dist/fetch.d.ts CHANGED
@@ -15,7 +15,7 @@ declare namespace EdenFetch {
15
15
  method?: Method;
16
16
  } : {
17
17
  method: Method;
18
- }) & (IsNever<keyof Route['params']> extends true ? {
18
+ }) & (IsNever<Route['params']> extends true ? {
19
19
  params?: Record<never, string>;
20
20
  } : {
21
21
  params: Route['params'];
@@ -44,6 +44,6 @@ declare namespace EdenFetch {
44
44
  }>>;
45
45
  }
46
46
 
47
- declare const edenFetch: <App extends Elysia<any, any, any, any, any, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
47
+ declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, false>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
48
48
 
49
49
  export { EdenFetch, edenFetch };
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var R=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})},G=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of V(e))!z.call(r,a)&&a!==t&&R(r,a,{get:()=>e[a],enumerable:!(s=U(e,a))||s.enumerable});return r};var H=r=>G(R({},"__esModule",{value:!0}),r);var Q={};B(Q,{edenFetch:()=>q,edenTreaty:()=>I});var w=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let s="";for(let[a,n]of Object.entries(t))s+=`${a}=${n}&`;return`${r}${e}?${s.slice(0,-1)}`};var N=typeof FileList>"u",M=r=>N?r instanceof Blob:r instanceof FileList||r instanceof File,_=r=>{if(!r)return!1;for(let e in r){if(M(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>M(t)))return!0}return!1},j=r=>N?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(s)},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,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 n=a.data.toString(),c=n.charCodeAt(0);if(c===47||c===123)try{n=JSON.parse(n)}catch{}else Number.isNaN(+n)?n==="true"?n=!0:n==="false"&&(n=!1):n=+n;t({...a,data:n})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},P=(r,e="",t)=>new Proxy(()=>{},{get(s,a,n){return P(r,`${e}/${a.toString()}`,t)},apply(s,a,[n,c={}]=[{},{}]){let y=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:A,$fetch:v,$headers:S,$transform:i,getRaw:d,...p}=n??{};y??=p;let T=e.lastIndexOf("/"),k=e.slice(T+1).toUpperCase(),F=K(r,T===-1?"/":e.slice(0,T),Object.assign(c.query??{},A)),D=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 J=>{let l,W={...t.$fetch?.headers,...v?.headers,...c.headers,...S};if(k!=="GET"&&k!=="HEAD"){l=Object.keys(y).length||Array.isArray(y)?y:void 0;let f=typeof l=="object"||Array.isArray(y);if(f&&_(l)){let b=new FormData;for(let[x,u]of Object.entries(l))if(N)b.append(x,u);else if(u instanceof File)b.append(x,await j(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)b.append(x,await j(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let O=u[m];b.append(x,O instanceof File?await j(O):O)}else b.append(x,u);l=b}else W["content-type"]=f?"application/json":"text/plain",l=f?JSON.stringify(l):y}let o=await D(F,{method:k,body:l,...t.$fetch,...c.fetch,...v,headers:W}),g;if(J.getRaw)return o;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 C=o.status>=300||o.status<200?new w(o.status,g):null;if(E)for(let f of E){let h=f({data:g,status:o.status,headers:o.headers,response:o,error:C});h instanceof Promise&&(h=await h),h!=null&&(g=h)}return{data:g,error:C,response:o,status:o.status,headers:o.headers}})({getRaw:d})}}),I=(r,e={fetcher:fetch})=>new Proxy({},{get(t,s){return P(r,s,e)}});var q=(r,e)=>(t,{query:s,params:a,body:n,...c}={})=>{a&&Object.entries(a).forEach(([i,d])=>{t=t.replace(`:${i}`,d)});let y=c.headers?.["Content-Type"];if(!y||y==="application/json")try{n=JSON.stringify(n)}catch{}let A=e?.fetcher||globalThis.fetch,v=s?`?${new URLSearchParams(s).toString()}`:"",S=()=>A(r+t+v,{...c,method:c.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...c.headers}:c.headers,body:n}).then(async i=>{let d;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await i.json();break;default:d=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:S,error:new w(i.status,d)}:{data:d,error:null,status:i.status,headers:i.headers,retry:S}});return S()};return H(Q);})();
1
+ "use strict";var Eden=(()=>{var j=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var H=(r,e)=>{for(var t in e)j(r,t,{get:e[t],enumerable:!0})},_=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of B(e))!G.call(r,a)&&a!==t&&j(r,a,{get:()=>e[a],enumerable:!(s=z(e,a))||s.enumerable});return r};var Q=r=>_(j({},"__esModule",{value:!0}),r);var Y={};H(Y,{edenFetch:()=>D,edenTreaty:()=>q});var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var I=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let s="";for(let[a,n]of Object.entries(t))s+=`${a}=${n}&`;return`${r}${e}?${s.slice(0,-1)}`},L=r=>!Number.isNaN(parseInt(r));var C=typeof FileList>"u",M=r=>C?r instanceof Blob:r instanceof FileList||r instanceof File,X=r=>{if(!r)return!1;for(let e in r){if(M(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>M(t)))return!0}return!1},W=r=>C?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(s)},t.readAsArrayBuffer(r)}),N=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 n=a.data.toString(),o=n.charCodeAt(0);if(o===47||o===123)try{n=JSON.parse(n)}catch{}else L(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);t({...a,data:n})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},P=(r,e="",t)=>new Proxy(()=>{},{get(s,a,n){return P(r,`${e}/${a.toString()}`,t)},apply(s,a,[n,o={}]=[{},{}]){let f=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:A,$fetch:x,$headers:w,$transform:i,getRaw:d,...p}=n??{};f??=p;let T=e.lastIndexOf("/"),v=e.slice(T+1).toUpperCase(),F=I(r,T===-1?"/":e.slice(0,T),Object.assign(o.query??{},A)),J=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=$),v==="SUBSCRIBE"?new N(F.replace(/^([^]+):\/\//,F.startsWith("https://")?"wss://":"ws://")):(async U=>{let l,K={...t.$fetch?.headers,...x?.headers,...o.headers,...w};if(v!=="GET"&&v!=="HEAD"){l=Object.keys(f).length||Array.isArray(f)?f:void 0;let c=typeof l=="object"||Array.isArray(f);if(c&&X(l)){let g=new FormData;for(let[b,u]of Object.entries(l))if(C)g.append(b,u);else if(u instanceof File)g.append(b,await W(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)g.append(b,await W(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let R=u[m];g.append(b,R instanceof File?await W(R):R)}else g.append(b,u);l=g}else K["content-type"]=c?"application/json":"text/plain",l=c?JSON.stringify(l):f}let y=await J(F,{method:v,body:l,...t.$fetch,...o.fetch,...x,headers:K}),k;if(U.getRaw)return y;switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":k=await y.json();break;default:k=await y.text().then(c=>L(c)?+c:c==="true"?!0:c==="false"?!1:c)}let V=y.status>=300||y.status<200?new S(y.status,k):null,O={data:k,error:V,response:y,status:y.status,headers:y.headers};if(E)for(let c of E){let h=c(O);h instanceof Promise&&(h=await h),h!=null&&(O=h)}return O})({getRaw:d})}}),q=(r,e={fetcher:fetch})=>new Proxy({},{get(t,s){return P(r,s,e)}});var D=(r,e)=>(t,{query:s,params:a,body:n,...o}={})=>{a&&Object.entries(a).forEach(([i,d])=>{t=t.replace(`:${i}`,d)});let f=o.headers?.["Content-Type"];if(!f||f==="application/json")try{n=JSON.stringify(n)}catch{}let A=e?.fetcher||globalThis.fetch,x=s?`?${new URLSearchParams(s).toString()}`:"",w=()=>A(r+t+x,{...o,method:o.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...o.headers}:o.headers,body:n}).then(async i=>{let d;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await i.json();break;default:d=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:w,error:new S(i.status,d)}:{data:d,error:null,status:i.status,headers:i.headers,retry:w}});return w()};return Q(Y);})();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var R=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var t in e)R(r,t,{get:e[t],enumerable:!0})},G=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of V(e))!z.call(r,a)&&a!==t&&R(r,a,{get:()=>e[a],enumerable:!(s=U(e,a))||s.enumerable});return r};var H=r=>G(R({},"__esModule",{value:!0}),r);var Q={};B(Q,{edenFetch:()=>q,edenTreaty:()=>I});module.exports=H(Q);var w=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let s="";for(let[a,n]of Object.entries(t))s+=`${a}=${n}&`;return`${r}${e}?${s.slice(0,-1)}`};var N=typeof FileList>"u",M=r=>N?r instanceof Blob:r instanceof FileList||r instanceof File,_=r=>{if(!r)return!1;for(let e in r){if(M(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>M(t)))return!0}return!1},j=r=>N?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(s)},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,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 n=a.data.toString(),c=n.charCodeAt(0);if(c===47||c===123)try{n=JSON.parse(n)}catch{}else Number.isNaN(+n)?n==="true"?n=!0:n==="false"&&(n=!1):n=+n;t({...a,data:n})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},P=(r,e="",t)=>new Proxy(()=>{},{get(s,a,n){return P(r,`${e}/${a.toString()}`,t)},apply(s,a,[n,c={}]=[{},{}]){let y=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:A,$fetch:v,$headers:S,$transform:i,getRaw:d,...p}=n??{};y??=p;let T=e.lastIndexOf("/"),k=e.slice(T+1).toUpperCase(),F=K(r,T===-1?"/":e.slice(0,T),Object.assign(c.query??{},A)),D=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 J=>{let l,W={...t.$fetch?.headers,...v?.headers,...c.headers,...S};if(k!=="GET"&&k!=="HEAD"){l=Object.keys(y).length||Array.isArray(y)?y:void 0;let f=typeof l=="object"||Array.isArray(y);if(f&&_(l)){let b=new FormData;for(let[x,u]of Object.entries(l))if(N)b.append(x,u);else if(u instanceof File)b.append(x,await j(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)b.append(x,await j(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let O=u[m];b.append(x,O instanceof File?await j(O):O)}else b.append(x,u);l=b}else W["content-type"]=f?"application/json":"text/plain",l=f?JSON.stringify(l):y}let o=await D(F,{method:k,body:l,...t.$fetch,...c.fetch,...v,headers:W}),g;if(J.getRaw)return o;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 C=o.status>=300||o.status<200?new w(o.status,g):null;if(E)for(let f of E){let h=f({data:g,status:o.status,headers:o.headers,response:o,error:C});h instanceof Promise&&(h=await h),h!=null&&(g=h)}return{data:g,error:C,response:o,status:o.status,headers:o.headers}})({getRaw:d})}}),I=(r,e={fetcher:fetch})=>new Proxy({},{get(t,s){return P(r,s,e)}});var q=(r,e)=>(t,{query:s,params:a,body:n,...c}={})=>{a&&Object.entries(a).forEach(([i,d])=>{t=t.replace(`:${i}`,d)});let y=c.headers?.["Content-Type"];if(!y||y==="application/json")try{n=JSON.stringify(n)}catch{}let A=e?.fetcher||globalThis.fetch,v=s?`?${new URLSearchParams(s).toString()}`:"",S=()=>A(r+t+v,{...c,method:c.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...c.headers}:c.headers,body:n}).then(async i=>{let d;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await i.json();break;default:d=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:S,error:new w(i.status,d)}:{data:d,error:null,status:i.status,headers:i.headers,retry:S}});return S()};0&&(module.exports={edenFetch,edenTreaty});
1
+ "use strict";var j=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var H=(r,e)=>{for(var t in e)j(r,t,{get:e[t],enumerable:!0})},_=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of B(e))!G.call(r,a)&&a!==t&&j(r,a,{get:()=>e[a],enumerable:!(s=z(e,a))||s.enumerable});return r};var Q=r=>_(j({},"__esModule",{value:!0}),r);var Y={};H(Y,{edenFetch:()=>D,edenTreaty:()=>q});module.exports=Q(Y);var S=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var I=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let s="";for(let[a,n]of Object.entries(t))s+=`${a}=${n}&`;return`${r}${e}?${s.slice(0,-1)}`},L=r=>!Number.isNaN(parseInt(r));var C=typeof FileList>"u",M=r=>C?r instanceof Blob:r instanceof FileList||r instanceof File,X=r=>{if(!r)return!1;for(let e in r){if(M(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>M(t)))return!0}return!1},W=r=>C?r:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],r.name,{lastModified:r.lastModified,type:r.type});e(s)},t.readAsArrayBuffer(r)}),N=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 n=a.data.toString(),o=n.charCodeAt(0);if(o===47||o===123)try{n=JSON.parse(n)}catch{}else L(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);t({...a,data:n})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},P=(r,e="",t)=>new Proxy(()=>{},{get(s,a,n){return P(r,`${e}/${a.toString()}`,t)},apply(s,a,[n,o={}]=[{},{}]){let f=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:A,$fetch:x,$headers:w,$transform:i,getRaw:d,...p}=n??{};f??=p;let T=e.lastIndexOf("/"),v=e.slice(T+1).toUpperCase(),F=I(r,T===-1?"/":e.slice(0,T),Object.assign(o.query??{},A)),J=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=$),v==="SUBSCRIBE"?new N(F.replace(/^([^]+):\/\//,F.startsWith("https://")?"wss://":"ws://")):(async U=>{let l,K={...t.$fetch?.headers,...x?.headers,...o.headers,...w};if(v!=="GET"&&v!=="HEAD"){l=Object.keys(f).length||Array.isArray(f)?f:void 0;let c=typeof l=="object"||Array.isArray(f);if(c&&X(l)){let g=new FormData;for(let[b,u]of Object.entries(l))if(C)g.append(b,u);else if(u instanceof File)g.append(b,await W(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)g.append(b,await W(u[m]));else if(Array.isArray(u))for(let m=0;m<u.length;m++){let R=u[m];g.append(b,R instanceof File?await W(R):R)}else g.append(b,u);l=g}else K["content-type"]=c?"application/json":"text/plain",l=c?JSON.stringify(l):f}let y=await J(F,{method:v,body:l,...t.$fetch,...o.fetch,...x,headers:K}),k;if(U.getRaw)return y;switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":k=await y.json();break;default:k=await y.text().then(c=>L(c)?+c:c==="true"?!0:c==="false"?!1:c)}let V=y.status>=300||y.status<200?new S(y.status,k):null,O={data:k,error:V,response:y,status:y.status,headers:y.headers};if(E)for(let c of E){let h=c(O);h instanceof Promise&&(h=await h),h!=null&&(O=h)}return O})({getRaw:d})}}),q=(r,e={fetcher:fetch})=>new Proxy({},{get(t,s){return P(r,s,e)}});var D=(r,e)=>(t,{query:s,params:a,body:n,...o}={})=>{a&&Object.entries(a).forEach(([i,d])=>{t=t.replace(`:${i}`,d)});let f=o.headers?.["Content-Type"];if(!f||f==="application/json")try{n=JSON.stringify(n)}catch{}let A=e?.fetcher||globalThis.fetch,x=s?`?${new URLSearchParams(s).toString()}`:"",w=()=>A(r+t+x,{...o,method:o.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...o.headers}:o.headers,body:n}).then(async i=>{let d;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":d=await i.json();break;default:d=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:w,error:new S(i.status,d)}:{data:d,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-NZCTJ6S3.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-3IC43ZE4.mjs";import{a as t}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{t as edenFetch,e as edenTreaty};
@@ -13,4 +13,4 @@ export declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
13
13
  removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
14
14
  close(): this;
15
15
  }
16
- export declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
16
+ export declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, false>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
@@ -1 +1,2 @@
1
1
  export declare const composePath: (domain: string, path: string, query: Record<string, string> | undefined) => string;
2
+ export declare const isNumericString: (message: string) => boolean;
package/dist/treaty.d.mts CHANGED
@@ -116,6 +116,6 @@ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
116
116
  removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
117
117
  close(): this;
118
118
  }
119
- declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
119
+ declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, false>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
120
120
 
121
121
  export { EdenTreaty, EdenWS, edenTreaty };
package/dist/treaty.d.ts CHANGED
@@ -116,6 +116,6 @@ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
116
116
  removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
117
117
  close(): this;
118
118
  }
119
- declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
119
+ declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, false>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
120
120
 
121
121
  export { EdenTreaty, EdenWS, edenTreaty };
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var T=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var z=(s,e)=>{for(var t in e)T(s,t,{get:e[t],enumerable:!0})},B=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!V.call(s,a)&&a!==t&&T(s,a,{get:()=>e[a],enumerable:!(r=D(e,a))||r.enumerable});return s};var H=s=>B(T({},"__esModule",{value:!0}),s);var _={};z(_,{EdenWS:()=>S,edenTreaty:()=>G});var w=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(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",K=s=>O?s instanceof Blob:s instanceof FileList||s instanceof File,U=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},$=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)}),S=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==="false"&&(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:F,$headers:M,$transform:E,getRaw:I,...P}=n??{};u??=P;let v=e.lastIndexOf("/"),b=e.slice(v+1).toUpperCase(),x=W(s,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},N)),C=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=E?Array.isArray(E)?E:[E]:void 0;return k&&(p?p=k.concat(p):p=k),b==="SUBSCRIBE"?new S(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async q=>{let f,R={...t.$fetch?.headers,...F?.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&&U(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 $(c));else if(c instanceof FileList)for(let d=0;d<c.length;d++)m.append(g,await $(c[d]));else if(Array.isArray(c))for(let d=0;d<c.length;d++){let A=c[d];m.append(g,A instanceof File?await $(A):A)}else m.append(g,c);f=m}else R["content-type"]=o?"application/json":"text/plain",f=o?JSON.stringify(f):u}let i=await C(x,{method:b,body:f,...t.$fetch,...l.fetch,...F,headers:R}),h;if(q.getRaw)return i;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 L=i.status>=300||i.status<200?new w(i.status,h):null;if(p)for(let o of p){let y=o({data:h,status:i.status,headers:i.headers,response:i,error:L});y instanceof Promise&&(y=await y),y!=null&&(h=y)}return{data:h,error:L,response:i,status:i.status,headers:i.headers}})({getRaw:I})}}),G=(s,e={fetcher:fetch})=>new Proxy({},{get(t,r){return j(s,r,e)}});return H(_);})();
1
+ "use strict";var Eden=(()=>{var $=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var H=(n,e)=>{for(var t in e)$(n,t,{get:e[t],enumerable:!0})},U=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of z(e))!B.call(n,a)&&a!==t&&$(n,a,{get:()=>e[a],enumerable:!(r=V(e,a))||r.enumerable});return n};var G=n=>U($({},"__esModule",{value:!0}),n);var X={};H(X,{EdenWS:()=>w,edenTreaty:()=>Q});var b=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[a,s]of Object.entries(t))r+=`${a}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`},O=n=>!Number.isNaN(parseInt(n));var F=typeof FileList>"u",j=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,_=n=>{if(!n)return!1;for(let e in n){if(j(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>j(t)))return!0}return!1},R=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(r)},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,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);t({...a,data:s})}else t(a)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},I=(n,e="",t)=>new Proxy(()=>{},{get(r,a,s){return I(n,`${e}/${a.toString()}`,t)},apply(r,a,[s,l={}]=[{},{}]){let u=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:M,$fetch:L,$headers:N,$transform:g,getRaw:P,...C}=s??{};u??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(n,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},M)),q=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=g?Array.isArray(g)?g:[g]:void 0;return k&&(p?p=k.concat(p):p=k),E==="SUBSCRIBE"?new w(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let f,W={...t.$fetch?.headers,...L?.headers,...l.headers,...N};if(E!=="GET"&&E!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let i=typeof f=="object"||Array.isArray(u);if(i&&_(f)){let h=new FormData;for(let[m,c]of Object.entries(f))if(F)h.append(m,c);else if(c instanceof File)h.append(m,await R(c));else if(c instanceof FileList)for(let d=0;d<c.length;d++)h.append(m,await R(c[d]));else if(Array.isArray(c))for(let d=0;d<c.length;d++){let T=c[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,c);f=h}else W["content-type"]=i?"application/json":"text/plain",f=i?JSON.stringify(f):u}let o=await q(x,{method:E,body:f,...t.$fetch,...l.fetch,...L,headers:W}),S;if(D.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":S=await o.json();break;default:S=await o.text().then(i=>O(i)?+i:i==="true"?!0:i==="false"?!1:i)}let J=o.status>=300||o.status<200?new b(o.status,S):null,A={data:S,error:J,response:o,status:o.status,headers:o.headers};if(p)for(let i of p){let y=i(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:P})}}),Q=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return I(n,r,e)}});return G(X);})();
package/dist/treaty.js CHANGED
@@ -1 +1 @@
1
- "use strict";var T=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var z=(s,e)=>{for(var t in e)T(s,t,{get:e[t],enumerable:!0})},B=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!V.call(s,a)&&a!==t&&T(s,a,{get:()=>e[a],enumerable:!(r=D(e,a))||r.enumerable});return s};var H=s=>B(T({},"__esModule",{value:!0}),s);var _={};z(_,{EdenWS:()=>S,edenTreaty:()=>G});module.exports=H(_);var w=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var W=(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",K=s=>O?s instanceof Blob:s instanceof FileList||s instanceof File,U=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},$=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)}),S=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==="false"&&(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:F,$headers:M,$transform:E,getRaw:I,...P}=n??{};u??=P;let v=e.lastIndexOf("/"),b=e.slice(v+1).toUpperCase(),x=W(s,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},N)),C=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=E?Array.isArray(E)?E:[E]:void 0;return k&&(p?p=k.concat(p):p=k),b==="SUBSCRIBE"?new S(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async q=>{let f,R={...t.$fetch?.headers,...F?.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&&U(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 $(c));else if(c instanceof FileList)for(let d=0;d<c.length;d++)m.append(g,await $(c[d]));else if(Array.isArray(c))for(let d=0;d<c.length;d++){let A=c[d];m.append(g,A instanceof File?await $(A):A)}else m.append(g,c);f=m}else R["content-type"]=o?"application/json":"text/plain",f=o?JSON.stringify(f):u}let i=await C(x,{method:b,body:f,...t.$fetch,...l.fetch,...F,headers:R}),h;if(q.getRaw)return i;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 L=i.status>=300||i.status<200?new w(i.status,h):null;if(p)for(let o of p){let y=o({data:h,status:i.status,headers:i.headers,response:i,error:L});y instanceof Promise&&(y=await y),y!=null&&(h=y)}return{data:h,error:L,response:i,status:i.status,headers:i.headers}})({getRaw:I})}}),G=(s,e={fetcher:fetch})=>new Proxy({},{get(t,r){return j(s,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
1
+ "use strict";var $=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var H=(n,e)=>{for(var t in e)$(n,t,{get:e[t],enumerable:!0})},U=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of z(e))!B.call(n,a)&&a!==t&&$(n,a,{get:()=>e[a],enumerable:!(r=V(e,a))||r.enumerable});return n};var G=n=>U($({},"__esModule",{value:!0}),n);var X={};H(X,{EdenWS:()=>w,edenTreaty:()=>Q});module.exports=G(X);var b=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var K=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[a,s]of Object.entries(t))r+=`${a}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`},O=n=>!Number.isNaN(parseInt(n));var F=typeof FileList>"u",j=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,_=n=>{if(!n)return!1;for(let e in n){if(j(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>j(t)))return!0}return!1},R=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(r)},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,a=>{if(e==="message"){let s=a.data.toString(),l=s.charCodeAt(0);if(l===47||l===123)try{s=JSON.parse(s)}catch{}else O(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);t({...a,data:s})}else t(a)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},I=(n,e="",t)=>new Proxy(()=>{},{get(r,a,s){return I(n,`${e}/${a.toString()}`,t)},apply(r,a,[s,l={}]=[{},{}]){let u=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:M,$fetch:L,$headers:N,$transform:g,getRaw:P,...C}=s??{};u??=C;let v=e.lastIndexOf("/"),E=e.slice(v+1).toUpperCase(),x=K(n,v===-1?"/":e.slice(0,v),Object.assign(l.query??{},M)),q=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,k=g?Array.isArray(g)?g:[g]:void 0;return k&&(p?p=k.concat(p):p=k),E==="SUBSCRIBE"?new w(x.replace(/^([^]+):\/\//,x.startsWith("https://")?"wss://":"ws://")):(async D=>{let f,W={...t.$fetch?.headers,...L?.headers,...l.headers,...N};if(E!=="GET"&&E!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let i=typeof f=="object"||Array.isArray(u);if(i&&_(f)){let h=new FormData;for(let[m,c]of Object.entries(f))if(F)h.append(m,c);else if(c instanceof File)h.append(m,await R(c));else if(c instanceof FileList)for(let d=0;d<c.length;d++)h.append(m,await R(c[d]));else if(Array.isArray(c))for(let d=0;d<c.length;d++){let T=c[d];h.append(m,T instanceof File?await R(T):T)}else h.append(m,c);f=h}else W["content-type"]=i?"application/json":"text/plain",f=i?JSON.stringify(f):u}let o=await q(x,{method:E,body:f,...t.$fetch,...l.fetch,...L,headers:W}),S;if(D.getRaw)return o;switch(o.headers.get("Content-Type")?.split(";")[0]){case"application/json":S=await o.json();break;default:S=await o.text().then(i=>O(i)?+i:i==="true"?!0:i==="false"?!1:i)}let J=o.status>=300||o.status<200?new b(o.status,S):null,A={data:S,error:J,response:o,status:o.status,headers:o.headers};if(p)for(let i of p){let y=i(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:P})}}),Q=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return I(n,r,e)}});0&&(module.exports={EdenWS,edenTreaty});
package/dist/treaty.mjs CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-NZCTJ6S3.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
1
+ import{a,b}from"./chunk-3IC43ZE4.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
package/package.json CHANGED
@@ -1,78 +1,82 @@
1
1
  {
2
- "name": "@elysiajs/eden",
3
- "version": "0.7.7",
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.8.1",
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": ["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
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.8.0"
55
+ },
56
+ "peerDependenciesMeta": {
57
+ "@sinclair/typebox": {
58
+ "optional": true
59
+ }
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.8.0",
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
+ "dependencies": {
80
+ "superjson": "^2.2.1"
55
81
  }
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"
74
- },
75
- "dependencies": {
76
- "superjson": "^2.2.1"
77
- }
78
82
  }
@@ -32,7 +32,7 @@ export namespace EdenFetch {
32
32
  : {
33
33
  method: Method
34
34
  }) &
35
- (IsNever<keyof Route['params']> extends true
35
+ (IsNever<Route['params']> extends true
36
36
  ? {
37
37
  params?: Record<never, string>
38
38
  }
@@ -2,7 +2,7 @@ import type { Elysia, InputSchema } from 'elysia'
2
2
 
3
3
  import { EdenFetchError } from '../errors'
4
4
 
5
- import { composePath } from './utils'
5
+ import { composePath, isNumericString } from './utils'
6
6
  import type { EdenTreaty } from './types'
7
7
 
8
8
  export type { EdenTreaty } from './types'
@@ -123,7 +123,7 @@ export class EdenWS<Schema extends InputSchema<any> = InputSchema> {
123
123
  } catch {
124
124
  // Not Empty
125
125
  }
126
- else if (!Number.isNaN(+data)) data = +data
126
+ else if (isNumericString(data)) data = +data
127
127
  else if (data === 'true') data = true
128
128
  else if (data === 'false') data = false
129
129
 
@@ -191,8 +191,14 @@ const createProxy = (
191
191
  ? initialBody
192
192
  : undefined
193
193
 
194
- const { $query, $fetch, $headers, $transform, getRaw, ...restBody } =
195
- initialBody ?? {}
194
+ const {
195
+ $query,
196
+ $fetch,
197
+ $headers,
198
+ $transform,
199
+ getRaw,
200
+ ...restBody
201
+ } = initialBody ?? {}
196
202
 
197
203
  bodyObj ??= restBody
198
204
 
@@ -230,7 +236,9 @@ const createProxy = (
230
236
  )
231
237
  )
232
238
 
233
- const execute = async <T extends EdenTreaty.ExecuteOptions>(modifiers: T): Promise<EdenTreaty.ExecuteReturnType<T>> => {
239
+ const execute = async <T extends EdenTreaty.ExecuteOptions>(
240
+ modifiers: T
241
+ ): Promise<EdenTreaty.ExecuteReturnType<T>> => {
234
242
  let body: any
235
243
 
236
244
  const headers = {
@@ -244,8 +252,8 @@ const createProxy = (
244
252
  body = Object.keys(bodyObj).length
245
253
  ? bodyObj
246
254
  : Array.isArray(bodyObj)
247
- ? bodyObj
248
- : undefined
255
+ ? bodyObj
256
+ : undefined
249
257
 
250
258
  const isObject =
251
259
  typeof body === 'object' || Array.isArray(bodyObj)
@@ -320,7 +328,7 @@ const createProxy = (
320
328
 
321
329
  default:
322
330
  data = await response.text().then((data) => {
323
- if (!Number.isNaN(+data)) return +data
331
+ if (isNumericString(data)) return +data
324
332
  if (data === 'true') return true
325
333
  if (data === 'false') return false
326
334
 
@@ -333,27 +341,23 @@ const createProxy = (
333
341
  ? new EdenFetchError(response.status, data)
334
342
  : null
335
343
 
344
+ let executeReturn = {
345
+ data,
346
+ error,
347
+ response,
348
+ status: response.status,
349
+ headers: response.headers
350
+ }
351
+
336
352
  if (transforms)
337
353
  for (const transform of transforms) {
338
- let temp = transform({
339
- data,
340
- status: response.status,
341
- headers: response.headers,
342
- response,
343
- error
344
- })
354
+ let temp = transform(executeReturn)
345
355
  if (temp instanceof Promise) temp = await temp
346
-
347
- if (temp !== undefined && temp !== null) data = temp
356
+ if (temp !== undefined && temp !== null)
357
+ executeReturn = temp as any
348
358
  }
349
359
 
350
- return {
351
- data,
352
- error,
353
- response: response,
354
- status: response.status,
355
- headers: response.headers
356
- } as any
360
+ return executeReturn as any
357
361
  }
358
362
 
359
363
  return execute({ getRaw })
@@ -13,3 +13,6 @@ export const composePath = (
13
13
 
14
14
  return `${domain}${path}?${q.slice(0, -1)}`
15
15
  }
16
+
17
+ export const isNumericString = (message: string) =>
18
+ !Number.isNaN(parseInt(message))
@@ -1 +0,0 @@
1
- import{a as R}from"./chunk-Y6SMVGJX.mjs";var L=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[c,s]of Object.entries(t))r+=`${c}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var T=typeof FileList>"u",W=n=>T?n instanceof Blob:n instanceof FileList||n instanceof File,q=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},k=n=>T?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let r=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(r)},t.readAsArrayBuffer(n)}),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,c=>{if(e==="message"){let s=c.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==="false"&&(s=!1):s=+s;t({...c,data:s})}else t(c)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},K=(n,e="",t)=>new Proxy(()=>{},{get(r,c,s){return K(n,`${e}/${c.toString()}`,t)},apply(r,c,[s,u={}]=[{},{}]){let y=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:N,$fetch:$,$headers:j,$transform:g,getRaw:M,...I}=s??{};y??=I;let w=e.lastIndexOf("/"),b=e.slice(w+1).toUpperCase(),S=L(n,w===-1?"/":e.slice(0,w),Object.assign(u.query??{},N)),P=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,v=g?Array.isArray(g)?g:[g]:void 0;return v&&(p?p=v.concat(p):p=v),b==="SUBSCRIBE"?new x(S.replace(/^([^]+):\/\//,S.startsWith("https://")?"wss://":"ws://")):(async C=>{let f,F={...t.$fetch?.headers,...$?.headers,...u.headers,...j};if(b!=="GET"&&b!=="HEAD"){f=Object.keys(y).length||Array.isArray(y)?y:void 0;let i=typeof f=="object"||Array.isArray(y);if(i&&q(f)){let m=new FormData;for(let[E,o]of Object.entries(f))if(T)m.append(E,o);else if(o instanceof File)m.append(E,await k(o));else if(o instanceof FileList)for(let l=0;l<o.length;l++)m.append(E,await k(o[l]));else if(Array.isArray(o))for(let l=0;l<o.length;l++){let A=o[l];m.append(E,A instanceof File?await k(A):A)}else m.append(E,o);f=m}else F["content-type"]=i?"application/json":"text/plain",f=i?JSON.stringify(f):y}let a=await P(S,{method:b,body:f,...t.$fetch,...u.fetch,...$,headers:F}),h;if(C.getRaw)return a;switch(a.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await a.json();break;default:h=await a.text().then(i=>Number.isNaN(+i)?i==="true"?!0:i==="false"?!1:i:+i)}let O=a.status>=300||a.status<200?new R(a.status,h):null;if(p)for(let i of p){let d=i({data:h,status:a.status,headers:a.headers,response:a,error:O});d instanceof Promise&&(d=await d),d!=null&&(h=d)}return{data:h,error:O,response:a,status:a.status,headers:a.headers}})({getRaw:M})}}),U=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return K(n,r,e)}});export{x as a,U as b};