@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.
Files changed (56) hide show
  1. package/dist/errors.js +10 -0
  2. package/dist/errors.js.map +1 -0
  3. package/dist/fetch/index.js +64 -0
  4. package/dist/fetch/index.js.map +1 -0
  5. package/dist/fetch/types.js +2 -0
  6. package/dist/fetch/types.js.map +1 -0
  7. package/dist/fetch.js +1 -1
  8. package/dist/fetch.mjs +26 -16
  9. package/dist/fn/index.js +35 -0
  10. package/dist/fn/index.js.map +1 -0
  11. package/dist/fn/types.js +2 -0
  12. package/dist/fn/types.js.map +1 -0
  13. package/dist/fn/utils.js +59 -0
  14. package/dist/fn/utils.js.map +1 -0
  15. package/dist/index.js +25 -1
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.mjs +1 -1
  18. package/dist/treaty/index.js +205 -0
  19. package/dist/treaty/index.js.map +1 -0
  20. package/dist/treaty/types.js +2 -0
  21. package/dist/treaty/types.js.map +1 -0
  22. package/dist/treaty/utils.js +13 -0
  23. package/dist/treaty/utils.js.map +1 -0
  24. package/dist/treaty.js +1 -1
  25. package/dist/treaty.mjs +108 -112
  26. package/dist/types.js +2 -0
  27. package/dist/types.js.map +1 -0
  28. package/package.json +77 -78
  29. package/src/fetch/index.ts +16 -5
  30. package/src/fetch/types.ts +32 -13
  31. package/src/treaty/index.ts +57 -52
  32. package/src/treaty/types.ts +116 -205
  33. package/src/types.ts +1 -1
  34. package/dist/fetch/index.d.ts +0 -5
  35. package/dist/fetch/index.d.ts.map +0 -1
  36. package/dist/fetch/types.d.ts +0 -36
  37. package/dist/fetch/types.d.ts.map +0 -1
  38. package/dist/fn/index.d.ts +0 -5
  39. package/dist/fn/index.d.ts.map +0 -1
  40. package/dist/fn/types.d.ts +0 -28
  41. package/dist/fn/types.d.ts.map +0 -1
  42. package/dist/fn/utils.d.ts +0 -14
  43. package/dist/fn/utils.d.ts.map +0 -1
  44. package/dist/index.d.ts +0 -4
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/treaty/index.d.ts +0 -18
  47. package/dist/treaty/index.d.ts.map +0 -1
  48. package/dist/treaty/utils.d.ts +0 -2
  49. package/dist/treaty/utils.d.ts.map +0 -1
  50. package/dist/types.d.ts +0 -26
  51. package/dist/types.d.ts.map +0 -1
  52. package/dist/utils.d.ts +0 -6
  53. package/dist/utils.d.ts.map +0 -1
  54. /package/dist/{utils-5a40996f.mjs → errors-5a40996f.mjs} +0 -0
  55. /package/dist/{utils-a2cfc56a.js → errors-a2cfc56a.js} +0 -0
  56. /package/src/{utils.ts → errors.ts} +0 -0
