@elysiajs/eden 0.5.4 → 0.5.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/dist/treaty/index.d.ts +3 -1
- package/dist/treaty.js +1 -1
- package/dist/treaty.mjs +11 -9
- package/package.json +2 -2
- package/src/treaty/index.ts +7 -3
- package/src/treaty/types.ts +19 -9
package/dist/treaty/index.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export declare class EdenWS<Schema extends TypedSchema<any> = TypedSchema> {
|
|
|
14
14
|
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
15
15
|
close(): this;
|
|
16
16
|
}
|
|
17
|
-
export declare const edenTreaty: <App extends Elysia<any>>(domain: string, config?: {
|
|
17
|
+
export declare const edenTreaty: <App extends Elysia<any>>(domain: string, config?: {
|
|
18
|
+
fetcher?: typeof fetch;
|
|
19
|
+
}) => EdenTreaty.Create<App>;
|
package/dist/treaty.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var O=Object.defineProperty;var m=(r,e,t)=>e in r?O(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var w=(r,e,t)=>(m(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./utils-a2cfc56a.js"),k=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(const[f,s]of Object.entries(t))n+=`${f}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`},
|
|
1
|
+
"use strict";var O=Object.defineProperty;var m=(r,e,t)=>e in r?O(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var w=(r,e,t)=>(m(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./utils-a2cfc56a.js"),k=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(const[f,s]of Object.entries(t))n+=`${f}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`},h=typeof FileList>"u",S=r=>h?r instanceof Blob:r instanceof FileList||r instanceof File,x=r=>{for(let e in r){if(S(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>S(t)))return!0}return!1},E=r=>h?r:new Promise(e=>{const t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:r.type}))},t.readAsArrayBuffer(r)});class F{constructor(e){w(this,"ws");w(this,"url");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,f=>{if(e==="message"){let s=f.data.toString();const i=s.charCodeAt(0);if(i===47||i===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...f,data:s})}else t(f)},n),this}removeEventListener(e,t,n){return this.off(e,t,n),this}close(){return this.ws.close(),this}}const L=(r,e="",t)=>new Proxy(()=>{},{get(n,f,s){return L(r,`${e}/${f.toString()}`,t)},apply(n,f,[{$query:s,$fetch:i,$body:N,...p}={$fetch:void 0,$query:void 0,$body:void 0}]=[{}]){const b=e.lastIndexOf("/"),g=e.slice(b+1),d=k(r,e.slice(0,b),s);return g==="subscribe"?new F(d.replace(/^([^]+):\/\//,d.startsWith("https://")?"wss://":"ws://")):(async()=>{let c=N??(Object.keys(p).length?p:void 0);const y=typeof c=="object",v=y&&x(c);if(v){const o=new FormData;for(const[a,l]of Object.entries(c))if(h)o.append(a,l);else if(l instanceof File)o.append(a,await E(l));else if(l instanceof FileList)for(let u=0;u<l.length;u++)o.append(a,await E(l[u]));else o.append(a,l);c=o}else y&&(c=JSON.stringify(c));return(t.fetcher??fetch)(d,{method:g,body:c,...i,headers:c?v?i==null?void 0:i.headers:{"content-type":y?"application/json":"text/plain",...i==null?void 0:i.headers}:i==null?void 0:i.headers}).then(async o=>{var l;let a;switch((l=o.headers.get("Content-Type"))==null?void 0:l.split(";")[0]){case"application/json":a=await o.json();break;default:a=await o.text().then(u=>Number.isNaN(+u)?u==="true"?!0:u==="false"?!1:u:+u)}return o.status>300?{data:a,error:new j.EdenFetchError(o.status,await a)}:{data:a,error:null}})})()}}),A=(r,e={fetcher:fetch})=>new Proxy({},{get(t,n){return L(r,n,e)}});exports.EdenWS=F;exports.edenTreaty=A;
|
package/dist/treaty.mjs
CHANGED
|
@@ -77,23 +77,23 @@ class A {
|
|
|
77
77
|
const m = (r, e = "", t) => new Proxy(() => {
|
|
78
78
|
}, {
|
|
79
79
|
get(n, f, s) {
|
|
80
|
-
return m(r, `${e}/${f.toString()}
|
|
80
|
+
return m(r, `${e}/${f.toString()}`, t);
|
|
81
81
|
},
|
|
82
82
|
apply(n, f, [
|
|
83
|
-
{ $query: s, $fetch: i, $body: L, ...
|
|
83
|
+
{ $query: s, $fetch: i, $body: L, ...h } = {
|
|
84
84
|
$fetch: void 0,
|
|
85
85
|
$query: void 0,
|
|
86
86
|
$body: void 0
|
|
87
87
|
}
|
|
88
88
|
] = [{}]) {
|
|
89
|
-
const
|
|
90
|
-
return
|
|
89
|
+
const b = e.lastIndexOf("/"), g = e.slice(b + 1), d = O(r, e.slice(0, b), s);
|
|
90
|
+
return g === "subscribe" ? new A(
|
|
91
91
|
d.replace(
|
|
92
92
|
/^([^]+):\/\//,
|
|
93
93
|
d.startsWith("https://") ? "wss://" : "ws://"
|
|
94
94
|
)
|
|
95
95
|
) : (async () => {
|
|
96
|
-
let c = L ?? (Object.keys(
|
|
96
|
+
let c = L ?? (Object.keys(h).length ? h : void 0);
|
|
97
97
|
const y = typeof c == "object", v = y && k(c);
|
|
98
98
|
if (v) {
|
|
99
99
|
const o = new FormData();
|
|
@@ -116,8 +116,8 @@ const m = (r, e = "", t) => new Proxy(() => {
|
|
|
116
116
|
c = o;
|
|
117
117
|
} else
|
|
118
118
|
y && (c = JSON.stringify(c));
|
|
119
|
-
return fetch(d, {
|
|
120
|
-
method:
|
|
119
|
+
return (t.fetcher ?? fetch)(d, {
|
|
120
|
+
method: g,
|
|
121
121
|
body: c,
|
|
122
122
|
// ...config.fetch,
|
|
123
123
|
...i,
|
|
@@ -142,11 +142,13 @@ const m = (r, e = "", t) => new Proxy(() => {
|
|
|
142
142
|
});
|
|
143
143
|
})();
|
|
144
144
|
}
|
|
145
|
-
}), P = (r, e = {
|
|
145
|
+
}), P = (r, e = {
|
|
146
|
+
fetcher: fetch
|
|
147
|
+
}) => new Proxy(
|
|
146
148
|
{},
|
|
147
149
|
{
|
|
148
150
|
get(t, n) {
|
|
149
|
-
return m(r, n);
|
|
151
|
+
return m(r, n, e);
|
|
150
152
|
}
|
|
151
153
|
}
|
|
152
154
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elysiajs/eden",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"description": "Fully type-safe Elysia client",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "saltyAom",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@elysiajs/cors": "0.5.0",
|
|
72
|
-
"@elysiajs/fn": "0.5.
|
|
72
|
+
"@elysiajs/fn": "^0.5.2",
|
|
73
73
|
"@sinclair/typebox": "^0.26.8",
|
|
74
74
|
"@types/node": "^18.15.5",
|
|
75
75
|
"bun-types": "^0.5.8",
|
package/src/treaty/index.ts
CHANGED
|
@@ -151,7 +151,7 @@ export class EdenWS<Schema extends TypedSchema<any> = TypedSchema> {
|
|
|
151
151
|
const createProxy = (
|
|
152
152
|
domain: string,
|
|
153
153
|
path: string = '',
|
|
154
|
-
config:
|
|
154
|
+
config: EdenTreaty.Config
|
|
155
155
|
): Record<string, unknown> =>
|
|
156
156
|
new Proxy(() => {}, {
|
|
157
157
|
get(target, key, value) {
|
|
@@ -216,7 +216,7 @@ const createProxy = (
|
|
|
216
216
|
body = newBody
|
|
217
217
|
} else if (isObject) body = JSON.stringify(body)
|
|
218
218
|
|
|
219
|
-
return fetch(url, {
|
|
219
|
+
return (config.fetcher ?? fetch)(url, {
|
|
220
220
|
method,
|
|
221
221
|
body,
|
|
222
222
|
// ...config.fetch,
|
|
@@ -263,7 +263,11 @@ const createProxy = (
|
|
|
263
263
|
|
|
264
264
|
export const edenTreaty = <App extends Elysia<any>>(
|
|
265
265
|
domain: string,
|
|
266
|
-
config: {
|
|
266
|
+
config: {
|
|
267
|
+
fetcher?: typeof fetch
|
|
268
|
+
} = {
|
|
269
|
+
fetcher: fetch
|
|
270
|
+
}
|
|
267
271
|
): EdenTreaty.Create<App> =>
|
|
268
272
|
new Proxy(
|
|
269
273
|
{},
|
package/src/treaty/types.ts
CHANGED
|
@@ -18,7 +18,9 @@ export namespace EdenTreaty {
|
|
|
18
18
|
? EdenTreaty.Sign<Schema>
|
|
19
19
|
: 'Please install Elysia before using Eden'
|
|
20
20
|
|
|
21
|
-
export interface Config {
|
|
21
|
+
export interface Config {
|
|
22
|
+
fetcher?: typeof fetch
|
|
23
|
+
}
|
|
22
24
|
|
|
23
25
|
export type Sign<A> = {
|
|
24
26
|
[Path in keyof A as Path extends `/${infer Prefix}/${infer _}`
|
|
@@ -48,7 +50,9 @@ export namespace EdenTreaty {
|
|
|
48
50
|
$fetch?: RequestInit
|
|
49
51
|
}) => Promise<
|
|
50
52
|
| {
|
|
51
|
-
data: Awaited<
|
|
53
|
+
data: Awaited<
|
|
54
|
+
Route['response']['200']
|
|
55
|
+
>
|
|
52
56
|
error: null
|
|
53
57
|
}
|
|
54
58
|
| {
|
|
@@ -73,7 +77,9 @@ export namespace EdenTreaty {
|
|
|
73
77
|
$fetch?: RequestInit
|
|
74
78
|
}) => Promise<
|
|
75
79
|
| {
|
|
76
|
-
data: Awaited<
|
|
80
|
+
data: Awaited<
|
|
81
|
+
Route['response']['200']
|
|
82
|
+
>
|
|
77
83
|
error: null
|
|
78
84
|
}
|
|
79
85
|
| {
|
|
@@ -99,7 +105,7 @@ export namespace EdenTreaty {
|
|
|
99
105
|
Blob | Blob[],
|
|
100
106
|
File | FileList
|
|
101
107
|
> & {
|
|
102
|
-
$query?:
|
|
108
|
+
$query?: Route['query']
|
|
103
109
|
$fetch?: RequestInit
|
|
104
110
|
}
|
|
105
111
|
) => Promise<
|
|
@@ -107,7 +113,7 @@ export namespace EdenTreaty {
|
|
|
107
113
|
data: Route['response'] extends {
|
|
108
114
|
200: infer ReturnedType
|
|
109
115
|
}
|
|
110
|
-
? ReturnedType
|
|
116
|
+
? Awaited<ReturnedType>
|
|
111
117
|
: unknown
|
|
112
118
|
error: null
|
|
113
119
|
}
|
|
@@ -148,7 +154,9 @@ export namespace EdenTreaty {
|
|
|
148
154
|
$fetch?: RequestInit
|
|
149
155
|
}) => Promise<
|
|
150
156
|
| {
|
|
151
|
-
data: Awaited<
|
|
157
|
+
data: Awaited<
|
|
158
|
+
Route['response']['200']
|
|
159
|
+
>
|
|
152
160
|
error: null
|
|
153
161
|
}
|
|
154
162
|
| {
|
|
@@ -173,7 +181,9 @@ export namespace EdenTreaty {
|
|
|
173
181
|
$fetch?: RequestInit
|
|
174
182
|
}) => Promise<
|
|
175
183
|
| {
|
|
176
|
-
data: Awaited<
|
|
184
|
+
data: Awaited<
|
|
185
|
+
Route['response']['200']
|
|
186
|
+
>
|
|
177
187
|
error: null
|
|
178
188
|
}
|
|
179
189
|
| {
|
|
@@ -199,7 +209,7 @@ export namespace EdenTreaty {
|
|
|
199
209
|
Blob | Blob[],
|
|
200
210
|
File | FileList
|
|
201
211
|
> & {
|
|
202
|
-
$query?:
|
|
212
|
+
$query?: Route['query']
|
|
203
213
|
$fetch?: RequestInit
|
|
204
214
|
}
|
|
205
215
|
) => Promise<
|
|
@@ -207,7 +217,7 @@ export namespace EdenTreaty {
|
|
|
207
217
|
data: Route['response'] extends {
|
|
208
218
|
200: infer ReturnedType
|
|
209
219
|
}
|
|
210
|
-
? ReturnedType
|
|
220
|
+
? Awaited<ReturnedType>
|
|
211
221
|
: unknown
|
|
212
222
|
error: null
|
|
213
223
|
}
|