@elysiajs/eden 0.7.1 → 0.7.3
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/chunk-3KYW6H6M.mjs +1 -0
- package/dist/chunk-6KKDNR4U.mjs +1 -0
- package/dist/fetch/types.d.ts +0 -1
- package/dist/fetch.d.mts +49 -0
- package/dist/fetch.d.ts +49 -0
- package/dist/fetch.global.js +1 -1
- package/dist/fetch.js +1 -1
- package/dist/fetch.mjs +1 -1
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.global.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/treaty/index.d.ts +0 -1
- package/dist/treaty/types.d.ts +6 -5
- package/dist/treaty.d.mts +91 -0
- package/dist/treaty.d.ts +91 -0
- package/dist/treaty.global.js +1 -1
- package/dist/treaty.js +1 -1
- package/dist/treaty.mjs +1 -1
- package/dist/types-d1b334ad.d.ts +22 -0
- package/dist/types.d.ts +2 -1
- package/package.json +75 -76
- package/src/fetch/index.ts +1 -0
- package/src/treaty/index.ts +2 -2
- package/src/treaty/types.ts +8 -3
- package/src/types.ts +8 -2
- package/tsup.config.ts +6 -3
- package/dist/chunk-BYO7CHLQ.mjs +0 -1
- package/dist/chunk-FY4RFSUV.mjs +0 -1
- package/dist/chunk-G4C5WHQF.mjs +0 -1
- package/dist/chunk-MCTOFP4H.mjs +0 -1
- package/dist/chunk-TUC2YNFX.mjs +0 -1
- package/dist/chunk-V6QCRD5H.mjs +0 -1
- package/dist/chunk-X77HNZQV.mjs +0 -1
- package/dist/fn/index.d.ts +0 -7
- package/dist/fn/types.d.ts +0 -27
- package/dist/fn/utils.d.ts +0 -13
- package/dist/fn.global.js +0 -1
- package/dist/fn.js +0 -1
- package/dist/fn.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as y}from"./chunk-Y6SMVGJX.mjs";var m=(p,u)=>(s,{query:h,params:i,body:n,...r}={})=>{i&&Object.entries(i).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=r.headers?.["Content-Type"];if(!o||o==="application/json")try{n=JSON.stringify(n)}catch{}let f=u?.fetcher||globalThis.fetch,l=h?`?${new URLSearchParams(h).toString()}`:"",c=()=>f(p+s+l,{...r,method:r.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...r.headers}:r.headers,body:n}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new y(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{m as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as w}from"./chunk-Y6SMVGJX.mjs";var k=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var S=typeof FileList>"u",x=n=>S?n instanceof Blob:n instanceof FileList||n instanceof File,F=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>S?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),v=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),d=s.charCodeAt(0);if(d===47||d===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},L=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return L(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:W,...b}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let h=e.lastIndexOf("/"),u=e.slice(h+1).toUpperCase(),E=k(n,h===-1?"/":e.slice(0,h),s),A=t.fetcher??fetch;return u==="SUBSCRIBE"?new v(E.replace(/^([^]+):\/\//,E.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,m={...t.$fetch?.headers,...d?.headers,...W};if(u!=="GET"&&u!=="HEAD"){c=Object.keys(b).length?b:void 0;let a=typeof c=="object";if(a&&F(c)){let y=new FormData;for(let[p,f]of Object.entries(c))if(S)y.append(p,f);else if(f instanceof File)y.append(p,await $(f));else if(f instanceof FileList)for(let g=0;g<f.length;g++)y.append(p,await $(f[g]));else y.append(p,f);c=y}else m["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await A(E,{method:u,body:c,...t.$fetch,...d,headers:m}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new w(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),B=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return L(n,r,e)}});export{v as a,B as b};
|
package/dist/fetch/types.d.ts
CHANGED
package/dist/fetch.d.mts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Elysia } from 'elysia';
|
|
2
|
+
import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-d1b334ad.js';
|
|
3
|
+
|
|
4
|
+
type Prettify<T> = {
|
|
5
|
+
[K in keyof T]: T[K];
|
|
6
|
+
} & {};
|
|
7
|
+
declare namespace EdenFetch {
|
|
8
|
+
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
9
|
+
schema: infer Schema extends Record<string, any>;
|
|
10
|
+
} ? EdenFetch.Fn<Schema> : 'Please install Elysia before using Eden';
|
|
11
|
+
interface Config {
|
|
12
|
+
fetcher?: typeof globalThis.fetch;
|
|
13
|
+
}
|
|
14
|
+
type Fn<Schema extends Record<string, any>> = <Endpoint extends keyof Schema, Method extends Uppercase<Extract<keyof Schema[Endpoint], string>>, Route extends Schema[Endpoint][Lowercase<Method>]>(endpoint: Endpoint, options: Omit<RequestInit, 'body' | 'method' | 'headers'> & ('GET' extends Method ? {
|
|
15
|
+
method?: Method;
|
|
16
|
+
} : {
|
|
17
|
+
method: Method;
|
|
18
|
+
}) & (IsNever<keyof Route['params']> extends true ? {
|
|
19
|
+
params?: Record<never, string>;
|
|
20
|
+
} : {
|
|
21
|
+
params: Route['params'];
|
|
22
|
+
}) & (IsNever<keyof Route['query']> extends true ? {
|
|
23
|
+
query?: Record<never, string>;
|
|
24
|
+
} : {
|
|
25
|
+
query: Route['query'];
|
|
26
|
+
}) & (undefined extends Route['headers'] ? {
|
|
27
|
+
headers?: Record<string, string>;
|
|
28
|
+
} : {
|
|
29
|
+
headers: Route['headers'];
|
|
30
|
+
}) & (IsUnknown<Route['body']> extends false ? {
|
|
31
|
+
body: Route['body'];
|
|
32
|
+
} : {
|
|
33
|
+
body?: unknown;
|
|
34
|
+
})) => Promise<Prettify<({
|
|
35
|
+
data: Awaited<Route['response']['200']>;
|
|
36
|
+
error: null;
|
|
37
|
+
} | {
|
|
38
|
+
data: null;
|
|
39
|
+
error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
|
|
40
|
+
}) & {
|
|
41
|
+
status: number;
|
|
42
|
+
response: Response;
|
|
43
|
+
headers: Record<string, string>;
|
|
44
|
+
}>>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
|
48
|
+
|
|
49
|
+
export { EdenFetch, edenFetch };
|
package/dist/fetch.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Elysia } from 'elysia';
|
|
2
|
+
import { a as IsNever, I as IsUnknown, M as MapError, E as EdenFetchError } from './types-d1b334ad.js';
|
|
3
|
+
|
|
4
|
+
type Prettify<T> = {
|
|
5
|
+
[K in keyof T]: T[K];
|
|
6
|
+
} & {};
|
|
7
|
+
declare namespace EdenFetch {
|
|
8
|
+
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
9
|
+
schema: infer Schema extends Record<string, any>;
|
|
10
|
+
} ? EdenFetch.Fn<Schema> : 'Please install Elysia before using Eden';
|
|
11
|
+
interface Config {
|
|
12
|
+
fetcher?: typeof globalThis.fetch;
|
|
13
|
+
}
|
|
14
|
+
type Fn<Schema extends Record<string, any>> = <Endpoint extends keyof Schema, Method extends Uppercase<Extract<keyof Schema[Endpoint], string>>, Route extends Schema[Endpoint][Lowercase<Method>]>(endpoint: Endpoint, options: Omit<RequestInit, 'body' | 'method' | 'headers'> & ('GET' extends Method ? {
|
|
15
|
+
method?: Method;
|
|
16
|
+
} : {
|
|
17
|
+
method: Method;
|
|
18
|
+
}) & (IsNever<keyof Route['params']> extends true ? {
|
|
19
|
+
params?: Record<never, string>;
|
|
20
|
+
} : {
|
|
21
|
+
params: Route['params'];
|
|
22
|
+
}) & (IsNever<keyof Route['query']> extends true ? {
|
|
23
|
+
query?: Record<never, string>;
|
|
24
|
+
} : {
|
|
25
|
+
query: Route['query'];
|
|
26
|
+
}) & (undefined extends Route['headers'] ? {
|
|
27
|
+
headers?: Record<string, string>;
|
|
28
|
+
} : {
|
|
29
|
+
headers: Route['headers'];
|
|
30
|
+
}) & (IsUnknown<Route['body']> extends false ? {
|
|
31
|
+
body: Route['body'];
|
|
32
|
+
} : {
|
|
33
|
+
body?: unknown;
|
|
34
|
+
})) => Promise<Prettify<({
|
|
35
|
+
data: Awaited<Route['response']['200']>;
|
|
36
|
+
error: null;
|
|
37
|
+
} | {
|
|
38
|
+
data: null;
|
|
39
|
+
error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
|
|
40
|
+
}) & {
|
|
41
|
+
status: number;
|
|
42
|
+
response: Response;
|
|
43
|
+
headers: Record<string, string>;
|
|
44
|
+
}>>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
|
48
|
+
|
|
49
|
+
export { EdenFetch, edenFetch };
|
package/dist/fetch.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var Eden=(()=>{var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!g.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};x(b,{edenFetch:()=>w});var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:o,...i}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{o=JSON.stringify(o)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...i,method:i.method?.toUpperCase()||"GET",headers:o?{"content-type":"application/json",...i.headers}:i.headers,body:o}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(c=>Number.isNaN(+c)?c==="true"?!0:c==="false"?!1:c:+c);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};return j(b);})();
|
package/dist/fetch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var a in e)p(r,a,{get:e[a],enumerable:!0})},S=(r,e,a,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!g.call(r,s)&&s!==a&&p(r,s,{get:()=>e[s],enumerable:!(u=m(e,s))||u.enumerable});return r};var j=r=>S(p({},"__esModule",{value:!0}),r);var b={};x(b,{edenFetch:()=>w});module.exports=j(b);var h=class extends Error{status;value;constructor(e,a){super(),this.status=e,this.value=a}};var w=(r,e)=>(a,{query:u,params:s,body:o,...i}={})=>{s&&Object.entries(s).forEach(([t,n])=>{a=a.replace(`:${t}`,n)});let y=i.headers?.["Content-Type"];if(!y||y==="application/json")try{o=JSON.stringify(o)}catch{}let f=e?.fetcher||globalThis.fetch,d=u?`?${new URLSearchParams(u).toString()}`:"",l=()=>f(r+a+d,{...i,method:i.method?.toUpperCase()||"GET",headers:o?{"content-type":"application/json",...i.headers}:i.headers,body:o}).then(async t=>{let n;switch(t.headers.get("Content-Type")?.split(";")[0]){case"application/json":n=await t.json();break;default:n=await t.text().then(c=>Number.isNaN(+c)?c==="true"?!0:c==="false"?!1:c:+c);break}return t.status>300?{data:null,status:t.status,headers:t.headers,retry:l,error:new h(t.status,n)}:{data:n,error:null,status:t.status,headers:t.headers,retry:l}});return l()};0&&(module.exports={edenFetch});
|
package/dist/fetch.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as edenFetch};
|
package/dist/index.d.mts
ADDED
package/dist/index.d.ts
CHANGED
package/dist/index.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var x=Object.defineProperty;var
|
|
1
|
+
"use strict";var Eden=(()=>{var x=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var R=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},B=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!j.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=C(e,a))||s.enumerable});return n};var I=n=>B(x({},"__esModule",{value:!0}),n);var P={};R(P,{edenFetch:()=>N,edenTreaty:()=>W});var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var $=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var F=typeof FileList>"u",A=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,M=n=>{if(!n)return!1;for(let e in n){if(A(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>A(t)))return!0}return!1},L=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),k=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),o=r.charCodeAt(0);if(o===47||o===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},O=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return O(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:o,$headers:S,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let m=e.lastIndexOf("/"),u=e.slice(m+1).toUpperCase(),i=$(n,m===-1?"/":e.slice(0,m),r),y=t.fetcher??fetch;return u==="SUBSCRIBE"?new k(i.replace(/^([^]+):\/\//,i.startsWith("https://")?"wss://":"ws://")):(async()=>{let l,T={...t.$fetch?.headers,...o?.headers,...S};if(u!=="GET"&&u!=="HEAD"){l=Object.keys(w).length?w:void 0;let f=typeof l=="object";if(f&&M(l)){let g=new FormData;for(let[b,d]of Object.entries(l))if(F)g.append(b,d);else if(d instanceof File)g.append(b,await L(d));else if(d instanceof FileList)for(let v=0;v<d.length;v++)g.append(b,await L(d[v]));else g.append(b,d);l=g}else T["content-type"]=f?"application/json":"text/plain",f&&(l=JSON.stringify(l))}let c=await y(i,{method:u,body:l,...t.$fetch,...o,headers:T}),E;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await c.json();break;default:E=await c.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}return c.status>300?{data:E,error:new h(c.status,await E),status:c.status,raw:c,headers:c.headers}:{data:E,status:c.status,response:c,headers:c.headers,error:null}})()}}),W=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return O(n,s,e)}});var N=(n,e)=>(t,{query:s,params:a,body:r,...o}={})=>{a&&Object.entries(a).forEach(([i,y])=>{t=t.replace(`:${i}`,y)});let S=o.headers?.["Content-Type"];if(!S||S==="application/json")try{r=JSON.stringify(r)}catch{}let w=e?.fetcher||globalThis.fetch,m=s?`?${new URLSearchParams(s).toString()}`:"",u=()=>w(n+t+m,{...o,method:o.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...o.headers}:o.headers,body:r}).then(async i=>{let y;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await i.json();break;default:y=await i.text().then(p=>Number.isNaN(+p)?p==="true"?!0:p==="false"?!1:p:+p);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:u,error:new h(i.status,y)}:{data:y,error:null,status:i.status,headers:i.headers,retry:u}});return u()};return I(P);})();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var x=Object.defineProperty;var
|
|
1
|
+
"use strict";var x=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var R=(n,e)=>{for(var t in e)x(n,t,{get:e[t],enumerable:!0})},B=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!j.call(n,a)&&a!==t&&x(n,a,{get:()=>e[a],enumerable:!(s=C(e,a))||s.enumerable});return n};var I=n=>B(x({},"__esModule",{value:!0}),n);var P={};R(P,{edenFetch:()=>N,edenTreaty:()=>W});module.exports=I(P);var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var $=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var F=typeof FileList>"u",A=n=>F?n instanceof Blob:n instanceof FileList||n instanceof File,M=n=>{if(!n)return!1;for(let e in n){if(A(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>A(t)))return!0}return!1},L=n=>F?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),k=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),o=r.charCodeAt(0);if(o===47||o===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},O=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return O(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:o,$headers:S,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let m=e.lastIndexOf("/"),u=e.slice(m+1).toUpperCase(),i=$(n,m===-1?"/":e.slice(0,m),r),y=t.fetcher??fetch;return u==="SUBSCRIBE"?new k(i.replace(/^([^]+):\/\//,i.startsWith("https://")?"wss://":"ws://")):(async()=>{let l,T={...t.$fetch?.headers,...o?.headers,...S};if(u!=="GET"&&u!=="HEAD"){l=Object.keys(w).length?w:void 0;let f=typeof l=="object";if(f&&M(l)){let g=new FormData;for(let[b,d]of Object.entries(l))if(F)g.append(b,d);else if(d instanceof File)g.append(b,await L(d));else if(d instanceof FileList)for(let v=0;v<d.length;v++)g.append(b,await L(d[v]));else g.append(b,d);l=g}else T["content-type"]=f?"application/json":"text/plain",f&&(l=JSON.stringify(l))}let c=await y(i,{method:u,body:l,...t.$fetch,...o,headers:T}),E;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await c.json();break;default:E=await c.text().then(f=>Number.isNaN(+f)?f==="true"?!0:f==="false"?!1:f:+f)}return c.status>300?{data:E,error:new h(c.status,await E),status:c.status,raw:c,headers:c.headers}:{data:E,status:c.status,response:c,headers:c.headers,error:null}})()}}),W=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return O(n,s,e)}});var N=(n,e)=>(t,{query:s,params:a,body:r,...o}={})=>{a&&Object.entries(a).forEach(([i,y])=>{t=t.replace(`:${i}`,y)});let S=o.headers?.["Content-Type"];if(!S||S==="application/json")try{r=JSON.stringify(r)}catch{}let w=e?.fetcher||globalThis.fetch,m=s?`?${new URLSearchParams(s).toString()}`:"",u=()=>w(n+t+m,{...o,method:o.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...o.headers}:o.headers,body:r}).then(async i=>{let y;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await i.json();break;default:y=await i.text().then(p=>Number.isNaN(+p)?p==="true"?!0:p==="false"?!1:p:+p);break}return i.status>300?{data:null,status:i.status,headers:i.headers,retry:u,error:new h(i.status,y)}:{data:y,error:null,status:i.status,headers:i.headers,retry:u}});return u()};0&&(module.exports={edenFetch,edenTreaty});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e}from"./chunk-
|
|
1
|
+
import{b as e}from"./chunk-6KKDNR4U.mjs";import{a as t}from"./chunk-3KYW6H6M.mjs";import"./chunk-Y6SMVGJX.mjs";export{t as edenFetch,e as edenTreaty};
|
package/dist/treaty/index.d.ts
CHANGED
package/dist/treaty/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
import type { Elysia } from 'elysia';
|
|
2
3
|
import type { EdenWS } from './index';
|
|
3
4
|
import type { IsUnknown, IsNever, UnionToIntersect, MapError } from '../types';
|
|
@@ -12,13 +13,13 @@ type Prettify<T> = {
|
|
|
12
13
|
} & {};
|
|
13
14
|
type AnySchema = {
|
|
14
15
|
body: unknown;
|
|
15
|
-
headers:
|
|
16
|
-
query:
|
|
17
|
-
params:
|
|
16
|
+
headers: unknown;
|
|
17
|
+
query: unknown;
|
|
18
|
+
params: unknown;
|
|
18
19
|
response: any;
|
|
19
20
|
};
|
|
20
21
|
export declare namespace EdenTreaty {
|
|
21
|
-
type Create<App extends Elysia<any, any>> = App
|
|
22
|
+
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
22
23
|
schema: infer Schema extends Record<string, any>;
|
|
23
24
|
} ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
24
25
|
interface Config {
|
|
@@ -28,7 +29,7 @@ export declare namespace EdenTreaty {
|
|
|
28
29
|
$fetch?: RequestInit;
|
|
29
30
|
fetcher?: typeof fetch;
|
|
30
31
|
}
|
|
31
|
-
type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema>, Carry extends string = ''> = Paths extends [
|
|
32
|
+
type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
|
|
32
33
|
infer Prefix extends string | number,
|
|
33
34
|
...infer Rest extends (string | number)[]
|
|
34
35
|
] ? {
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Elysia, InputSchema } from 'elysia';
|
|
2
|
+
import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-d1b334ad.js';
|
|
3
|
+
|
|
4
|
+
/// <reference lib="dom" />
|
|
5
|
+
|
|
6
|
+
type Files = File | FileList;
|
|
7
|
+
type Replace<RecordType, TargetType, GenericType> = {
|
|
8
|
+
[K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
|
|
9
|
+
};
|
|
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
|
+
type AnySchema = {
|
|
15
|
+
body: unknown;
|
|
16
|
+
headers: unknown;
|
|
17
|
+
query: unknown;
|
|
18
|
+
params: unknown;
|
|
19
|
+
response: any;
|
|
20
|
+
};
|
|
21
|
+
declare namespace EdenTreaty {
|
|
22
|
+
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
23
|
+
schema: infer Schema extends Record<string, any>;
|
|
24
|
+
} ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
25
|
+
interface Config {
|
|
26
|
+
/**
|
|
27
|
+
* Default options to pass to fetch
|
|
28
|
+
*/
|
|
29
|
+
$fetch?: RequestInit;
|
|
30
|
+
fetcher?: typeof fetch;
|
|
31
|
+
}
|
|
32
|
+
type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
|
|
33
|
+
infer Prefix extends string | number,
|
|
34
|
+
...infer Rest extends (string | number)[]
|
|
35
|
+
] ? {
|
|
36
|
+
[Key in Prefix as Prefix extends `:${string}` ? (string & {}) | number | Prefix : Prefix]: Sign<Schema, Rest, `${Carry}/${Key}`>;
|
|
37
|
+
} : Schema[Carry extends '' ? '/' : Carry] extends infer Routes ? {
|
|
38
|
+
[Method in keyof Routes]: Routes[Method] extends infer Route extends AnySchema ? Method extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
|
|
39
|
+
$query?: Record<string, string>;
|
|
40
|
+
}) => EdenWS<Route> : (params: {
|
|
41
|
+
$query: Route['query'];
|
|
42
|
+
}) => EdenWS<Route> : ((params: {
|
|
43
|
+
$fetch?: RequestInit;
|
|
44
|
+
} & (IsUnknown<Route['body']> extends false ? Replace<Route['body'], Blob | Blob[], Files> : {}) & (undefined extends Route['query'] ? {
|
|
45
|
+
$query?: Record<string, string>;
|
|
46
|
+
} : {
|
|
47
|
+
$query: Route['query'];
|
|
48
|
+
}) & (undefined extends Route['headers'] ? {
|
|
49
|
+
$headers?: Record<string, unknown>;
|
|
50
|
+
} : {
|
|
51
|
+
$headers: Route['headers'];
|
|
52
|
+
})) => Promise<({
|
|
53
|
+
data: Route['response'] extends {
|
|
54
|
+
200: infer ReturnedType;
|
|
55
|
+
} ? Awaited<ReturnedType> : unknown;
|
|
56
|
+
error: null;
|
|
57
|
+
} | {
|
|
58
|
+
data: null;
|
|
59
|
+
error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
|
|
60
|
+
}) & {
|
|
61
|
+
status: number;
|
|
62
|
+
response: Response;
|
|
63
|
+
headers: Record<string, string>;
|
|
64
|
+
}>) extends (params: infer Params) => infer Response ? {
|
|
65
|
+
$params: undefined;
|
|
66
|
+
$headers: undefined;
|
|
67
|
+
$query: undefined;
|
|
68
|
+
} extends Params ? (params?: Prettify<Params>) => Response : (params: Prettify<Params>) => Response : never : never;
|
|
69
|
+
} : {};
|
|
70
|
+
interface OnMessage<Data = unknown> extends MessageEvent {
|
|
71
|
+
data: Data;
|
|
72
|
+
rawData: MessageEvent['data'];
|
|
73
|
+
}
|
|
74
|
+
type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
|
|
78
|
+
ws: WebSocket;
|
|
79
|
+
url: string;
|
|
80
|
+
constructor(url: string);
|
|
81
|
+
send(data: Schema['body'] | Schema['body'][]): this;
|
|
82
|
+
on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
83
|
+
off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
84
|
+
subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
85
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
86
|
+
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
87
|
+
close(): this;
|
|
88
|
+
}
|
|
89
|
+
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
|
|
90
|
+
|
|
91
|
+
export { EdenTreaty, EdenWS, edenTreaty };
|
package/dist/treaty.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Elysia, InputSchema } from 'elysia';
|
|
2
|
+
import { U as UnionToIntersect, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-d1b334ad.js';
|
|
3
|
+
|
|
4
|
+
/// <reference lib="dom" />
|
|
5
|
+
|
|
6
|
+
type Files = File | FileList;
|
|
7
|
+
type Replace<RecordType, TargetType, GenericType> = {
|
|
8
|
+
[K in keyof RecordType]: RecordType[K] extends TargetType ? GenericType : RecordType[K];
|
|
9
|
+
};
|
|
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
|
+
type AnySchema = {
|
|
15
|
+
body: unknown;
|
|
16
|
+
headers: unknown;
|
|
17
|
+
query: unknown;
|
|
18
|
+
params: unknown;
|
|
19
|
+
response: any;
|
|
20
|
+
};
|
|
21
|
+
declare namespace EdenTreaty {
|
|
22
|
+
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
23
|
+
schema: infer Schema extends Record<string, any>;
|
|
24
|
+
} ? UnionToIntersect<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
25
|
+
interface Config {
|
|
26
|
+
/**
|
|
27
|
+
* Default options to pass to fetch
|
|
28
|
+
*/
|
|
29
|
+
$fetch?: RequestInit;
|
|
30
|
+
fetcher?: typeof fetch;
|
|
31
|
+
}
|
|
32
|
+
type Sign<Schema extends Record<string, Record<string, unknown>>, Paths extends (string | number)[] = Split<keyof Schema & string>, Carry extends string = ''> = Paths extends [
|
|
33
|
+
infer Prefix extends string | number,
|
|
34
|
+
...infer Rest extends (string | number)[]
|
|
35
|
+
] ? {
|
|
36
|
+
[Key in Prefix as Prefix extends `:${string}` ? (string & {}) | number | Prefix : Prefix]: Sign<Schema, Rest, `${Carry}/${Key}`>;
|
|
37
|
+
} : Schema[Carry extends '' ? '/' : Carry] extends infer Routes ? {
|
|
38
|
+
[Method in keyof Routes]: Routes[Method] extends infer Route extends AnySchema ? Method extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
|
|
39
|
+
$query?: Record<string, string>;
|
|
40
|
+
}) => EdenWS<Route> : (params: {
|
|
41
|
+
$query: Route['query'];
|
|
42
|
+
}) => EdenWS<Route> : ((params: {
|
|
43
|
+
$fetch?: RequestInit;
|
|
44
|
+
} & (IsUnknown<Route['body']> extends false ? Replace<Route['body'], Blob | Blob[], Files> : {}) & (undefined extends Route['query'] ? {
|
|
45
|
+
$query?: Record<string, string>;
|
|
46
|
+
} : {
|
|
47
|
+
$query: Route['query'];
|
|
48
|
+
}) & (undefined extends Route['headers'] ? {
|
|
49
|
+
$headers?: Record<string, unknown>;
|
|
50
|
+
} : {
|
|
51
|
+
$headers: Route['headers'];
|
|
52
|
+
})) => Promise<({
|
|
53
|
+
data: Route['response'] extends {
|
|
54
|
+
200: infer ReturnedType;
|
|
55
|
+
} ? Awaited<ReturnedType> : unknown;
|
|
56
|
+
error: null;
|
|
57
|
+
} | {
|
|
58
|
+
data: null;
|
|
59
|
+
error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
|
|
60
|
+
}) & {
|
|
61
|
+
status: number;
|
|
62
|
+
response: Response;
|
|
63
|
+
headers: Record<string, string>;
|
|
64
|
+
}>) extends (params: infer Params) => infer Response ? {
|
|
65
|
+
$params: undefined;
|
|
66
|
+
$headers: undefined;
|
|
67
|
+
$query: undefined;
|
|
68
|
+
} extends Params ? (params?: Prettify<Params>) => Response : (params: Prettify<Params>) => Response : never : never;
|
|
69
|
+
} : {};
|
|
70
|
+
interface OnMessage<Data = unknown> extends MessageEvent {
|
|
71
|
+
data: Data;
|
|
72
|
+
rawData: MessageEvent['data'];
|
|
73
|
+
}
|
|
74
|
+
type WSEvent<K extends keyof WebSocketEventMap, Data = unknown> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
|
|
78
|
+
ws: WebSocket;
|
|
79
|
+
url: string;
|
|
80
|
+
constructor(url: string);
|
|
81
|
+
send(data: Schema['body'] | Schema['body'][]): this;
|
|
82
|
+
on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
83
|
+
off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
84
|
+
subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
85
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
86
|
+
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
87
|
+
close(): this;
|
|
88
|
+
}
|
|
89
|
+
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
|
|
90
|
+
|
|
91
|
+
export { EdenTreaty, EdenWS, edenTreaty };
|
package/dist/treaty.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var
|
|
1
|
+
"use strict";var Eden=(()=>{var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var B=n=>R(v({},"__esModule",{value:!0}),n);var M={};N(M,{EdenWS:()=>g,edenTreaty:()=>I});var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var x=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var b=typeof FileList>"u",$=n=>b?n instanceof Blob:n instanceof FileList||n instanceof File,C=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},L=n=>b?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),g=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),f=r.charCodeAt(0);if(f===47||f===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},W=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return W(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:f,$headers:A,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let E=e.lastIndexOf("/"),y=e.slice(E+1).toUpperCase(),S=x(n,E===-1?"/":e.slice(0,E),r),O=t.fetcher??fetch;return y==="SUBSCRIBE"?new g(S.replace(/^([^]+):\/\//,S.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,k={...t.$fetch?.headers,...f?.headers,...A};if(y!=="GET"&&y!=="HEAD"){c=Object.keys(w).length?w:void 0;let o=typeof c=="object";if(o&&C(c)){let d=new FormData;for(let[p,u]of Object.entries(c))if(b)d.append(p,u);else if(u instanceof File)d.append(p,await L(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)d.append(p,await L(u[m]));else d.append(p,u);c=d}else k["content-type"]=o?"application/json":"text/plain",o&&(c=JSON.stringify(c))}let i=await O(S,{method:y,body:c,...t.$fetch,...f,headers:k}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}return i.status>300?{data:l,error:new h(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),I=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return W(n,s,e)}});return B(M);})();
|
package/dist/treaty.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var
|
|
1
|
+
"use strict";var v=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var N=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},R=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of K(e))!T.call(n,a)&&a!==t&&v(n,a,{get:()=>e[a],enumerable:!(s=F(e,a))||s.enumerable});return n};var B=n=>R(v({},"__esModule",{value:!0}),n);var M={};N(M,{EdenWS:()=>g,edenTreaty:()=>I});module.exports=B(M);var h=class extends Error{status;value;constructor(e,t){super(),this.status=e,this.value=t}};var x=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let s="";for(let[a,r]of Object.entries(t))s+=`${a}=${r}&`;return`${n}${e}?${s.slice(0,-1)}`};var b=typeof FileList>"u",$=n=>b?n instanceof Blob:n instanceof FileList||n instanceof File,C=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},L=n=>b?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),g=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,a=>{if(e==="message"){let r=a.data.toString(),f=r.charCodeAt(0);if(f===47||f===123)try{r=JSON.parse(r)}catch{}else Number.isNaN(+r)?r==="true"?r=!0:r==="fase"&&(r=!1):r=+r;t({...a,data:r})}else t(a)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},W=(n,e="",t)=>new Proxy(()=>{},{get(s,a,r){return W(n,`${e}/${a.toString()}`,t)},apply(s,a,[{$query:r,$fetch:f,$headers:A,...w}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let E=e.lastIndexOf("/"),y=e.slice(E+1).toUpperCase(),S=x(n,E===-1?"/":e.slice(0,E),r),O=t.fetcher??fetch;return y==="SUBSCRIBE"?new g(S.replace(/^([^]+):\/\//,S.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,k={...t.$fetch?.headers,...f?.headers,...A};if(y!=="GET"&&y!=="HEAD"){c=Object.keys(w).length?w:void 0;let o=typeof c=="object";if(o&&C(c)){let d=new FormData;for(let[p,u]of Object.entries(c))if(b)d.append(p,u);else if(u instanceof File)d.append(p,await L(u));else if(u instanceof FileList)for(let m=0;m<u.length;m++)d.append(p,await L(u[m]));else d.append(p,u);c=d}else k["content-type"]=o?"application/json":"text/plain",o&&(c=JSON.stringify(c))}let i=await O(S,{method:y,body:c,...t.$fetch,...f,headers:k}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}return i.status>300?{data:l,error:new h(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),I=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return W(n,s,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-6KKDNR4U.mjs";import"./chunk-Y6SMVGJX.mjs";export{a as EdenWS,b as edenTreaty};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare class EdenFetchError<Status extends number = number, Value = unknown> extends Error {
|
|
2
|
+
status: Status;
|
|
3
|
+
value: Value;
|
|
4
|
+
constructor(status: Status, value: Value);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
type Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
|
|
8
|
+
type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>;
|
|
9
|
+
type ErrorRange = Range<300, 599>;
|
|
10
|
+
type MapError<T extends Record<number, unknown>> = [
|
|
11
|
+
{
|
|
12
|
+
[K in keyof T]-?: K extends ErrorRange ? K : never;
|
|
13
|
+
}[keyof T]
|
|
14
|
+
] extends [infer A extends number] ? {
|
|
15
|
+
[K in A]: EdenFetchError<K, T[K]>;
|
|
16
|
+
}[A] : false;
|
|
17
|
+
type UnionToIntersect<U> = (U extends any ? (arg: U) => any : never) extends (arg: infer I) => void ? I : never;
|
|
18
|
+
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
19
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
20
|
+
type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
|
|
21
|
+
|
|
22
|
+
export { EdenFetchError as E, IsUnknown as I, MapError as M, UnionToIntersect as U, IsNever as a };
|
package/dist/types.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ export type MapError<T extends Record<number, unknown>> = [
|
|
|
9
9
|
] extends [infer A extends number] ? {
|
|
10
10
|
[K in A]: EdenFetchError<K, T[K]>;
|
|
11
11
|
}[A] : false;
|
|
12
|
-
export type UnionToIntersect<U> = (U extends
|
|
12
|
+
export type UnionToIntersect<U> = (U extends any ? (arg: U) => any : never) extends (arg: infer I) => void ? I : never;
|
|
13
|
+
export type UnionToTuple<T> = UnionToIntersect<T extends any ? (t: T) => T : never> extends (_: any) => infer W ? [...UnionToTuple<Exclude<T, W>>, W] : [];
|
|
13
14
|
export type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
14
15
|
export type IsNever<T> = [T] extends [never] ? true : false;
|
|
15
16
|
export type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
|
package/package.json
CHANGED
|
@@ -1,80 +1,79 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
"name": "@elysiajs/eden",
|
|
3
|
+
"version": "0.7.3",
|
|
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"
|
|
9
18
|
},
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
}
|
|
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"
|
|
33
25
|
},
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"elysia": "0.7.0",
|
|
68
|
-
"esbuild": "^0.19.2",
|
|
69
|
-
"eslint": "^8.26.0",
|
|
70
|
-
"rimraf": "^4.4.1",
|
|
71
|
-
"tsup": "^7.2.0",
|
|
72
|
-
"typescript": "^5.0.4"
|
|
73
|
-
},
|
|
74
|
-
"prettier": {
|
|
75
|
-
"semi": false,
|
|
76
|
-
"tabWidth": 4,
|
|
77
|
-
"singleQuote": true,
|
|
78
|
-
"trailingComma": "none"
|
|
26
|
+
"./fetch": {
|
|
27
|
+
"require": "./dist/fetch.js",
|
|
28
|
+
"import": "./dist/fetch.mjs",
|
|
29
|
+
"node": "./dist/fetch.js",
|
|
30
|
+
"default": "./dist/fetch.js",
|
|
31
|
+
"types": "./dist/fetch/index.d.ts"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"types": "./src/index.ts",
|
|
35
|
+
"keywords": [
|
|
36
|
+
"elysia",
|
|
37
|
+
"eden",
|
|
38
|
+
"connector"
|
|
39
|
+
],
|
|
40
|
+
"homepage": "https://github.com/elysiajs/eden",
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "https://github.com/elysiajs/eden"
|
|
44
|
+
},
|
|
45
|
+
"bugs": "https://github.com/elysiajs/eden/issues",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"scripts": {
|
|
48
|
+
"dev": "bun run --watch example/index.ts",
|
|
49
|
+
"test": "bun test",
|
|
50
|
+
"build": "rimraf dist && tsup",
|
|
51
|
+
"release": "npm run build && npm run test && npm publish --access public"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"elysia": ">= 0.7.0"
|
|
55
|
+
},
|
|
56
|
+
"peerDependenciesMeta": {
|
|
57
|
+
"@sinclair/typebox": {
|
|
58
|
+
"optional": true
|
|
79
59
|
}
|
|
80
|
-
}
|
|
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.9",
|
|
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
|
+
}
|
package/src/fetch/index.ts
CHANGED
package/src/treaty/index.ts
CHANGED
|
@@ -178,7 +178,7 @@ const createProxy = (
|
|
|
178
178
|
}[] = [{}]
|
|
179
179
|
) {
|
|
180
180
|
const i = path.lastIndexOf('/'),
|
|
181
|
-
method = path.slice(i + 1),
|
|
181
|
+
method = path.slice(i + 1).toUpperCase(),
|
|
182
182
|
url = composePath(
|
|
183
183
|
domain,
|
|
184
184
|
i === -1 ? '/' : path.slice(0, i),
|
|
@@ -187,7 +187,7 @@ const createProxy = (
|
|
|
187
187
|
|
|
188
188
|
const fetcher = config.fetcher ?? fetch
|
|
189
189
|
|
|
190
|
-
if (method === '
|
|
190
|
+
if (method === 'SUBSCRIBE')
|
|
191
191
|
return new EdenWS(
|
|
192
192
|
url.replace(
|
|
193
193
|
/^([^]+):\/\//,
|
package/src/treaty/types.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
import type { Elysia } from 'elysia'
|
|
2
3
|
import type { EdenWS } from './index'
|
|
3
4
|
import type {
|
|
@@ -9,7 +10,6 @@ import type {
|
|
|
9
10
|
} from '../types'
|
|
10
11
|
import type { EdenFetchError } from '../errors'
|
|
11
12
|
|
|
12
|
-
// @ts-ignore
|
|
13
13
|
type Files = File | FileList
|
|
14
14
|
|
|
15
15
|
type Replace<RecordType, TargetType, GenericType> = {
|
|
@@ -50,6 +50,12 @@ export namespace EdenTreaty {
|
|
|
50
50
|
? UnionToIntersect<Sign<Schema>>
|
|
51
51
|
: 'Please install Elysia before using Eden'
|
|
52
52
|
|
|
53
|
+
type SplitKeys<T> = T extends [infer First, ...infer Rest]
|
|
54
|
+
? [First, Rest]
|
|
55
|
+
: T extends [infer First, ...infer Rest][number]
|
|
56
|
+
? [First, Rest]
|
|
57
|
+
: never
|
|
58
|
+
|
|
53
59
|
export interface Config {
|
|
54
60
|
/**
|
|
55
61
|
* Default options to pass to fetch
|
|
@@ -60,8 +66,7 @@ export namespace EdenTreaty {
|
|
|
60
66
|
|
|
61
67
|
export type Sign<
|
|
62
68
|
Schema extends Record<string, Record<string, unknown>>,
|
|
63
|
-
|
|
64
|
-
Paths extends (string | number)[] = Split<keyof Schema>,
|
|
69
|
+
Paths extends (string | number)[] = Split<keyof Schema & string>,
|
|
65
70
|
Carry extends string = ''
|
|
66
71
|
> = Paths extends [
|
|
67
72
|
infer Prefix extends string | number,
|
package/src/types.ts
CHANGED
|
@@ -26,11 +26,17 @@ export type MapError<T extends Record<number, unknown>> = [
|
|
|
26
26
|
: false
|
|
27
27
|
|
|
28
28
|
export type UnionToIntersect<U> = (
|
|
29
|
-
U extends
|
|
30
|
-
) extends (arg: infer I) =>
|
|
29
|
+
U extends any ? (arg: U) => any : never
|
|
30
|
+
) extends (arg: infer I) => void
|
|
31
31
|
? I
|
|
32
32
|
: never
|
|
33
33
|
|
|
34
|
+
export type UnionToTuple<T> = UnionToIntersect<
|
|
35
|
+
T extends any ? (t: T) => T : never
|
|
36
|
+
> extends (_: any) => infer W
|
|
37
|
+
? [...UnionToTuple<Exclude<T, W>>, W]
|
|
38
|
+
: []
|
|
39
|
+
|
|
34
40
|
export type IsAny<T> = 0 extends 1 & T ? true : false
|
|
35
41
|
|
|
36
42
|
export type IsNever<T> = [T] extends [never] ? true : false
|
package/tsup.config.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { defineConfig } from 'tsup'
|
|
2
2
|
import { resolve } from 'path'
|
|
3
|
-
import {
|
|
3
|
+
import { execSync } from 'child_process'
|
|
4
|
+
|
|
5
|
+
import { copyFile } from 'fs/promises'
|
|
4
6
|
|
|
5
7
|
export default defineConfig({
|
|
6
8
|
entry: {
|
|
@@ -11,9 +13,10 @@ export default defineConfig({
|
|
|
11
13
|
format: ['cjs', 'esm', 'iife'],
|
|
12
14
|
globalName: 'Eden',
|
|
13
15
|
minify: true,
|
|
14
|
-
external: ['elysia'
|
|
16
|
+
external: ['elysia'],
|
|
17
|
+
dts: true,
|
|
15
18
|
async onSuccess() {
|
|
16
|
-
|
|
19
|
+
execSync('tsc --emitDeclarationOnly --declaration', {
|
|
17
20
|
cwd: resolve(__dirname, 'dist')
|
|
18
21
|
})
|
|
19
22
|
}
|
package/dist/chunk-BYO7CHLQ.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as S}from"./chunk-Y6SMVGJX.mjs";var k=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var v=typeof FileList>"u",x=n=>v?n instanceof Blob:n instanceof FileList||n instanceof File,F=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>v?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),b=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),d=s.charCodeAt(0);if(d===47||d===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},L=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return L(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:W,...m}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let h=e.lastIndexOf("/"),u=e.slice(h+1),g=k(n,h===-1?"/":e.slice(0,h),s),A=t.fetcher??fetch;return u==="subscribe"?new b(g.replace(/^([^]+):\/\//,g.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,w={...t.$fetch?.headers,...d?.headers,...W};if(u!=="GET"&&u!=="HEAD"){c=Object.keys(m).length?m:void 0;let a=typeof c=="object";if(a&&F(c)){let y=new FormData;for(let[p,f]of Object.entries(c))if(v)y.append(p,f);else if(f instanceof File)y.append(p,await $(f));else if(f instanceof FileList)for(let E=0;E<f.length;E++)y.append(p,await $(f[E]));else y.append(p,f);c=y}else w["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await A(g,{method:u,body:c,...t.$fetch,...d,headers:w}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new S(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),M=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return L(n,r,e)}});export{b as a,M as b};
|
package/dist/chunk-FY4RFSUV.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as S}from"./chunk-Y6SMVGJX.mjs";var k=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var v=typeof FileList>"u",x=n=>v?n instanceof Blob:n instanceof FileList||n instanceof File,A=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>v?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),b=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),d=s.charCodeAt(0);if(d===47||d===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},T=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return T(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:L,...m}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let h=e.lastIndexOf("/"),u=e.slice(h+1),g=k(n,h===-1?"/":e.slice(0,h),s),W=t.fetcher??fetch;return u==="subscribe"?new b(g.replace(/^([^]+):\/\//,g.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,w={...t.$fetch?.headers,...d?.headers,...L};if(u!=="GET"&&u!=="HEAD"){c=Object.keys(m).length?m:void 0;let a=typeof c=="object";if(a&&A(c)){let y=new FormData;for(let[p,f]of Object.entries(c))if(v)y.append(p,f);else if(f instanceof File)y.append(p,await $(f));else if(f instanceof FileList)for(let E=0;E<f.length;E++)y.append(p,await $(f[E]));else y.append(p,f);c=y}else w["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await W(g,{method:u,body:c,...t.$fetch,...d,headers:w}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new S(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),M=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return T(n,r,e)}});export{b as a,M as b};
|
package/dist/chunk-G4C5WHQF.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var c=class s{url;config;pendings=[];operation=null;isFetching=!1;sJson;constructor(e,i={}){this.url=e,this.config=i,this.sJson=import("superjson").then(t=>({serialize:t.serialize,deserialize:t.deserialize}))}setConfig(e){this.config=e}clone(e){return new s(this.url,e??this.config)}async run(e,i){let t=+this.pendings.length;if(this.pendings.push(i!==void 0?{n:e,p:i}:{n:e}),this.isFetching)return this.operation?.then(n=>n[t]);this.isFetching=!0,this.operation=new Promise(n=>{setTimeout(async()=>{let r=[...this.pendings];this.pendings=[];let{serialize:o,deserialize:a}=await this.sJson,f=await(this.config?.fetcher||globalThis.fetch)(`${this.url}${this.config.fn??"/~fn"}`,{method:"POST",...this.config.fetch,headers:{"content-type":"elysia/fn",...this.config.fetch?.headers},body:JSON.stringify(o(r))});f.status===200?n(f.json().then(l=>a(l))):n(Array(r.length).fill(new Error(await f.text())))},33)});let h=await this.operation.then(n=>n[t]);return this.operation=null,this.isFetching=!1,h}};var p=(s,e,i)=>new Proxy((...t)=>{},{get(t,h,n){return p(s,[...e,h],i)},apply(t,h,n){let r=n[0],o=e[0];if(e.length===1){if(o in Object.prototype||o in Promise.prototype)return t(...n);switch(o){case"toJSON":return t(...n);case"$set":return i.setConfig(r);case"$clone":return p(s,[],i.clone(r))}}return i.run(e,n).then(a=>{if(a instanceof Error)throw a;return a})}}),d=(s,e)=>p(s,[],new c(s,e));export{d as a};
|
package/dist/chunk-MCTOFP4H.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as S}from"./chunk-Y6SMVGJX.mjs";var k=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var v=typeof FileList>"u",x=n=>v?n instanceof Blob:n instanceof FileList||n instanceof File,F=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>v?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),b=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),d=s.charCodeAt(0);if(d===47||d===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},L=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return L(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:W,...m}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let h=e.lastIndexOf("/"),y=e.slice(h+1),g=k(n,h===-1?"/":e.slice(0,h),s),A=t.fetcher??fetch;return y==="subscribe"?new b(g.replace(/^([^]+):\/\//,g.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,w={...t.$fetch?.headers,...d?.headers,...W};if(y!=="GET"&&y!=="HEAD"){c=Object.keys(m).length?m:void 0;let a=typeof c=="object";if(a&&F(c)){let u=new FormData;for(let[p,f]of Object.entries(c))if(v)u.append(p,f);else if(f instanceof File)u.append(p,await $(f));else if(f instanceof FileList)for(let E=0;E<f.length;E++)u.append(p,await $(f[E]));else u.append(p,f);c=u}else w["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await A(g,{method:y,body:c,...t.$fetch,...d,headers:w}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new S(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),M=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return L(n,r,e)}});export{b as a,M as b};
|
package/dist/chunk-TUC2YNFX.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p}from"./chunk-Y6SMVGJX.mjs";var E=(u,f)=>(s,{query:i,params:h,body:a,...n}={})=>{h&&Object.entries(h).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=n.headers?.["Content-Type"];if(!o||o==="application/json")try{a=JSON.stringify(a)}catch{}let l=f?.fetcher||globalThis.fetch,y=i?`?${new URLSearchParams(i).toString()}`:"",c=()=>l(u+s+y,{...n,headers:a?{"content-type":"application/json",...n.headers}:n.headers,body:a}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(r=>Number.isNaN(+r)?r==="true"?!0:r==="false"?!1:r:+r);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new p(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{E as a};
|
package/dist/chunk-V6QCRD5H.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as y}from"./chunk-Y6SMVGJX.mjs";var E=(p,u)=>(s,{query:i,params:h,body:a,...n}={})=>{h&&Object.entries(h).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=n.headers?.["Content-Type"];if(!o||o==="application/json")try{a=JSON.stringify(a)}catch{}let f=u?.fetcher||globalThis.fetch,l=i?`?${new URLSearchParams(i).toString()}`:"",c=()=>f(p+s+l,{...n,headers:a?{"content-type":"application/json",...n.headers}:n.headers,body:a}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(r=>Number.isNaN(+r)?r==="true"?!0:r==="false"?!1:r:+r);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new y(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{E as a};
|
package/dist/chunk-X77HNZQV.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as S}from"./chunk-Y6SMVGJX.mjs";var k=(n,e,t)=>{if(n.endsWith("/")||(n+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${n}${e}`;let r="";for(let[o,s]of Object.entries(t))r+=`${o}=${s}&`;return`${n}${e}?${r.slice(0,-1)}`};var b=typeof FileList>"u",x=n=>b?n instanceof Blob:n instanceof FileList||n instanceof File,W=n=>{if(!n)return!1;for(let e in n){if(x(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>x(t)))return!0}return!1},$=n=>b?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:n.type}))},t.readAsArrayBuffer(n)}),E=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,r){return this.addEventListener(e,t,r)}off(e,t,r){return this.ws.removeEventListener(e,t,r),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,r){return this.ws.addEventListener(e,o=>{if(e==="message"){let s=o.data.toString(),d=s.charCodeAt(0);if(d===47||d===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...o,data:s})}else t(o)},r),this}removeEventListener(e,t,r){return this.off(e,t,r),this}close(){return this.ws.close(),this}},T=(n,e="",t)=>new Proxy(()=>{},{get(r,o,s){return T(n,`${e}/${o.toString()}`,t)},apply(r,o,[{$query:s,$fetch:d,$headers:L,...v}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){let m=e.lastIndexOf("/"),u=e.slice(m+1),h=k(n,e.slice(0,m),s);return u==="subscribe"?new E(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://")):(async()=>{let c,w={...t.$fetch?.headers,...d?.headers,...L};if(u!=="GET"&&u!=="HEAD"){c=Object.keys(v).length?v:void 0;let a=typeof c=="object";if(a&&W(c)){let y=new FormData;for(let[p,f]of Object.entries(c))if(b)y.append(p,f);else if(f instanceof File)y.append(p,await $(f));else if(f instanceof FileList)for(let g=0;g<f.length;g++)y.append(p,await $(f[g]));else y.append(p,f);c=y}else w["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}let i=await(t.fetcher??fetch)(h,{method:u,body:c,...t.$fetch,...d,headers:w}),l;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await i.json();break;default:l=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:l,error:new S(i.status,await l),status:i.status,raw:i,headers:i.headers}:{data:l,status:i.status,response:i,headers:i.headers,error:null}})()}}),R=(n,e={fetcher:fetch})=>new Proxy({},{get(t,r){return T(n,r,e)}});export{E as a,R as b};
|
package/dist/fn/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Elysia } from 'elysia';
|
|
2
|
-
import type { EdenFn } from './types';
|
|
3
|
-
export type { EdenFn } from './types';
|
|
4
|
-
export declare const edenFn: <App extends Elysia<any, any, {
|
|
5
|
-
type: {};
|
|
6
|
-
error: {};
|
|
7
|
-
}, {}, {}, false>>(domain: string, config?: EdenFn.Config) => EdenFn.Create<App>;
|
package/dist/fn/types.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/// <reference types="bun-types" />
|
|
2
|
-
import type { Elysia } from 'elysia';
|
|
3
|
-
export declare namespace EdenFn {
|
|
4
|
-
type Create<App extends Elysia<any, any>> = App['meta'] extends {
|
|
5
|
-
exposed: infer Schema extends Record<string, any>;
|
|
6
|
-
} ? EdenFn.Compose<Schema> : 'Please install Elysia before using Eden';
|
|
7
|
-
interface Config {
|
|
8
|
-
}
|
|
9
|
-
type Compose<Exposed extends Record<string, any>> = Fn<Exposed> & {
|
|
10
|
-
$set(config: Config): void;
|
|
11
|
-
$clone(config?: Config): Compose<Exposed>;
|
|
12
|
-
};
|
|
13
|
-
type Fn<T> = T extends {
|
|
14
|
-
exposed: any;
|
|
15
|
-
value: infer Value;
|
|
16
|
-
} ? Asynctify<Value> : Asynctify<T>;
|
|
17
|
-
interface Config {
|
|
18
|
-
fn?: string;
|
|
19
|
-
fetch?: Omit<RequestInit, 'body'>;
|
|
20
|
-
fetcher?: typeof globalThis.fetch;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
type Promisify<T extends (...args: any[]) => any> = T extends (...args: infer Args) => infer Return ? Return extends Promise<any> ? T : (...args: Args) => Promise<Return> : never;
|
|
24
|
-
type Asynctify<T> = T extends infer Fn extends (...args: any) => any ? Promisify<Fn> : T extends Record<string, any> ? {
|
|
25
|
-
[K in keyof T]: EdenFn.Fn<T[K]>;
|
|
26
|
-
} : never;
|
|
27
|
-
export {};
|
package/dist/fn/utils.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { EdenFn } from './types';
|
|
2
|
-
export declare class Signal {
|
|
3
|
-
private url;
|
|
4
|
-
private config;
|
|
5
|
-
private pendings;
|
|
6
|
-
private operation;
|
|
7
|
-
private isFetching;
|
|
8
|
-
private sJson;
|
|
9
|
-
constructor(url: string, config?: EdenFn.Config);
|
|
10
|
-
setConfig(config: EdenFn.Config): void;
|
|
11
|
-
clone(config?: EdenFn.Config): Signal;
|
|
12
|
-
run(procedure: string[], params: any): Promise<any>;
|
|
13
|
-
}
|
package/dist/fn.global.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var U=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var Ur=Object.getOwnPropertyNames;var Mr=Object.prototype.hasOwnProperty;var f=(r,t)=>()=>(r&&(t=r(r=0)),t);var ir=(r,t)=>{for(var e in t)U(r,e,{get:t[e],enumerable:!0})},Kr=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ur(t))!Mr.call(r,i)&&i!==e&&U(r,i,{get:()=>t[i],enumerable:!(n=Dr(t,i))||n.enumerable});return r};var qr=r=>Kr(U({},"__esModule",{value:!0}),r);var or,sr=f(()=>{"use strict";or=function(){function r(){this.keyToValue=new Map,this.valueToKey=new Map}return r.prototype.set=function(t,e){this.keyToValue.set(t,e),this.valueToKey.set(e,t)},r.prototype.getByKey=function(t){return this.keyToValue.get(t)},r.prototype.getByValue=function(t){return this.valueToKey.get(t)},r.prototype.clear=function(){this.keyToValue.clear(),this.valueToKey.clear()},r}()});var T,M=f(()=>{"use strict";sr();T=function(){function r(t){this.generateIdentifier=t,this.kv=new or}return r.prototype.register=function(t,e){this.kv.getByValue(t)||(e||(e=this.generateIdentifier(t)),this.kv.set(e,t))},r.prototype.clear=function(){this.kv.clear()},r.prototype.getIdentifier=function(t){return this.kv.getByValue(t)},r.prototype.getValue=function(t){return this.kv.getByKey(t)},r}()});var Lr,ar,ur=f(()=>{"use strict";M();Lr=function(){var r=function(t,e){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},r(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ar=function(r){Lr(t,r);function t(){var e=r.call(this,function(n){return n.name})||this;return e.classToAllowedProps=new Map,e}return t.prototype.register=function(e,n){typeof n=="object"?(n.allowProps&&this.classToAllowedProps.set(e,n.allowProps),r.prototype.register.call(this,e,n.identifier)):r.prototype.register.call(this,e,n)},t.prototype.getAllowedProps=function(e){return this.classToAllowedProps.get(e)},t}(T)});function $r(r){if("values"in Object)return Object.values(r);var t=[];for(var e in r)r.hasOwnProperty(e)&&t.push(r[e]);return t}function fr(r,t){var e=$r(r);if("find"in e)return e.find(t);for(var n=e,i=0;i<n.length;i++){var o=n[i];if(t(o))return o}}function O(r,t){Object.entries(r).forEach(function(e){var n=Wr(e,2),i=n[0],o=n[1];return t(o,i)})}function S(r,t){return r.indexOf(t)!==-1}function K(r,t){for(var e=0;e<r.length;e++){var n=r[e];if(t(n))return n}}var Wr,N=f(()=>{"use strict";Wr=function(r,t){var e=typeof Symbol=="function"&&r[Symbol.iterator];if(!e)return r;var n=e.call(r),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(s)throw s.error}}return o}});var lr,cr=f(()=>{"use strict";N();lr=function(){function r(){this.transfomers={}}return r.prototype.register=function(t){this.transfomers[t.name]=t},r.prototype.findApplicable=function(t){return fr(this.transfomers,function(e){return e.isApplicable(t)})},r.prototype.findByName=function(t){return this.transfomers[t]},r}()});var Gr,q,Hr,A,V,c,Qr,Xr,Yr,pr,w,x,L,yr,mr,W,$,vr,gr,hr,dr,z=f(()=>{"use strict";Gr=function(r){return Object.prototype.toString.call(r).slice(8,-1)},q=function(r){return typeof r>"u"},Hr=function(r){return r===null},A=function(r){return typeof r!="object"||r===null||r===Object.prototype?!1:Object.getPrototypeOf(r)===null?!0:r.constructor===Object&&Object.getPrototypeOf(r)===Object.prototype},V=function(r){return A(r)&&Object.keys(r).length===0},c=function(r){return Array.isArray(r)},Qr=function(r){return typeof r=="string"},Xr=function(r){return typeof r=="number"&&!isNaN(r)},Yr=function(r){return typeof r=="boolean"},pr=function(r){return r instanceof RegExp},w=function(r){return r instanceof Map},x=function(r){return r instanceof Set},L=function(r){return Gr(r)==="Symbol"},yr=function(r){return r instanceof Date&&!isNaN(r.valueOf())},mr=function(r){return r instanceof Error},W=function(r){return typeof r=="number"&&isNaN(r)},$=function(r){return Yr(r)||Hr(r)||q(r)||Xr(r)||Qr(r)||L(r)},vr=function(r){return typeof r=="bigint"},gr=function(r){return r===1/0||r===-1/0},hr=function(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)},dr=function(r){return r instanceof URL}});var G,k,P,H=f(()=>{"use strict";G=function(r){return r.replace(/\./g,"\\.")},k=function(r){return r.map(String).map(G).join(".")},P=function(r){for(var t=[],e="",n=0;n<r.length;n++){var i=r.charAt(n),o=i==="\\"&&r.charAt(n+1)===".";if(o){e+=".",n++;continue}var s=i===".";if(s){t.push(e),e="";continue}e+=i}var a=e;return t.push(a),t}});function m(r,t,e,n){return{isApplicable:r,annotation:t,transform:e,untransform:n}}function C(r,t,e,n){return{isApplicable:r,annotation:t,transform:e,untransform:n}}function Z(r,t){if(r?.constructor){var e=!!t.classRegistry.getIdentifier(r.constructor);return e}return!1}var Q,X,Y,br,wr,Zr,xr,Er,Or,Jr,J,Ar,_r,Sr=f(()=>{"use strict";z();N();Q=function(){return Q=Object.assign||function(r){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Q.apply(this,arguments)},X=function(r,t){var e=typeof Symbol=="function"&&r[Symbol.iterator];if(!e)return r;var n=e.call(r),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(s)throw s.error}}return o},Y=function(r,t){for(var e=0,n=t.length,i=r.length;e<n;e++,i++)r[i]=t[e];return r};br=[m(q,"undefined",function(){return null},function(){}),m(vr,"bigint",function(r){return r.toString()},function(r){return typeof BigInt<"u"?BigInt(r):(console.error("Please add a BigInt polyfill."),r)}),m(yr,"Date",function(r){return r.toISOString()},function(r){return new Date(r)}),m(mr,"Error",function(r,t){var e={name:r.name,message:r.message};return t.allowedErrorProps.forEach(function(n){e[n]=r[n]}),e},function(r,t){var e=new Error(r.message);return e.name=r.name,e.stack=r.stack,t.allowedErrorProps.forEach(function(n){e[n]=r[n]}),e}),m(pr,"regexp",function(r){return""+r},function(r){var t=r.slice(1,r.lastIndexOf("/")),e=r.slice(r.lastIndexOf("/")+1);return new RegExp(t,e)}),m(x,"set",function(r){return Y([],X(r.values()))},function(r){return new Set(r)}),m(w,"map",function(r){return Y([],X(r.entries()))},function(r){return new Map(r)}),m(function(r){return W(r)||gr(r)},"number",function(r){return W(r)?"NaN":r>0?"Infinity":"-Infinity"},Number),m(function(r){return r===0&&1/r===-1/0},"number",function(){return"-0"},Number),m(dr,"URL",function(r){return r.toString()},function(r){return new URL(r)})];wr=C(function(r,t){if(L(r)){var e=!!t.symbolRegistry.getIdentifier(r);return e}return!1},function(r,t){var e=t.symbolRegistry.getIdentifier(r);return["symbol",e]},function(r){return r.description},function(r,t,e){var n=e.symbolRegistry.getValue(t[1]);if(!n)throw new Error("Trying to deserialize unknown symbol");return n}),Zr=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce(function(r,t){return r[t.name]=t,r},{}),xr=C(hr,function(r){return["typed-array",r.constructor.name]},function(r){return Y([],X(r))},function(r,t){var e=Zr[t[1]];if(!e)throw new Error("Trying to deserialize unknown typed array");return new e(r)});Er=C(Z,function(r,t){var e=t.classRegistry.getIdentifier(r.constructor);return["class",e]},function(r,t){var e=t.classRegistry.getAllowedProps(r.constructor);if(!e)return Q({},r);var n={};return e.forEach(function(i){n[i]=r[i]}),n},function(r,t,e){var n=e.classRegistry.getValue(t[1]);if(!n)throw new Error("Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564");return Object.assign(Object.create(n.prototype),r)}),Or=C(function(r,t){return!!t.customTransformerRegistry.findApplicable(r)},function(r,t){var e=t.customTransformerRegistry.findApplicable(r);return["custom",e.name]},function(r,t){var e=t.customTransformerRegistry.findApplicable(r);return e.serialize(r)},function(r,t,e){var n=e.customTransformerRegistry.findByName(t[1]);if(!n)throw new Error("Trying to deserialize unknown custom value");return n.deserialize(r)}),Jr=[Er,wr,Or,xr],J=function(r,t){var e=K(Jr,function(i){return i.isApplicable(r,t)});if(e)return{value:e.transform(r,t),type:e.annotation(r,t)};var n=K(br,function(i){return i.isApplicable(r,t)});if(n)return{value:n.transform(r,t),type:n.annotation}},Ar={};br.forEach(function(r){Ar[r.annotation]=r});_r=function(r,t,e){if(c(t))switch(t[0]){case"symbol":return wr.untransform(r,t,e);case"class":return Er.untransform(r,t,e);case"custom":return Or.untransform(r,t,e);case"typed-array":return xr.untransform(r,t,e);default:throw new Error("Unknown transformation: "+t)}else{var n=Ar[t];if(!n)throw new Error("Unknown transformation: "+t);return n.untransform(r,e)}}});function Pr(r){if(S(r,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(S(r,"prototype"))throw new Error("prototype is not allowed as a property");if(S(r,"constructor"))throw new Error("constructor is not allowed as a property")}var R,Rr,F,Nr=f(()=>{"use strict";z();N();R=function(r,t){for(var e=r.keys();t>0;)e.next(),t--;return e.next().value};Rr=function(r,t){Pr(t);for(var e=0;e<t.length;e++){var n=t[e];if(x(r))r=R(r,+n);else if(w(r)){var i=+n,o=+t[++e]==0?"key":"value",s=R(r,i);switch(o){case"key":r=s;break;case"value":r=r.get(s);break}}else r=r[n]}return r},F=function(r,t,e){if(Pr(t),t.length===0)return e(r);for(var n=r,i=0;i<t.length-1;i++){var o=t[i];if(c(n)){var s=+o;n=n[s]}else if(A(n))n=n[o];else if(x(n)){var a=+o;n=R(n,a)}else if(w(n)){var u=i===t.length-2;if(u)break;var a=+o,p=+t[++i]==0?"key":"value",l=R(n,a);switch(p){case"key":n=l;break;case"value":n=n.get(l);break}}}var y=t[t.length-1];if(c(n)?n[+y]=e(n[+y]):A(n)&&(n[y]=e(n[y])),x(n)){var h=R(n,+y),d=e(h);h!==d&&(n.delete(h),n.add(d))}if(w(n)){var a=+t[t.length-2],b=R(n,a),p=+y==0?"key":"value";switch(p){case"key":{var I=e(b);n.set(I,n.get(b)),I!==b&&n.delete(b);break}case"value":{n.set(b,e(n.get(b)));break}}}return r}});function rr(r,t,e){if(e===void 0&&(e=[]),!!r){if(!c(r)){O(r,function(s,a){return rr(s,t,E(E([],v(e)),v(P(a))))});return}var n=v(r,2),i=n[0],o=n[1];o&&O(o,function(s,a){rr(s,t,E(E([],v(e)),v(P(a))))}),t(i,e)}}function Ir(r,t,e){return rr(t,function(n,i){r=F(r,i,function(o){return _r(o,n,e)})}),r}function Tr(r,t){function e(s,a){var u=Rr(r,P(a));s.map(P).forEach(function(p){r=F(r,p,function(){return u})})}if(c(t)){var n=v(t,2),i=n[0],o=n[1];i.forEach(function(s){r=F(r,P(s),function(){return r})}),o&&O(o,e)}else O(t,e);return r}function tt(r,t,e){var n=e.get(r);n?n.push(t):e.set(r,[t])}function Vr(r){var t={},e=void 0;return r.forEach(function(n){if(!(n.length<=1)){var i=v(n.map(function(a){return a.map(String)}).sort(function(a,u){return a.length-u.length})),o=i[0],s=i.slice(1);o.length===0?e=s.map(k):t[k(o)]=s.map(k)}}),e?V(t)?[e]:[e,t]:V(t)?void 0:t}var v,E,rt,tr,zr=f(()=>{"use strict";z();H();Sr();N();H();Nr();v=function(r,t){var e=typeof Symbol=="function"&&r[Symbol.iterator];if(!e)return r;var n=e.call(r),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(s)throw s.error}}return o},E=function(r,t){for(var e=0,n=t.length,i=r.length;e<n;e++,i++)r[i]=t[e];return r};rt=function(r,t){return A(r)||c(r)||w(r)||x(r)||Z(r,t)};tr=function(r,t,e,n,i){var o;if(n===void 0&&(n=[]),i===void 0&&(i=[]),$(r)||tt(r,n,t),!rt(r,e)){var s=J(r,e);return s?{transformedValue:s.value,annotations:[s.type]}:{transformedValue:r}}if(S(i,r))return{transformedValue:null};var a=J(r,e),u=(o=a?.value)!==null&&o!==void 0?o:r;$(r)||(i=E(E([],v(i)),[r]));var p=c(u)?[]:{},l={};return O(u,function(y,h){var d=tr(y,t,e,E(E([],v(n)),[h]),i);p[h]=d.transformedValue,c(d.annotations)?l[h]=d.annotations:A(d.annotations)&&O(d.annotations,function(b,I){l[G(h)+"."+I]=b})}),V(l)?{transformedValue:p,annotations:a?[a.type]:void 0}:{transformedValue:p,annotations:a?[a.type,l]:l}}});function B(r){return Object.prototype.toString.call(r).slice(8,-1)}function et(r){return B(r)==="Undefined"}function nt(r){return B(r)==="Null"}function kr(r){if(B(r)!=="Object")return!1;let t=Object.getPrototypeOf(r);return t.constructor===Object&&t===Object.prototype}function er(r){return B(r)==="Array"}function it(r,t,e,n,i){return o=>r(o)||t(o)||!!e&&e(o)||!!n&&n(o)||!!i&&i(o)}var qt,Cr=f(()=>{"use strict";qt=it(nt,et)});function ot(r,t,e,n,i){let o={}.propertyIsEnumerable.call(n,t)?"enumerable":"nonenumerable";o==="enumerable"&&(r[t]=e),i&&o==="nonenumerable"&&Object.defineProperty(r,t,{value:e,enumerable:!1,writable:!0,configurable:!0})}function j(r,t={}){if(er(r))return r.map(i=>j(i,t));if(!kr(r))return r;let e=Object.getOwnPropertyNames(r),n=Object.getOwnPropertySymbols(r);return[...e,...n].reduce((i,o)=>{if(er(t.props)&&!t.props.includes(o))return i;let s=r[o],a=j(s,t);return ot(i,o,a,r,t.nonenumerable),i},{})}var Fr=f(()=>{"use strict";Cr()});var Br={};ir(Br,{allowErrorProps:()=>gt,default:()=>ut,deserialize:()=>lt,parse:()=>pt,registerClass:()=>yt,registerCustom:()=>mt,registerSymbol:()=>vt,serialize:()=>ft,stringify:()=>ct});var _,st,at,g,ut,ft,lt,ct,pt,yt,mt,vt,gt,jr=f(()=>{"use strict";ur();M();cr();zr();Fr();_=function(){return _=Object.assign||function(r){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},_.apply(this,arguments)},st=function(r,t){var e=typeof Symbol=="function"&&r[Symbol.iterator];if(!e)return r;var n=e.call(r),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(s)throw s.error}}return o},at=function(r,t){for(var e=0,n=t.length,i=r.length;e<n;e++,i++)r[i]=t[e];return r},g=function(){function r(){this.classRegistry=new ar,this.symbolRegistry=new T(function(t){var e;return(e=t.description)!==null&&e!==void 0?e:""}),this.customTransformerRegistry=new lr,this.allowedErrorProps=[]}return r.prototype.serialize=function(t){var e=new Map,n=tr(t,e,this),i={json:n.transformedValue};n.annotations&&(i.meta=_(_({},i.meta),{values:n.annotations}));var o=Vr(e);return o&&(i.meta=_(_({},i.meta),{referentialEqualities:o})),i},r.prototype.deserialize=function(t){var e=t.json,n=t.meta,i=j(e);return n?.values&&(i=Ir(i,n.values,this)),n?.referentialEqualities&&(i=Tr(i,n.referentialEqualities)),i},r.prototype.stringify=function(t){return JSON.stringify(this.serialize(t))},r.prototype.parse=function(t){return this.deserialize(JSON.parse(t))},r.prototype.registerClass=function(t,e){this.classRegistry.register(t,e)},r.prototype.registerSymbol=function(t,e){this.symbolRegistry.register(t,e)},r.prototype.registerCustom=function(t,e){this.customTransformerRegistry.register(_({name:e},t))},r.prototype.allowErrorProps=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];(t=this.allowedErrorProps).push.apply(t,at([],st(e)))},r.defaultInstance=new r,r.serialize=r.defaultInstance.serialize.bind(r.defaultInstance),r.deserialize=r.defaultInstance.deserialize.bind(r.defaultInstance),r.stringify=r.defaultInstance.stringify.bind(r.defaultInstance),r.parse=r.defaultInstance.parse.bind(r.defaultInstance),r.registerClass=r.defaultInstance.registerClass.bind(r.defaultInstance),r.registerSymbol=r.defaultInstance.registerSymbol.bind(r.defaultInstance),r.registerCustom=r.defaultInstance.registerCustom.bind(r.defaultInstance),r.allowErrorProps=r.defaultInstance.allowErrorProps.bind(r.defaultInstance),r}(),ut=g,ft=g.serialize,lt=g.deserialize,ct=g.stringify,pt=g.parse,yt=g.registerClass,mt=g.registerCustom,vt=g.registerSymbol,gt=g.allowErrorProps});var dt={};ir(dt,{edenFn:()=>ht});var D=class r{url;config;pendings=[];operation=null;isFetching=!1;sJson;constructor(t,e={}){this.url=t,this.config=e,this.sJson=Promise.resolve().then(()=>(jr(),Br)).then(n=>({serialize:n.serialize,deserialize:n.deserialize}))}setConfig(t){this.config=t}clone(t){return new r(this.url,t??this.config)}async run(t,e){let n=+this.pendings.length;if(this.pendings.push(e!==void 0?{n:t,p:e}:{n:t}),this.isFetching)return this.operation?.then(o=>o[n]);this.isFetching=!0,this.operation=new Promise(o=>{setTimeout(async()=>{let s=[...this.pendings];this.pendings=[];let{serialize:a,deserialize:u}=await this.sJson,l=await(this.config?.fetcher||globalThis.fetch)(`${this.url}${this.config.fn??"/~fn"}`,{method:"POST",...this.config.fetch,headers:{"content-type":"elysia/fn",...this.config.fetch?.headers},body:JSON.stringify(a(s))});l.status===200?o(l.json().then(y=>u(y))):o(Array(s.length).fill(new Error(await l.text())))},33)});let i=await this.operation.then(o=>o[n]);return this.operation=null,this.isFetching=!1,i}};var nr=(r,t,e)=>new Proxy((...n)=>{},{get(n,i,o){return nr(r,[...t,i],e)},apply(n,i,o){let s=o[0],a=t[0];if(t.length===1){if(a in Object.prototype||a in Promise.prototype)return n(...o);switch(a){case"toJSON":return n(...o);case"$set":return e.setConfig(s);case"$clone":return nr(r,[],e.clone(s))}}return e.run(t,o).then(u=>{if(u instanceof Error)throw u;return u})}}),ht=(r,t)=>nr(r,[],new D(r,t));return qr(dt);})();
|
package/dist/fn.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var u=Object.create;var c=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var w=(n,e)=>{for(var t in e)c(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of F(e))!E.call(n,r)&&r!==t&&c(n,r,{get:()=>e[r],enumerable:!(i=d(e,r))||i.enumerable});return n};var z=(n,e,t)=>(t=n!=null?u(m(n)):{},g(e||!n||!n.__esModule?c(t,"default",{value:n,enumerable:!0}):t,n)),C=n=>g(c({},"__esModule",{value:!0}),n);var P={};w(P,{edenFn:()=>x});module.exports=C(P);var f=class n{url;config;pendings=[];operation=null;isFetching=!1;sJson;constructor(e,t={}){this.url=e,this.config=t,this.sJson=import("superjson").then(i=>({serialize:i.serialize,deserialize:i.deserialize}))}setConfig(e){this.config=e}clone(e){return new n(this.url,e??this.config)}async run(e,t){let i=+this.pendings.length;if(this.pendings.push(t!==void 0?{n:e,p:t}:{n:e}),this.isFetching)return this.operation?.then(s=>s[i]);this.isFetching=!0,this.operation=new Promise(s=>{setTimeout(async()=>{let o=[...this.pendings];this.pendings=[];let{serialize:a,deserialize:h}=await this.sJson,p=await(this.config?.fetcher||globalThis.fetch)(`${this.url}${this.config.fn??"/~fn"}`,{method:"POST",...this.config.fetch,headers:{"content-type":"elysia/fn",...this.config.fetch?.headers},body:JSON.stringify(a(o))});p.status===200?s(p.json().then(y=>h(y))):s(Array(o.length).fill(new Error(await p.text())))},33)});let r=await this.operation.then(s=>s[i]);return this.operation=null,this.isFetching=!1,r}};var l=(n,e,t)=>new Proxy((...i)=>{},{get(i,r,s){return l(n,[...e,r],t)},apply(i,r,s){let o=s[0],a=e[0];if(e.length===1){if(a in Object.prototype||a in Promise.prototype)return i(...s);switch(a){case"toJSON":return i(...s);case"$set":return t.setConfig(o);case"$clone":return l(n,[],t.clone(o))}}return t.run(e,s).then(h=>{if(h instanceof Error)throw h;return h})}}),x=(n,e)=>l(n,[],new f(n,e));0&&(module.exports={edenFn});
|
package/dist/fn.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-G4C5WHQF.mjs";export{a as edenFn};
|