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