@noxickon/onyx 6.3.0 → 6.5.0

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.
@@ -1,48 +1,49 @@
1
1
  import { formErrors as e } from "../../hooks/useForm/useForm.js";
2
+ import { OxRestError as t } from "./OxRestError.js";
2
3
  //#region src/rest/executors/restExecutor.ts
3
- var t = (e) => typeof Blob < "u" && e instanceof Blob, n = (e) => typeof FileList < "u" && e instanceof FileList;
4
- function r(e) {
5
- return t(e) || n(e) ? !0 : Array.isArray(e) ? e.some((e) => r(e)) : typeof e == "object" && e ? Object.values(e).some((e) => r(e)) : !1;
4
+ var n = (e) => typeof Blob < "u" && e instanceof Blob, r = (e) => typeof FileList < "u" && e instanceof FileList;
5
+ function i(e) {
6
+ return n(e) || r(e) ? !0 : Array.isArray(e) ? e.some((e) => i(e)) : typeof e == "object" && e ? Object.values(e).some((e) => i(e)) : !1;
6
7
  }
7
- function i(e, r, a) {
8
- if (a !== void 0) {
9
- if (a === null) {
10
- e.append(r, "");
8
+ function a(e, t, i) {
9
+ if (i !== void 0) {
10
+ if (i === null) {
11
+ e.append(t, "");
11
12
  return;
12
13
  }
13
- if (t(a)) {
14
- e.append(r, a);
14
+ if (n(i)) {
15
+ e.append(t, i);
15
16
  return;
16
17
  }
17
- if (n(a)) {
18
- [...a].forEach((t, n) => i(e, `${r}[${n}]`, t));
18
+ if (r(i)) {
19
+ [...i].forEach((n, r) => a(e, `${t}[${r}]`, n));
19
20
  return;
20
21
  }
21
- if (Array.isArray(a)) {
22
- a.forEach((t, n) => i(e, `${r}[${n}]`, t));
22
+ if (Array.isArray(i)) {
23
+ i.forEach((n, r) => a(e, `${t}[${r}]`, n));
23
24
  return;
24
25
  }
25
- if (a instanceof Date) {
26
- e.append(r, a.toISOString());
26
+ if (i instanceof Date) {
27
+ e.append(t, i.toISOString());
27
28
  return;
28
29
  }
29
- if (typeof a == "object") {
30
- for (let [t, n] of Object.entries(a)) i(e, `${r}[${t}]`, n);
30
+ if (typeof i == "object") {
31
+ for (let [n, r] of Object.entries(i)) a(e, `${t}[${n}]`, r);
31
32
  return;
32
33
  }
33
- if (typeof a == "boolean") {
34
- e.append(r, a ? "1" : "0");
34
+ if (typeof i == "boolean") {
35
+ e.append(t, i ? "1" : "0");
35
36
  return;
36
37
  }
37
- e.append(r, String(a));
38
+ e.append(t, String(i));
38
39
  }
39
40
  }
40
- function a(e) {
41
+ function o(e) {
41
42
  let t = new FormData();
42
- for (let [n, r] of Object.entries(e)) i(t, n, r);
43
+ for (let [n, r] of Object.entries(e)) a(t, n, r);
43
44
  return t;
44
45
  }
45
- function o(e) {
46
+ function s(e) {
46
47
  let t = new URLSearchParams(), n = (e, r) => {
47
48
  if (!(r == null || r === "")) {
48
49
  if (Array.isArray(r)) {
@@ -60,94 +61,101 @@ function o(e) {
60
61
  for (let [t, r] of Object.entries(e)) n(t, r);
61
62
  return t.toString();
62
63
  }
63
- var s = (e, t) => e !== 422 || typeof t != "object" || !t ? null : t.errors ?? t;
64
- function c(t, n, r) {
65
- let i = r(t, n);
66
- if (i === null) throw Error(`restExecutor: received HTTP ${t} but parseErrors produced no field errors`);
67
- return e(i);
64
+ var c = (e, t) => e !== 422 || typeof t != "object" || !t ? null : t.errors ?? t;
65
+ function l(n, r, i) {
66
+ let a = i(n, r);
67
+ if (a === null) throw new t(n, r);
68
+ return e(a);
68
69
  }
69
- function l(e, t) {
70
- return t.length === 0 ? null : e?.includes("application/json") ? JSON.parse(t) : t;
70
+ var u = (e) => e?.includes("application/json") === !0 || e?.includes("application/problem+json") === !0;
71
+ function d(e, t) {
72
+ if (t.length === 0) return null;
73
+ if (u(e)) return JSON.parse(t);
74
+ try {
75
+ return JSON.parse(t);
76
+ } catch {
77
+ return t;
78
+ }
71
79
  }
72
- function u(e, t, n, r, i, o, s) {
73
- let { onProgress: u, signal: d } = s;
74
- return new Promise((s, f) => {
75
- if (d.aborted) {
76
- f(new DOMException("Aborted", "AbortError"));
80
+ function f(e, n, r, i, a, s, c) {
81
+ let { onProgress: u, signal: f } = c;
82
+ return new Promise((c, p) => {
83
+ if (f.aborted) {
84
+ p(new DOMException("Aborted", "AbortError"));
77
85
  return;
78
86
  }
79
- let p = new XMLHttpRequest();
80
- p.open(e, t), p.withCredentials = i;
81
- for (let [e, t] of Object.entries(r)) p.setRequestHeader(e, t);
82
- let m = () => p.abort();
83
- d.addEventListener("abort", m), p.upload.addEventListener("progress", (e) => {
87
+ let m = new XMLHttpRequest();
88
+ m.open(e, n), m.withCredentials = a;
89
+ for (let [e, t] of Object.entries(i)) m.setRequestHeader(e, t);
90
+ let h = () => m.abort();
91
+ f.addEventListener("abort", h), m.upload.addEventListener("progress", (e) => {
84
92
  let t = {
85
93
  loaded: e.loaded,
86
94
  total: e.lengthComputable ? e.total : void 0,
87
95
  percentage: e.lengthComputable ? Math.round(e.loaded * 100 / e.total) : void 0
88
96
  };
89
97
  u?.(t);
90
- }), p.addEventListener("abort", () => {
91
- d.removeEventListener("abort", m), f(new DOMException("Aborted", "AbortError"));
92
- }), p.addEventListener("error", () => {
93
- d.removeEventListener("abort", m), f(/* @__PURE__ */ Error("Network request failed"));
94
- }), p.addEventListener("load", () => {
95
- d.removeEventListener("abort", m);
98
+ }), m.addEventListener("abort", () => {
99
+ f.removeEventListener("abort", h), p(new DOMException("Aborted", "AbortError"));
100
+ }), m.addEventListener("error", () => {
101
+ f.removeEventListener("abort", h), p(/* @__PURE__ */ Error("Network request failed"));
102
+ }), m.addEventListener("load", () => {
103
+ f.removeEventListener("abort", h);
96
104
  let e;
97
105
  try {
98
- e = l(p.getResponseHeader("Content-Type"), p.responseText);
106
+ e = d(m.getResponseHeader("Content-Type"), m.responseText);
99
107
  } catch (e) {
100
- f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to parse response"));
108
+ p(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to parse response"));
101
109
  return;
102
110
  }
103
- if (p.status === 422) {
111
+ if (m.status === 422) {
104
112
  try {
105
- s(c(422, e, o));
113
+ c(l(422, e, s));
106
114
  } catch (e) {
107
- f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to map validation error"));
115
+ p(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to map validation error"));
108
116
  }
109
117
  return;
110
118
  }
111
- if (p.status < 200 || p.status >= 300) {
112
- f(/* @__PURE__ */ Error(`HTTP ${p.status}`));
119
+ if (m.status < 200 || m.status >= 300) {
120
+ p(new t(m.status, e));
113
121
  return;
114
122
  }
115
- s(e);
116
- }), p.send(a(n));
123
+ c(e);
124
+ }), m.send(o(r));
117
125
  });
118
126
  }
119
- function d(e, t = {}) {
120
- let { credentials: n = "same-origin", forceFormData: i = !1, headers: a, parseErrors: d } = t, f = d ?? s;
121
- return async (t) => {
122
- let { method: s = "post", payload: d, signal: p, url: m } = t, h = m ?? e;
123
- if (!h) throw Error("restExecutor: no url provided (pass it to restExecutor or to the method)");
124
- let g = s.toUpperCase(), _ = g === "GET" || g === "HEAD", v = typeof a == "function" ? a(d) : a ?? {};
125
- if (!_ && (i || r(d))) return u(g, h, d, v, n === "include", f, t);
126
- if (_) {
127
- let e = o(d), t = await fetch(e ? `${h}?${e}` : h, {
128
- method: g,
129
- headers: v,
130
- credentials: n,
131
- signal: p
132
- }), r = l(t.headers.get("Content-Type"), await t.text());
133
- if (t.status === 422) return c(422, r, f);
134
- if (!t.ok) throw Error(`HTTP ${t.status}`);
135
- return r;
127
+ function p(e, n = {}) {
128
+ let { credentials: r = "same-origin", forceFormData: a = !1, headers: o, parseErrors: u } = n, p = u ?? c;
129
+ return async (n) => {
130
+ let { method: c = "post", payload: u, signal: m, url: h } = n, g = h ?? e;
131
+ if (!g) throw Error("restExecutor: no url provided (pass it to restExecutor or to the method)");
132
+ let _ = c.toUpperCase(), v = _ === "GET" || _ === "HEAD", y = typeof o == "function" ? o(u) : o ?? {};
133
+ if (!v && (a || i(u))) return f(_, g, u, y, r === "include", p, n);
134
+ if (v) {
135
+ let e = s(u), n = await fetch(e ? `${g}?${e}` : g, {
136
+ method: _,
137
+ headers: y,
138
+ credentials: r,
139
+ signal: m
140
+ }), i = d(n.headers.get("Content-Type"), await n.text());
141
+ if (n.status === 422) return l(422, i, p);
142
+ if (!n.ok) throw new t(n.status, i);
143
+ return i;
136
144
  }
137
- let y = await fetch(h, {
138
- method: g,
145
+ let b = await fetch(g, {
146
+ method: _,
139
147
  headers: {
140
148
  "Content-Type": "application/json",
141
- ...v
149
+ ...y
142
150
  },
143
- body: JSON.stringify(d),
144
- credentials: n,
145
- signal: p
146
- }), b = l(y.headers.get("Content-Type"), await y.text());
147
- if (y.status === 422) return c(422, b, f);
148
- if (!y.ok) throw Error(`HTTP ${y.status}`);
149
- return b;
151
+ body: JSON.stringify(u),
152
+ credentials: r,
153
+ signal: m
154
+ }), x = d(b.headers.get("Content-Type"), await b.text());
155
+ if (b.status === 422) return l(422, x, p);
156
+ if (!b.ok) throw new t(b.status, x);
157
+ return x;
150
158
  };
151
159
  }
152
160
  //#endregion
153
- export { d as restExecutor };
161
+ export { p as restExecutor };
@@ -1,2 +1,3 @@
1
+ export { OxRestError } from './executors/OxRestError';
1
2
  export { restExecutor } from './executors/restExecutor';
2
3
  export type { RestExecutorOptions } from './executors/restExecutor.types';
package/dist/rest.js CHANGED
@@ -1,2 +1,3 @@
1
- import { restExecutor as e } from "./rest/executors/restExecutor.js";
2
- export { e as restExecutor };
1
+ import { OxRestError as e } from "./rest/executors/OxRestError.js";
2
+ import { restExecutor as t } from "./rest/executors/restExecutor.js";
3
+ export { e as OxRestError, t as restExecutor };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noxickon/onyx",
3
- "version": "6.3.0",
3
+ "version": "6.5.0",
4
4
  "type": "module",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",