package/dist/errors.js ADDED
@@ -0,0 +1,10 @@
1
+ export class EdenFetchError extends Error {
2
+ status;
3
+ value;
4
+ constructor(status, value) {
5
+ super();
6
+ this.status = status;
7
+ this.value = value;
8
+ }
9
+ }
10
+ //# sourceMappingURL=errors.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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 o=require("./utils-a2cfc56a.js"),p=(f,c)=>async(s,{params:u,body:a,...n}={})=>{var h;u&&Object.entries(u).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});const l=(h=n.headers)==null?void 0:h["Content-Type"];if(!l||l==="application/json")try{a=JSON.stringify(a)}catch{}return((c==null?void 0:c.fetcher)||globalThis.fetch)(f+s,{...n,headers:a?{"content-type":"application/json",...n.headers}:n.headers,body:a}).then(async e=>{var i;let t;switch((i=e.headers.get("Content-Type"))==null?void 0:i.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,error:new o.EdenFetchError(e.status,t)}:{data:t,error:null}})};exports.edenFetch=p;
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 o } from "./utils-5a40996f.mjs";
2
- const y = (f, s) => (
1
+ import { E as y } from "./errors-5a40996f.mjs";
2
+ const j = (o, n) => (
3
3
  // @ts-ignore
4
- async (c, { params: h, body: a, ...n } = {}) => {
5
- var u;
6
- h && Object.entries(h).forEach(([e, t]) => {
7
- c = c.replace(`:${e}`, t);
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 = (u = n.headers) == null ? void 0 : u["Content-Type"];
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
- return ((s == null ? void 0 : s.fetcher) || globalThis.fetch)(f + c, {
16
- ...n,
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
- ...n.headers
20
- } : n.headers,
19
+ ...s.headers
20
+ } : s.headers,
21
21
  body: a
22
22
  }).then(async (e) => {
23
- var i;
23
+ var f;
24
24
  let t;
25
- switch ((i = e.headers.get("Content-Type")) == null ? void 0 : i.split(";")[0]) {
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
- error: new o(e.status, t)
36
- } : { data: t, error: null };
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
- y as edenFetch
51
+ j as edenFetch
42
52
  };
@@ -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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fn/types.ts"],"names":[],"mappings":""}
@@ -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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./treaty.js"),t=require("./fetch.js"),r=require("./fn.js");require("./utils-a2cfc56a.js");exports.edenTreaty=e.edenTreaty;exports.edenFetch=t.edenFetch;exports.edenFn=r.edenFn;
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
@@ -1,7 +1,7 @@
1
1
  import { edenTreaty as t } from "./treaty.mjs";
2
2
  import { edenFetch as n } from "./fetch.mjs";
3
3
  import { edenFn as d } from "./fn.mjs";
4
- import "./utils-5a40996f.mjs";
4
+ import "./errors-5a40996f.mjs";
5
5
  export {
6
6
  n as edenFetch,
7
7
  d as edenFn,
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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 P=(r,e,t)=>e in r?A(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var g=(r,e,t)=>(P(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("./utils-a2cfc56a.js"),T=(r,e,t)=>{if(r.endsWith("/")||(r+="/"),e==="index"&&(e=""),!t||!Object.keys(t).length)return`${r}${e}`;let n="";for(const[a,s]of Object.entries(t))n+=`${a}=${s}&`;return`${r}${e}?${n.slice(0,-1)}`},v=typeof FileList>"u",O=r=>v?r instanceof Blob:r instanceof FileList||r instanceof File,W=r=>{for(const e in r){if(O(r[e]))return!0;if(Array.isArray(r[e])&&r[e].find(t=>O(t)))return!0}return!1},m=r=>v?r:new Promise(e=>{const t=new FileReader;t.onload=()=>{e(new Blob([t.result],{type:r.type}))},t.readAsArrayBuffer(r)});class x{constructor(e){g(this,"ws");g(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,a=>{if(e==="message"){let s=a.data.toString();const c=s.charCodeAt(0);if(c===47||c===123)try{s=JSON.parse(s)}catch{}else Number.isNaN(+s)?s==="true"?s=!0:s==="fase"&&(s=!1):s=+s;t({...a,data:s})}else t(a)},n),this}removeEventListener(e,t,n){return this.off(e,t,n),this}close(){return this.ws.close(),this}}const j=(r,e="",t)=>new Proxy(()=>{},{get(n,a,s){return j(r,`${e}/${a.toString()}`,t)},apply(n,a,[{$query:s,$fetch:c,$body:k,...S}={$fetch:void 0,$query:void 0,$body:void 0}]=[{}]){const E=e.lastIndexOf("/"),F=e.slice(E+1),h=T(r,e.slice(0,E),s);if(F==="subscribe")return new x(h.replace(/^([^]+):\/\//,h.startsWith("https://")?"wss://":"ws://"));const y=async()=>{var L,N;let l=k??(Object.keys(S).length?S:void 0);const w=typeof l=="object",$=w&&W(l);if($){const o=new FormData;for(const[d,f]of Object.entries(l))if(v)o.append(d,f);else if(f instanceof File)o.append(d,await m(f));else if(f instanceof FileList)for(let b=0;b<f.length;b++)o.append(d,await m(f[b]));else o.append(d,f);l=o}else w&&(l=JSON.stringify(l));const p={...(L=t.$fetch)==null?void 0:L.headers,...c==null?void 0:c.headers},i=await(t.fetcher??fetch)(h,{method:F,body:l,...t.$fetch,...c,headers:l?$?p:{"content-type":w?"application/json":"text/plain",...p}:p});let u;switch((N=i.headers.get("Content-Type"))==null?void 0:N.split(";")[0]){case"application/json":u=await i.json();break;default:u=await i.text().then(o=>Number.isNaN(+o)?o==="true"?!0:o==="false"?!1:o:+o)}return i.status>300?{data:u,error:new B.EdenFetchError(i.status,await u),status:i.status,raw:i,headers:i.headers,retry:y}:{data:u,status:i.status,raw:i,headers:i.headers,error:null,retry:y}};return y()}}),J=(r,e={fetcher:fetch})=>new Proxy({},{get(t,n){return j(r,n,e)}});exports.EdenWS=x;exports.edenTreaty=J;
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;