@elysiajs/eden 0.6.1 → 0.6.2
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/errors.js +10 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch/index.js +64 -0
- package/dist/fetch/index.js.map +1 -0
- package/dist/fetch/types.js +2 -0
- package/dist/fetch/types.js.map +1 -0
- package/dist/fetch.js +1 -1
- package/dist/fetch.mjs +26 -16
- package/dist/fn/index.js +35 -0
- package/dist/fn/index.js.map +1 -0
- package/dist/fn/types.js +2 -0
- package/dist/fn/types.js.map +1 -0
- package/dist/fn/utils.js +59 -0
- package/dist/fn/utils.js.map +1 -0
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1 -1
- package/dist/treaty/index.js +205 -0
- package/dist/treaty/index.js.map +1 -0
- package/dist/treaty/types.js +2 -0
- package/dist/treaty/types.js.map +1 -0
- package/dist/treaty/utils.js +13 -0
- package/dist/treaty/utils.js.map +1 -0
- package/dist/treaty.js +1 -1
- package/dist/treaty.mjs +108 -112
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +77 -78
- package/src/fetch/index.ts +16 -5
- package/src/fetch/types.ts +32 -13
- package/src/treaty/index.ts +57 -52
- package/src/treaty/types.ts +116 -205
- package/src/types.ts +1 -1
- package/dist/fetch/index.d.ts +0 -5
- package/dist/fetch/index.d.ts.map +0 -1
- package/dist/fetch/types.d.ts +0 -36
- package/dist/fetch/types.d.ts.map +0 -1
- package/dist/fn/index.d.ts +0 -5
- package/dist/fn/index.d.ts.map +0 -1
- package/dist/fn/types.d.ts +0 -28
- package/dist/fn/types.d.ts.map +0 -1
- package/dist/fn/utils.d.ts +0 -14
- package/dist/fn/utils.d.ts.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/treaty/index.d.ts +0 -18
- package/dist/treaty/index.d.ts.map +0 -1
- package/dist/treaty/utils.d.ts +0 -2
- package/dist/treaty/utils.d.ts.map +0 -1
- package/dist/types.d.ts +0 -26
- package/dist/types.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -6
- package/dist/utils.d.ts.map +0 -1
- /package/dist/{utils-5a40996f.mjs → errors-5a40996f.mjs} +0 -0
- /package/dist/{utils-a2cfc56a.js → errors-a2cfc56a.js} +0 -0
- /package/src/{utils.ts → errors.ts} +0 -0
package/dist/errors.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAGX,SAAQ,KAAK;IACX,MAAM,CAAQ;IACd,KAAK,CAAO;IAEZ,YAAY,MAAc,EAAE,KAAY;QACpC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;CACJ"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { EdenFetchError } from '../errors';
|
|
2
|
+
export const edenFetch = (server, config) =>
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
(endpoint, { params, body, ...options } = {}) => {
|
|
5
|
+
if (params)
|
|
6
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
7
|
+
endpoint = endpoint.replace(`:${key}`, value);
|
|
8
|
+
});
|
|
9
|
+
const contentType = options.headers?.['Content-Type'];
|
|
10
|
+
if (!contentType || contentType === 'application/json')
|
|
11
|
+
try {
|
|
12
|
+
body = JSON.stringify(body);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
//
|
|
16
|
+
}
|
|
17
|
+
const fetch = config?.fetcher || globalThis.fetch;
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
const execute = () => fetch(server + endpoint, {
|
|
20
|
+
...options,
|
|
21
|
+
headers: body
|
|
22
|
+
? {
|
|
23
|
+
'content-type': 'application/json',
|
|
24
|
+
...options.headers
|
|
25
|
+
}
|
|
26
|
+
: options.headers,
|
|
27
|
+
body: body
|
|
28
|
+
}).then(async (res) => {
|
|
29
|
+
let data;
|
|
30
|
+
switch (res.headers.get('Content-Type')?.split(';')[0]) {
|
|
31
|
+
case 'application/json':
|
|
32
|
+
data = await res.json();
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
data = await res.text().then((d) => {
|
|
36
|
+
if (!Number.isNaN(+d))
|
|
37
|
+
return +d;
|
|
38
|
+
if (d === 'true')
|
|
39
|
+
return true;
|
|
40
|
+
if (d === 'false')
|
|
41
|
+
return false;
|
|
42
|
+
return d;
|
|
43
|
+
});
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
if (res.status > 300)
|
|
47
|
+
return {
|
|
48
|
+
data: null,
|
|
49
|
+
status: res.status,
|
|
50
|
+
headers: res.headers,
|
|
51
|
+
retry: execute,
|
|
52
|
+
error: new EdenFetchError(res.status, data)
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
data,
|
|
56
|
+
error: null,
|
|
57
|
+
status: res.status,
|
|
58
|
+
headers: res.headers,
|
|
59
|
+
retry: execute
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
return execute();
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAI1C,MAAM,CAAC,MAAM,SAAS,GAClB,CACI,MAAc,EACd,MAAyB,EACJ,EAAE;AAC3B,aAAa;AACb,CAAC,QAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;IACpD,IAAI,MAAM;QACN,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,KAAe,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IAEN,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAA;IAErD,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,kBAAkB;QAClD,IAAI;YACA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC9B;QAAC,OAAO,KAAK,EAAE;YACZ,EAAE;SACL;IAEL,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,UAAU,CAAC,KAAK,CAAA;IAEjD,aAAa;IACb,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE;QAC3C,GAAG,OAAO;QACV,OAAO,EAAE,IAAI;YACT,CAAC,CAAC;gBACI,cAAc,EAAE,kBAAkB;gBAClC,GAAG,OAAO,CAAC,OAAO;aACrB;YACH,CAAC,CAAC,OAAO,CAAC,OAAO;QACrB,IAAI,EAAE,IAAW;KACpB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,IAAI,IAAI,CAAA;QAER,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,KAAK,kBAAkB;gBACnB,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;gBACvB,MAAK;YAET;gBACI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC,CAAA;oBAChC,IAAI,CAAC,KAAK,MAAM;wBAAE,OAAO,IAAI,CAAA;oBAC7B,IAAI,CAAC,KAAK,OAAO;wBAAE,OAAO,KAAK,CAAA;oBAE/B,OAAO,CAAC,CAAA;gBACZ,CAAC,CAAC,CAAA;gBACF,MAAK;SACZ;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAChB,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;aAC9C,CAAA;QAEL,OAAO;YACH,IAAI;YACJ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,OAAO;SACjB,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fetch/types.ts"],"names":[],"mappings":""}
|
package/dist/fetch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./errors-a2cfc56a.js"),p=(f,n)=>(u,{params:h,body:a,...s}={})=>{var i;h&&Object.entries(h).forEach(([e,t])=>{u=u.replace(`:${e}`,t)});const l=(i=s.headers)==null?void 0:i["Content-Type"];if(!l||l==="application/json")try{a=JSON.stringify(a)}catch{}const d=(n==null?void 0:n.fetcher)||globalThis.fetch,c=()=>d(f+u,{...s,headers:a?{"content-type":"application/json",...s.headers}:s.headers,body:a}).then(async e=>{var o;let t;switch((o=e.headers.get("Content-Type"))==null?void 0:o.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.EdenFetchError(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};exports.edenFetch=p;
|
package/dist/fetch.mjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { E as
|
|
2
|
-
const
|
|
1
|
+
import { E as y } from "./errors-5a40996f.mjs";
|
|
2
|
+
const j = (o, n) => (
|
|
3
3
|
// @ts-ignore
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
(h, { params: c, body: a, ...s } = {}) => {
|
|
5
|
+
var i;
|
|
6
|
+
c && Object.entries(c).forEach(([e, t]) => {
|
|
7
|
+
h = h.replace(`:${e}`, t);
|
|
8
8
|
});
|
|
9
|
-
const l = (
|
|
9
|
+
const l = (i = s.headers) == null ? void 0 : i["Content-Type"];
|
|
10
10
|
if (!l || l === "application/json")
|
|
11
11
|
try {
|
|
12
12
|
a = JSON.stringify(a);
|
|
13
13
|
} catch {
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
...
|
|
15
|
+
const p = (n == null ? void 0 : n.fetcher) || globalThis.fetch, u = () => p(o + h, {
|
|
16
|
+
...s,
|
|
17
17
|
headers: a ? {
|
|
18
18
|
"content-type": "application/json",
|
|
19
|
-
...
|
|
20
|
-
} :
|
|
19
|
+
...s.headers
|
|
20
|
+
} : s.headers,
|
|
21
21
|
body: a
|
|
22
22
|
}).then(async (e) => {
|
|
23
|
-
var
|
|
23
|
+
var f;
|
|
24
24
|
let t;
|
|
25
|
-
switch ((
|
|
25
|
+
switch ((f = e.headers.get("Content-Type")) == null ? void 0 : f.split(";")[0]) {
|
|
26
26
|
case "application/json":
|
|
27
27
|
t = await e.json();
|
|
28
28
|
break;
|
|
@@ -32,11 +32,21 @@ const y = (f, s) => (
|
|
|
32
32
|
}
|
|
33
33
|
return e.status > 300 ? {
|
|
34
34
|
data: null,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
status: e.status,
|
|
36
|
+
headers: e.headers,
|
|
37
|
+
retry: u,
|
|
38
|
+
error: new y(e.status, t)
|
|
39
|
+
} : {
|
|
40
|
+
data: t,
|
|
41
|
+
error: null,
|
|
42
|
+
status: e.status,
|
|
43
|
+
headers: e.headers,
|
|
44
|
+
retry: u
|
|
45
|
+
};
|
|
37
46
|
});
|
|
47
|
+
return u();
|
|
38
48
|
}
|
|
39
49
|
);
|
|
40
50
|
export {
|
|
41
|
-
|
|
51
|
+
j as edenFetch
|
|
42
52
|
};
|
package/dist/fn/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Signal } from './utils';
|
|
2
|
+
const createProxy = (domain, procedures, signal) =>
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
4
|
+
new Proxy((..._) => { }, {
|
|
5
|
+
get(target, key, value) {
|
|
6
|
+
return createProxy(domain, [...procedures, key], signal);
|
|
7
|
+
},
|
|
8
|
+
apply(target, _, params) {
|
|
9
|
+
const param = params[0];
|
|
10
|
+
const procedure = procedures[0];
|
|
11
|
+
if (procedures.length === 1) {
|
|
12
|
+
if (procedure in Object.prototype ||
|
|
13
|
+
procedure in Promise.prototype)
|
|
14
|
+
return target(...params);
|
|
15
|
+
switch (procedure) {
|
|
16
|
+
case 'toJSON':
|
|
17
|
+
return target(...params);
|
|
18
|
+
case '$set':
|
|
19
|
+
return signal.setConfig(param);
|
|
20
|
+
case '$clone':
|
|
21
|
+
return createProxy(domain, [], signal.clone(param));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return signal.run(procedures, params).then((result) => {
|
|
25
|
+
if (result instanceof Error)
|
|
26
|
+
throw result;
|
|
27
|
+
return result;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
export const edenFn = (domain, config) =>
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
createProxy(domain, [], new Signal(domain, config));
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fn/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKhC,MAAM,WAAW,GAAG,CAChB,MAAc,EACd,UAAoB,EACpB,MAAc,EACS,EAAE;AACzB,gEAAgE;AAChE,IAAI,KAAK,CAAC,CAAC,GAAG,CAAQ,EAAE,EAAE,GAAE,CAAC,EAAE;IAC3B,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;QAClB,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,EAAE,GAAa,CAAC,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;IACD,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAE/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,IACI,SAAS,IAAI,MAAM,CAAC,SAAS;gBAC7B,SAAS,IAAI,OAAO,CAAC,SAAS;gBAE9B,OAAO,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;YAE5B,QAAQ,SAAS,EAAE;gBACf,KAAK,QAAQ;oBACT,OAAO,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;gBAE5B,KAAK,MAAM;oBACP,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAElC,KAAK,QAAQ;oBACT,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;aAC1D;SACJ;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAClD,IAAI,MAAM,YAAY,KAAK;gBAAE,MAAM,MAAM,CAAA;YAEzC,OAAO,MAAM,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAQ,CAAA;AAEb,MAAM,CAAC,MAAM,MAAM,GAAG,CAClB,MAAc,EACd,MAAsB,EACJ,EAAE;AACpB,6DAA6D;AAC7D,aAAa;AACb,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA"}
|
package/dist/fn/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fn/types.ts"],"names":[],"mappings":""}
|
package/dist/fn/utils.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export class Signal {
|
|
2
|
+
url;
|
|
3
|
+
config;
|
|
4
|
+
pendings = [];
|
|
5
|
+
operation = null;
|
|
6
|
+
isFetching = false;
|
|
7
|
+
sJson;
|
|
8
|
+
constructor(url, config = {}) {
|
|
9
|
+
this.url = url;
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.sJson = import('superjson').then((superJson) => {
|
|
12
|
+
return {
|
|
13
|
+
serialize: superJson.serialize,
|
|
14
|
+
deserialize: superJson.deserialize
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
setConfig(config) {
|
|
19
|
+
this.config = config;
|
|
20
|
+
}
|
|
21
|
+
clone(config) {
|
|
22
|
+
return new Signal(this.url, config ?? this.config);
|
|
23
|
+
}
|
|
24
|
+
async run(procedure, params) {
|
|
25
|
+
const current = +this.pendings.length;
|
|
26
|
+
this.pendings.push(params !== undefined
|
|
27
|
+
? { n: procedure, p: params }
|
|
28
|
+
: { n: procedure });
|
|
29
|
+
if (this.isFetching)
|
|
30
|
+
return this.operation?.then((x) => x[current]);
|
|
31
|
+
this.isFetching = true;
|
|
32
|
+
this.operation = new Promise((resolve) => {
|
|
33
|
+
setTimeout(async () => {
|
|
34
|
+
const requests = [...this.pendings];
|
|
35
|
+
this.pendings = [];
|
|
36
|
+
const { serialize, deserialize } = await this.sJson;
|
|
37
|
+
const fetch = this.config?.fetcher || globalThis.fetch;
|
|
38
|
+
const results = await fetch(`${this.url}${this.config.fn ?? '/~fn'}`, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
...this.config.fetch,
|
|
41
|
+
headers: {
|
|
42
|
+
'content-type': 'elysia/fn',
|
|
43
|
+
...this.config.fetch?.headers
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify(serialize(requests))
|
|
46
|
+
});
|
|
47
|
+
if (results.status === 200)
|
|
48
|
+
resolve(results.json().then((x) => deserialize(x)));
|
|
49
|
+
else
|
|
50
|
+
resolve(Array(requests.length).fill(new Error(await results.text())));
|
|
51
|
+
}, 33);
|
|
52
|
+
});
|
|
53
|
+
const result = await this.operation.then((results) => results[current]);
|
|
54
|
+
this.operation = null;
|
|
55
|
+
this.isFetching = false;
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fn/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
export { edenTreaty } from './treaty';
|
|
2
|
+
export { edenFetch } from './fetch';
|
|
3
|
+
export { edenFn } from './fn';
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
// export const eden: Eden = (domain: string) => ({
|
|
6
|
+
// treaty(config) {
|
|
7
|
+
// return import('./treaty').then((x) => x.edenTreaty(domain, config))
|
|
8
|
+
// },
|
|
9
|
+
// fn(config) {
|
|
10
|
+
// return import('./fn').then((x) => x.edenFn(domain, config))
|
|
11
|
+
// },
|
|
12
|
+
// fetch(config) {
|
|
13
|
+
// return import('./fetch').then((x) => x.edenFetch(domain, config))
|
|
14
|
+
// }
|
|
15
|
+
// })
|
|
16
|
+
// type Eden = (domain: string) => {
|
|
17
|
+
// treaty<App extends Elysia<any>>(
|
|
18
|
+
// config?: EdenTreaty.Config
|
|
19
|
+
// ): EdenTreaty.Create<App>
|
|
20
|
+
// fetch<App extends Elysia<any>>(
|
|
21
|
+
// config?: EdenFetch.Config
|
|
22
|
+
// ): EdenFetch.Create<App>
|
|
23
|
+
// fn<App extends Elysia<any>>(config?: EdenFn.Config): EdenFn.Create<App>
|
|
24
|
+
// }
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B,aAAa;AACb,mDAAmD;AACnD,uBAAuB;AACvB,8EAA8E;AAC9E,SAAS;AACT,mBAAmB;AACnB,sEAAsE;AACtE,SAAS;AACT,sBAAsB;AACtB,4EAA4E;AAC5E,QAAQ;AACR,KAAK;AAEL,oCAAoC;AACpC,uCAAuC;AACvC,qCAAqC;AACrC,gCAAgC;AAEhC,sCAAsC;AACtC,oCAAoC;AACpC,+BAA+B;AAE/B,8EAA8E;AAC9E,IAAI"}
|
package/dist/index.mjs
CHANGED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { EdenFetchError } from '../errors';
|
|
2
|
+
import { composePath } from './utils';
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
const isServer = typeof FileList === 'undefined';
|
|
5
|
+
const isFile = (v) => {
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
if (isServer) {
|
|
8
|
+
return v instanceof Blob;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
return v instanceof FileList || v instanceof File;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
// FormData is 1 level deep
|
|
16
|
+
const hasFile = (obj) => {
|
|
17
|
+
if (!obj)
|
|
18
|
+
return false;
|
|
19
|
+
for (const key in obj) {
|
|
20
|
+
if (isFile(obj[key]))
|
|
21
|
+
return true;
|
|
22
|
+
else if (Array.isArray(obj[key]) &&
|
|
23
|
+
obj[key].find((x) => isFile(x)))
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
};
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
const fileToBlob = (v) => isServer
|
|
30
|
+
? v
|
|
31
|
+
: new Promise((resolve) => {
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
const reader = new FileReader();
|
|
34
|
+
reader.onload = () => {
|
|
35
|
+
resolve(new Blob([reader.result], { type: v.type }));
|
|
36
|
+
};
|
|
37
|
+
reader.readAsArrayBuffer(v);
|
|
38
|
+
});
|
|
39
|
+
export class EdenWS {
|
|
40
|
+
ws;
|
|
41
|
+
url;
|
|
42
|
+
constructor(url) {
|
|
43
|
+
this.ws = new WebSocket(url);
|
|
44
|
+
this.url = url;
|
|
45
|
+
}
|
|
46
|
+
send(data) {
|
|
47
|
+
if (Array.isArray(data)) {
|
|
48
|
+
data.forEach((datum) => this.send(datum));
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
this.ws.send(typeof data === 'object' ? JSON.stringify(data) : data.toString());
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
on(type, listener, options) {
|
|
55
|
+
return this.addEventListener(type, listener, options);
|
|
56
|
+
}
|
|
57
|
+
off(type, listener, options) {
|
|
58
|
+
this.ws.removeEventListener(type, listener, options);
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
subscribe(onMessage, options) {
|
|
62
|
+
return this.addEventListener('message', onMessage, options);
|
|
63
|
+
}
|
|
64
|
+
addEventListener(type, listener, options) {
|
|
65
|
+
this.ws.addEventListener(type, (ws) => {
|
|
66
|
+
if (type === 'message') {
|
|
67
|
+
let data = ws.data.toString();
|
|
68
|
+
const start = data.charCodeAt(0);
|
|
69
|
+
if (start === 47 || start === 123)
|
|
70
|
+
try {
|
|
71
|
+
data = JSON.parse(data);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Not Empty
|
|
75
|
+
}
|
|
76
|
+
else if (!Number.isNaN(+data))
|
|
77
|
+
data = +data;
|
|
78
|
+
else if (data === 'true')
|
|
79
|
+
data = true;
|
|
80
|
+
else if (data === 'fase')
|
|
81
|
+
data = false;
|
|
82
|
+
listener({
|
|
83
|
+
...ws,
|
|
84
|
+
data
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else
|
|
88
|
+
listener(ws);
|
|
89
|
+
}, options);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
removeEventListener(type, listener, options) {
|
|
93
|
+
this.off(type, listener, options);
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
close() {
|
|
97
|
+
this.ws.close();
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const createProxy = (domain, path = '', config) => new Proxy(() => { }, {
|
|
102
|
+
get(target, key, value) {
|
|
103
|
+
return createProxy(domain, `${path}/${key.toString()}`, config);
|
|
104
|
+
},
|
|
105
|
+
apply(target, _, [{ $query, $fetch, $headers, ...bodyObj } = {
|
|
106
|
+
$fetch: undefined,
|
|
107
|
+
$headers: undefined,
|
|
108
|
+
$query: undefined
|
|
109
|
+
}] = [{}]) {
|
|
110
|
+
const i = path.lastIndexOf('/'), method = path.slice(i + 1), url = composePath(domain, path.slice(0, i), $query);
|
|
111
|
+
if (method === 'subscribe')
|
|
112
|
+
return new EdenWS(url.replace(/^([^]+):\/\//, url.startsWith('https://') ? 'wss://' : 'ws://'));
|
|
113
|
+
const execute = async () => {
|
|
114
|
+
let body;
|
|
115
|
+
const headers = {
|
|
116
|
+
...config.$fetch?.headers,
|
|
117
|
+
...$fetch?.headers,
|
|
118
|
+
...$headers
|
|
119
|
+
};
|
|
120
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
121
|
+
body = Object.keys(bodyObj).length ? bodyObj : undefined;
|
|
122
|
+
const isObject = typeof body === 'object';
|
|
123
|
+
const isFormData = isObject && hasFile(body);
|
|
124
|
+
if (isFormData) {
|
|
125
|
+
const newBody = new FormData();
|
|
126
|
+
// FormData is 1 level deep
|
|
127
|
+
for (const [key, field] of Object.entries(body)) {
|
|
128
|
+
if (isServer) {
|
|
129
|
+
newBody.append(key, field);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// @ts-ignore
|
|
133
|
+
if (field instanceof File)
|
|
134
|
+
newBody.append(key, await fileToBlob(field));
|
|
135
|
+
// @ts-ignore
|
|
136
|
+
else if (field instanceof FileList) {
|
|
137
|
+
// @ts-ignore
|
|
138
|
+
for (let i = 0; i < field.length; i++) {
|
|
139
|
+
newBody.append(key, await fileToBlob(field[i]));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else
|
|
143
|
+
newBody.append(key, field);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
body = newBody;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
headers['content-type'] = isObject
|
|
150
|
+
? 'application/json'
|
|
151
|
+
: 'text/plain';
|
|
152
|
+
if (isObject)
|
|
153
|
+
body = JSON.stringify(body);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const response = await (config.fetcher ?? fetch)(url, {
|
|
157
|
+
method,
|
|
158
|
+
body,
|
|
159
|
+
...config.$fetch,
|
|
160
|
+
...$fetch,
|
|
161
|
+
headers
|
|
162
|
+
});
|
|
163
|
+
let data;
|
|
164
|
+
switch (response.headers.get('Content-Type')?.split(';')[0]) {
|
|
165
|
+
case 'application/json':
|
|
166
|
+
data = await response.json();
|
|
167
|
+
break;
|
|
168
|
+
default:
|
|
169
|
+
data = await response.text().then((data) => {
|
|
170
|
+
if (!Number.isNaN(+data))
|
|
171
|
+
return +data;
|
|
172
|
+
if (data === 'true')
|
|
173
|
+
return true;
|
|
174
|
+
if (data === 'false')
|
|
175
|
+
return false;
|
|
176
|
+
return data;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
if (response.status > 300)
|
|
180
|
+
return {
|
|
181
|
+
data,
|
|
182
|
+
error: new EdenFetchError(response.status, await data),
|
|
183
|
+
status: response.status,
|
|
184
|
+
raw: response,
|
|
185
|
+
headers: response.headers,
|
|
186
|
+
};
|
|
187
|
+
return {
|
|
188
|
+
data,
|
|
189
|
+
status: response.status,
|
|
190
|
+
response: response,
|
|
191
|
+
headers: response.headers,
|
|
192
|
+
error: null
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
return execute();
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
export const edenTreaty = (domain, config = {
|
|
199
|
+
fetcher: fetch
|
|
200
|
+
}) => new Proxy({}, {
|
|
201
|
+
get(target, key) {
|
|
202
|
+
return createProxy(domain, key, config);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/treaty/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/treaty/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const composePath = (domain, path, query) => {
|
|
2
|
+
if (!domain.endsWith('/'))
|
|
3
|
+
domain += '/';
|
|
4
|
+
if (path === 'index')
|
|
5
|
+
path = '';
|
|
6
|
+
if (!query || !Object.keys(query).length)
|
|
7
|
+
return `${domain}${path}`;
|
|
8
|
+
let q = '';
|
|
9
|
+
for (const [key, value] of Object.entries(query))
|
|
10
|
+
q += `${key}=${value}&`;
|
|
11
|
+
return `${domain}${path}?${q.slice(0, -1)}`;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/treaty/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CACvB,MAAc,EACd,IAAY,EACZ,KAAyC,EAC3C,EAAE;IACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,GAAG,CAAA;IACxC,IAAI,IAAI,KAAK,OAAO;QAAE,IAAI,GAAG,EAAE,CAAA;IAE/B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAA;IAEnE,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,CAAA;IAEzE,OAAO,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/C,CAAC,CAAA"}
|
package/dist/treaty.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var A=Object.defineProperty;var
|
|
1
|
+
"use strict";var A=Object.defineProperty;var k=(r,e,t)=>e in r?A(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var b=(r,e,t)=>(k(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./errors-a2cfc56a.js"),P=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(const[o,s]of Object.entries(t))n+=`${o}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`},g=typeof FileList>"u",x=r=>g?r instanceof Blob:r instanceof FileList||r instanceof File,T=r=>{if(!r)return!1;for(const e in r){if(x(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>x(t)))return!0}return!1},L=r=>g?r:new Promise(e=>{const t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:r.type}))},t.readAsArrayBuffer(r)});class N{constructor(e){b(this,"ws");b(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,o=>{if(e==="message"){let s=o.data.toString();const l=s.charCodeAt(0);if(l===47||l===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)},n),this}removeEventListener(e,t,n){return this.off(e,t,n),this}close(){return this.ws.close(),this}}const O=(r,e="",t)=>new Proxy(()=>{},{get(n,o,s){return O(r,`${e}/${o.toString()}`,t)},apply(n,o,[{$query:s,$fetch:l,$headers:$,...E}={$fetch:void 0,$headers:void 0,$query:void 0}]=[{}]){const v=e.lastIndexOf("/"),h=e.slice(v+1),w=P(r,e.slice(0,v),s);return h==="subscribe"?new N(w.replace(/^([^]+):\/\//,w.startsWith("https://")?"wss://":"ws://")):(async()=>{var S,m;let c;const F={...(S=t.$fetch)==null?void 0:S.headers,...l==null?void 0:l.headers,...$};if(h!=="GET"&&h!=="HEAD"){c=Object.keys(E).length?E:void 0;const a=typeof c=="object";if(a&&T(c)){const d=new FormData;for(const[y,f]of Object.entries(c))if(g)d.append(y,f);else if(f instanceof File)d.append(y,await L(f));else if(f instanceof FileList)for(let p=0;p<f.length;p++)d.append(y,await L(f[p]));else d.append(y,f);c=d}else F["content-type"]=a?"application/json":"text/plain",a&&(c=JSON.stringify(c))}const i=await(t.fetcher??fetch)(w,{method:h,body:c,...t.$fetch,...l,headers:F});let u;switch((m=i.headers.get("Content-Type"))==null?void 0:m.split(";")[0]){case"application/json":u=await i.json();break;default:u=await i.text().then(a=>Number.isNaN(+a)?a==="true"?!0:a==="false"?!1:a:+a)}return i.status>300?{data:u,error:new j.EdenFetchError(i.status,await u),status:i.status,raw:i,headers:i.headers}:{data:u,status:i.status,response:i,headers:i.headers,error:null}})()}}),B=(r,e={fetcher:fetch})=>new Proxy({},{get(t,n){return O(r,n,e)}});exports.EdenWS=N;exports.edenTreaty=B;
|