UNPKG

http-svc

Version:

A HTTP request service for browser and node.js

1,326 lines (1,325 loc) 41.4 kB
import { HttpSvcMiddleware as Y } from "@http-svc/middleware"; import _e from "qs"; function te(t, r) { (r == null || r > t.length) && (r = t.length); for (var e = 0, n = Array(r); e < r; e++) n[e] = t[e]; return n; } function $e(t) { if (Array.isArray(t)) return t; } function Ue(t) { if (Array.isArray(t)) return te(t); } function Be(t) { if (t === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; } function le(t, r, e, n, a, i, u) { try { var o = t[i](u), s = o.value; } catch (f) { return void e(f); } o.done ? r(s) : Promise.resolve(s).then(n, a); } function A(t) { return function() { var r = this, e = arguments; return new Promise(function(n, a) { var i = t.apply(r, e); function u(s) { le(i, n, a, u, o, "next", s); } function o(s) { le(i, n, a, u, o, "throw", s); } u(void 0); }); }; } function H(t, r, e) { return r = Z(r), Xe(t, be() ? Reflect.construct(r, e || [], Z(t).constructor) : r.apply(t, e)); } function R(t, r) { if (!(t instanceof r)) throw new TypeError("Cannot call a class as a function"); } function ce(t, r) { for (var e = 0; e < r.length; e++) { var n = r[e]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, we(n.key), n); } } function E(t, r, e) { return r && ce(t.prototype, r), e && ce(t, e), Object.defineProperty(t, "prototype", { writable: !1 }), t; } function Le(t, r) { var e = typeof Symbol != "undefined" && t[Symbol.iterator] || t["@@iterator"]; if (!e) { if (Array.isArray(t) || (e = oe(t)) || r && t && typeof t.length == "number") { e && (t = e); var n = 0, a = function() { }; return { s: a, n: function() { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] }; }, e: function(s) { throw s; }, f: a }; } throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } var i, u = !0, o = !1; return { s: function() { e = e.call(t); }, n: function() { var s = e.next(); return u = s.done, s; }, e: function(s) { o = !0, i = s; }, f: function() { try { u || e.return == null || e.return(); } finally { if (o) throw i; } } }; } function y(t, r, e) { return (r = we(r)) in t ? Object.defineProperty(t, r, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[r] = e, t; } function Z(t) { return Z = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(r) { return r.__proto__ || Object.getPrototypeOf(r); }, Z(t); } function _(t, r) { if (typeof r != "function" && r !== null) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(r && r.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), r && ne(t, r); } function be() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); } catch (r) { } return (be = function() { return !!t; })(); } function Ge(t) { if (typeof Symbol != "undefined" && t[Symbol.iterator] != null || t["@@iterator"] != null) return Array.from(t); } function Ye(t, r) { var e = t == null ? null : typeof Symbol != "undefined" && t[Symbol.iterator] || t["@@iterator"]; if (e != null) { var n, a, i, u, o = [], s = !0, f = !1; try { if (i = (e = e.call(t)).next, r === 0) { if (Object(e) !== e) return; s = !1; } else for (; !(s = (n = i.call(e)).done) && (o.push(n.value), o.length !== r); s = !0) ; } catch (d) { f = !0, a = d; } finally { try { if (!s && e.return != null && (u = e.return(), Object(u) !== u)) return; } finally { if (f) throw a; } } return o; } } function Me() { throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } function Ne() { throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } function he(t, r) { var e = Object.keys(t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(t); r && (n = n.filter(function(a) { return Object.getOwnPropertyDescriptor(t, a).enumerable; })), e.push.apply(e, n); } return e; } function N(t) { for (var r = 1; r < arguments.length; r++) { var e = arguments[r] != null ? arguments[r] : {}; r % 2 ? he(Object(e), !0).forEach(function(n) { y(t, n, e[n]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(e)) : he(Object(e)).forEach(function(n) { Object.defineProperty(t, n, Object.getOwnPropertyDescriptor(e, n)); }); } return t; } function Xe(t, r) { if (r && (typeof r == "object" || typeof r == "function")) return r; if (r !== void 0) throw new TypeError("Derived constructors may only return object or undefined"); return Be(t); } function m() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var t, r, e = typeof Symbol == "function" ? Symbol : {}, n = e.iterator || "@@iterator", a = e.toStringTag || "@@toStringTag"; function i(h, v, S, g) { var p = v && v.prototype instanceof o ? v : o, k = Object.create(p.prototype); return I(k, "_invoke", function(j, B, $) { var C, b, q, U = 0, L = $ || [], w = !1, T = { p: 0, n: 0, v: t, a: K, f: K.bind(t, 4), d: function(F, D) { return C = F, b = 0, q = t, T.n = D, u; } }; function K(F, D) { for (b = F, q = D, r = 0; !w && U && !M && r < L.length; r++) { var M, P = L[r], ee = T.p, V = P[2]; F > 3 ? (M = V === D) && (q = P[(b = P[4]) ? 5 : (b = 3, 3)], P[4] = P[5] = t) : P[0] <= ee && ((M = F < 2 && ee < P[1]) ? (b = 0, T.v = D, T.n = P[1]) : ee < V && (M = F < 3 || P[0] > D || D > V) && (P[4] = F, P[5] = D, T.n = V, b = 0)); } if (M || F > 1) return u; throw w = !0, D; } return function(F, D, M) { if (U > 1) throw TypeError("Generator is already running"); for (w && D === 1 && K(D, M), b = D, q = M; (r = b < 2 ? t : q) || !w; ) { C || (b ? b < 3 ? (b > 1 && (T.n = -1), K(b, q)) : T.n = q : T.v = q); try { if (U = 2, C) { if (b || (F = "next"), r = C[F]) { if (!(r = r.call(C, q))) throw TypeError("iterator result is not an object"); if (!r.done) return r; q = r.value, b < 2 && (b = 0); } else b === 1 && (r = C.return) && r.call(C), b < 2 && (q = TypeError("The iterator does not provide a '" + F + "' method"), b = 1); C = t; } else if ((r = (w = T.n < 0) ? q : j.call(B, T)) !== u) break; } catch (P) { C = t, b = 1, q = P; } finally { U = 1; } } return { value: r, done: w }; }; }(h, S, g), !0), k; } var u = {}; function o() { } function s() { } function f() { } r = Object.getPrototypeOf; var d = [][n] ? r(r([][n]())) : (I(r = {}, n, function() { return this; }), r), l = f.prototype = o.prototype = Object.create(d); function c(h) { return Object.setPrototypeOf ? Object.setPrototypeOf(h, f) : (h.__proto__ = f, I(h, a, "GeneratorFunction")), h.prototype = Object.create(l), h; } return s.prototype = f, I(l, "constructor", f), I(f, "constructor", s), s.displayName = "GeneratorFunction", I(f, a, "GeneratorFunction"), I(l), I(l, a, "Generator"), I(l, n, function() { return this; }), I(l, "toString", function() { return "[object Generator]"; }), (m = function() { return { w: i, m: c }; })(); } function I(t, r, e, n) { var a = Object.defineProperty; try { a({}, "", {}); } catch (i) { a = 0; } I = function(i, u, o, s) { function f(d, l) { I(i, d, function(c) { return this._invoke(d, l, c); }); } u ? a ? a(i, u, { value: o, enumerable: !s, configurable: !s, writable: !s }) : i[u] = o : (f("next", 0), f("throw", 1), f("return", 2)); }, I(t, r, e, n); } function ne(t, r) { return ne = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, n) { return e.__proto__ = n, e; }, ne(t, r); } function ae(t, r) { return $e(t) || Ye(t, r) || oe(t, r) || Me(); } function me(t) { return Ue(t) || Ge(t) || oe(t) || Ne(); } function Je(t, r) { if (typeof t != "object" || !t) return t; var e = t[Symbol.toPrimitive]; if (e !== void 0) { var n = e.call(t, r || "default"); if (typeof n != "object") return n; throw new TypeError("@@toPrimitive must return a primitive value."); } return (r === "string" ? String : Number)(t); } function we(t) { var r = Je(t, "string"); return typeof r == "symbol" ? r : r + ""; } function W(t) { return W = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(r) { return typeof r; } : function(r) { return r && typeof Symbol == "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r; }, W(t); } function oe(t, r) { if (t) { if (typeof t == "string") return te(t, r); var e = {}.toString.call(t).slice(8, -1); return e === "Object" && t.constructor && (e = t.constructor.name), e === "Map" || e === "Set" ? Array.from(t) : e === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? te(t, r) : void 0; } } var O = function(r) { return "BUILT_IN_".concat(r); }, ie = function(r) { return !!(r.name && r.handler); }, de = function(r, e) { var n, a = (n = r.response) === null || n === void 0 ? void 0 : n.status, i = "Request Error", u = ""; return e ? u = e : typeof a == "number" ? u = "".concat(i, ": ").concat(a) : u = i, new Error(u); }, J = function(r, e) { var n, a; typeof e == "undefined" ? a = de(r) : e instanceof Error ? a = e : a = de(r, typeof e == "string" ? e : e == null ? void 0 : e.message); var i = (n = r.response) === null || n === void 0 ? void 0 : n.status; return r.request ? a.config = { url: r.request.url, method: r.request.method, params: r.request.params, data: r.request.data, headers: r.request.headers } : a.config = r.config, r.response && (a.response = r.response, !r.response.ok && i && (a.status = i)), a; }, x = typeof window == "undefined", We = function(r) { return r !== null && W(r) === "object"; }, ge = function(r) { return Object.prototype.toString.call(r) === "[object Object]"; }, ze = function(r) { return typeof FormData != "undefined" && r instanceof FormData; }, Se = function(r, e) { return _e.stringify(r, e || { encode: !0, arrayFormat: "brackets" }); }, Ke = function(r, e, n) { var a = ""; if (Object.keys(e).length === 0) return r; if (typeof n == "function") a = n(e); else { var i = { encode: !0, arrayFormat: "brackets" }; n && W(n) === "object" && Object.assign(i, n), a = Se(e, i); } if (a) { var u = r.indexOf("#"); u !== -1 && (r = r.slice(0, u)), r += (r.indexOf("?") === -1 ? "?" : "&") + a; } return r; }, Ve = function(r) { var e = r.split("?"), n = ae(e, 2), a = n[0], i = n[1]; if (i) { var u = i.split("&"); if (u.length) { var o = {}, s = Le(u), f; try { for (s.s(); !(f = s.n()).done; ) { var d = f.value, l = d.split("="), c = ae(l, 2), h = c[0], v = c[1]; h && typeof v != "undefined" && (o[h] = v); } } catch (S) { s.e(S); } finally { s.f(); } return { url: a, params: o }; } } return { url: r }; }, Oe = "Content-Type", X = /* @__PURE__ */ function(t) { return t.JSON = "application/json", t.Form = "application/x-www-form-urlencoded", t.FormData = "multipart/form-data", t; }(X || {}), re = function(r, e) { return e ? e.indexOf(r) > -1 : !1; }, Qe = function(r) { return (r == null ? void 0 : r[Oe]) || (r == null ? void 0 : r["content-type"]); }, pe = function(r, e) { !e || (r[Oe] = e); }, ve = function(r, e) { e || (e = {}); for (var n = e.decode === !1, a = e.template || document.cookie, i = n ? a : decodeURIComponent(a), u = i.split(";"), o = 0; o < u.length; o++) { for (var s = u[o]; s.charAt(0) === " "; ) s = s.substring(1); var f = s.split("="), d = f[0], l = f[1]; if (r === d) return l; } return ""; }, z = function(r, e, n, a) { if (Array.isArray(e)) for (var i = me(e); i.length; ) { if (i.length === 1) { z(r, i[0], n); break; } var u = i.shift(); if (!ge(r)) if (typeof r[u] == "undefined" && a) r[u] = {}; else { console.warn('The value of "'.concat(u, '" is not a record object!')); break; } r = r[u]; } else { var o = e; r[o] = n; } }, qe = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n) { var a, i, u, o, s, f, d, l, c, h, v, S, g; return m().w(function(p) { for (; ; ) switch (p.n) { case 0: if (e.request) { p.n = 1; break; } return p.a(2, n()); case 1: return a = e.config, i = a.baseURL, u = a.headers, o = a.params, s = a.data, f = a.credentials, d = f === void 0 ? "include" : f, l = e.config.url, c = Ve(l), h = c.url, v = c.params, v ? (l = e.request.url = h, e.request.params = N(N({}, v), o || {})) : (e.request.url = l, e.request.params = N({}, o || {})), i && /^(https?:)?\/\//.test(l) === !1 && (e.request.url = "".concat(i).concat(l)), e.request.headers = N({}, u || {}), s && (W(s) === "object" ? typeof FormData != "undefined" && s instanceof FormData ? (S = new FormData(), g = Array.from(s.entries()), g.forEach(function(k) { var j = ae(k, 2), B = j[0], $ = j[1]; S.append(B, $); }), e.request.data = S) : Object.keys(s) && (e.request.data = JSON.parse(JSON.stringify(s))) : e.request.data = s), e.request.credentials = d, p.n = 2, n(); case 2: return p.a(2, p.v); } }, r); })); return function(e, n) { return t.apply(this, arguments); }; }(), Ce = /* @__PURE__ */ function(t) { function r() { var e; R(this, r); for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; return e = H(this, r, [].concat(a)), y(e, "handler", qe), y(e, "name", O("INIT_CTX")), e; } return _(r, t), E(r); }(Y); y(Ce, "handler", qe); var Te = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n) { var a, i; return m().w(function(u) { for (; ; ) switch (u.n) { case 0: if (a = e.config.timeout, typeof e.config.timeout != "number" && (a = x ? 350 : 1e4), !(!e.abortController && a)) { u.n = 2; break; } return i = new AbortController(), e.abortController = i, e.timeoutId = setTimeout(function() { i.abort(); }, a), u.n = 1, n(); case 1: clearTimeout(e.timeoutId), u.n = 3; break; case 2: return u.n = 3, n(); case 3: return u.a(2); } }, r); })); return function(e, n) { return t.apply(this, arguments); }; }(), je = /* @__PURE__ */ function(t) { function r() { var e; return R(this, r), e = H(this, r, [Te]), y(e, "name", O("TIMEOUT")), e; } return _(r, t), E(r); }(Y); y(je, "handler", Te); var Re = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n, a) { var i, u, o, s, f, d, l, c; return m().w(function(h) { for (; ; ) switch (h.n) { case 0: if (e.request) { h.n = 1; break; } return h.a(2, n()); case 1: if (i = (a == null ? void 0 : a.payload) || { token: "xsrf_token" }, u = i.token, o = i.params, s = i.data, f = i.headers, o || s || f) try { x ? d = ve(u, { template: ((l = e.request.headers) === null || l === void 0 ? void 0 : l.cookie) || ((c = e.request.headers) === null || c === void 0 ? void 0 : c.Cookie) || "_", decode: !1 }) : d = ve(u, { decode: !1 }); } catch (v) { x || console.warn(v); } return d && (o && z(e.request, ["params", o], d, !0), s && (typeof e.request.data == "undefined" ? z(e.request, ["data", s], d, !0) : We(e.request.data) && (ge(e.request.data) ? z(e.request, ["data", s], d, !0) : ze(e.request.data) && e.request.data.append(s, d))), f && z(e.request, ["headers", f], d, !0)), h.n = 2, n(); case 2: return h.a(2, h.v); } }, r); })); return function(e, n, a) { return t.apply(this, arguments); }; }(), Ze = /* @__PURE__ */ function(t) { function r(e) { var n; return R(this, r), n = H(this, r, [{ handler: Re, payload: e }]), y(n, "name", O("XSRF")), n; } return _(r, t), E(r); }(Y); y(Ze, "handler", Re); var ye = function(r, e, n) { if (!!r.request) if (r.request.data = JSON.stringify(e), r.request.headers) n || pe(r.request.headers, X.JSON); else { var a = {}; pe(a, X.JSON), r.request.headers = a; } }, Ee = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n, a) { var i, u, o, s, f, d, l, c, h, v, S; return m().w(function(g) { for (; ; ) switch (g.n) { case 0: if (e.request) { g.n = 1; break; } return g.a(2, n()); case 1: if (u = e.request, o = u.params, s = u.headers, f = a == null || (i = a.payload) === null || i === void 0 ? void 0 : i.paramsSerializer, e.request.url = Ke(e.request.url, o || {}, f), !e.request.data) { g.n = 4; break; } if (d = Object.prototype.toString.call(e.request.data) !== "[object Object]", d) { g.n = 4; break; } if (c = Qe(s), h = e.request.data, !(a != null && (l = a.payload) !== null && l !== void 0 && l.stringify)) { g.n = 3; break; } return ye(e, h, c), g.n = 2, n(); case 2: return g.a(2, g.v); case 3: re(X.Form, c) && (typeof f == "function" ? e.request.data = f(h) : (v = { encode: !0, arrayFormat: "brackets" }, f && W(f) === "object" && Object.assign(v, f), e.request.data = Se(h, v))), re(X.JSON, c || X.JSON) && ye(e, h, c), re(X.FormData, c) && (S = Object.keys(h), S.length && (e.request.data = S.reduce(function(p, k) { var j = h[k]; return j instanceof Blob || typeof j == "string" ? p.append(k, j) : p.append(k, String(j)), p; }, new FormData()))); case 4: return g.n = 5, n(); case 5: return g.a(2, g.v); } }, r); })); return function(e, n, a) { return t.apply(this, arguments); }; }(), ke = /* @__PURE__ */ function(t) { function r() { var e; return R(this, r), e = H(this, r, [Ee]), y(e, "name", O("BODY")), e; } return _(r, t), E(r); }(Y); y(ke, "handler", Ee); var Ae = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n) { var a, i, u, o, s, f, d, l; return m().w(function(c) { for (; ; ) switch (c.n) { case 0: if (!x) { c.n = 1; break; } throw new Error("When you are in a Node environment, please use server-side fetch middleware."); case 1: if (window.fetch) { c.n = 2; break; } throw new Error("When you are in a non-modern browser, please manually polyfill fetch."); case 2: if (e.request) { c.n = 4; break; } return c.n = 3, n(); case 3: return c.a(2, c.v); case 4: if (!e.response) { c.n = 6; break; } return c.n = 5, n(); case 5: return c.a(2, c.v); case 6: return i = e.request, u = i.url, o = i.method, s = i.headers, f = i.credentials, d = e.request.data, l = { method: o }, s !== void 0 && (l.headers = s), f !== void 0 && (l.credentials = f), d !== void 0 && (l.body = d), ((a = e.abortController) === null || a === void 0 ? void 0 : a.signal) !== void 0 && (l.signal = e.abortController.signal), c.n = 7, window.fetch(u, l); case 7: return e.response = c.v, c.n = 8, n(); case 8: return c.a(2, c.v); } }, r); })); return function(e, n) { return t.apply(this, arguments); }; }(), Q = /* @__PURE__ */ function(t) { function r() { var e; R(this, r); for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; return e = H(this, r, [].concat(a)), y(e, "handler", Ae), y(e, "name", O("FETCH")), e; } return _(r, t), E(r); }(Y); y(Q, "handler", Ae); var De = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n, a) { var i, u, o, s; return m().w(function(f) { for (; ; ) switch (f.p = f.n) { case 0: return f.n = 1, n(); case 1: if (!((i = e.response) !== null && i !== void 0 && i.ok)) { f.n = 5; break; } if (typeof e.response.data != "undefined") { f.n = 5; break; } return f.p = 2, o = (a == null || (u = a.payload) === null || u === void 0 ? void 0 : u.type) || "json", f.n = 3, e.response[o](); case 3: e.response.data = f.v, f.n = 5; break; case 4: f.p = 4, s = f.v, console.warn(s); case 5: return f.a(2); } }, r, null, [[2, 4]]); })); return function(e, n, a) { return t.apply(this, arguments); }; }(), Pe = /* @__PURE__ */ function(t) { function r() { var e; return R(this, r), e = H(this, r, [De]), y(e, "name", O("RES_DATA")), e; } return _(r, t), E(r); }(Y); y(Pe, "handler", De); var xe = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n) { return m().w(function(a) { for (; ; ) switch (a.n) { case 0: return a.n = 1, n(); case 1: return a.a(2); } }, r); })); return function(e, n) { return t.apply(this, arguments); }; }(), ue = /* @__PURE__ */ function(t) { function r(e, n) { var a; return R(this, r), a = H(this, r), y(a, "name", O("SPRAY")), a.handler = /* @__PURE__ */ function() { var i = A(/* @__PURE__ */ m().m(function u(o, s) { return m().w(function(f) { for (; ; ) switch (f.n) { case 0: return f.n = 1, e(o, s, { payload: n }); case 1: return f.a(2, f.v); } }, u); })); return function(u, o) { return i.apply(this, arguments); }; }(), a; } return _(r, t), E(r); }(Y); y(ue, "handler", xe); var Ie = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n, a) { var i, u, o, s, f, d, l, c, h, v, S, g; return m().w(function(p) { for (; ; ) switch (p.p = p.n) { case 0: return u = (i = e.request) === null || i === void 0 ? void 0 : i.function, o = (a == null ? void 0 : a.payload) || { times: 0 }, s = o.times, f = o.condition, d = o.onRetry, l = o.enhanceError, c = function() { return !s || e.retry === s; }, h = /* @__PURE__ */ function() { var k = A(/* @__PURE__ */ m().m(function j(B) { var $, C, b, q, U, L; return m().w(function(w) { for (; ; ) switch (w.p = w.n) { case 0: if (u) { w.n = 2; break; } if (C = J(e, "Missing request function"), !l) { w.n = 1; break; } throw l(C, e.response); case 1: throw C; case 2: if (!(c() && !(a != null && ($ = a.payload) !== null && $ !== void 0 && $.runtimeShortCircuit))) { w.n = 4; break; } if (b = J(e), !l) { w.n = 3; break; } throw l(b, e.response); case 3: throw b; case 4: if (e.retry = e.retry ? e.retry + 1 : 1, w.p = 5, !d) { w.n = 7; break; } return w.n = 6, d(e.config, B); case 6: q = w.v, q && (e.config = q); case 7: return e.response && delete e.response, w.n = 8, u(e); case 8: w.n = 11; break; case 9: if (w.p = 9, L = w.v, U = J(e, L), !l) { w.n = 10; break; } throw l(U, e.response); case 10: throw U; case 11: return w.a(2); } }, j, null, [[5, 9]]); })); return function(B) { return k.apply(this, arguments); }; }(), p.p = 1, p.n = 2, n(); case 2: p.n = 7; break; case 3: if (p.p = 3, g = p.v, !c()) { p.n = 5; break; } if (v = J(e, g), !l) { p.n = 4; break; } throw l(v, e.response); case 4: throw v; case 5: return p.n = 6, h(); case 6: return p.a(2); case 7: if (!f) { p.n = 10; break; } return p.n = 8, f(e.response); case 8: if (S = p.v, !S) { p.n = 10; break; } return p.n = 9, h(S); case 9: return p.a(2); case 10: if (!(!e.response || !e.response.ok)) { p.n = 11; break; } return p.n = 11, h(); case 11: return p.a(2); } }, r, null, [[1, 3]]); })); return function(e, n, a) { return t.apply(this, arguments); }; }(), Fe = /* @__PURE__ */ function(t) { function r() { var e; R(this, r); for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; return e = H(this, r, [].concat(a)), y(e, "name", O("RETRY")), y(e, "handler", Ie), e; } return _(r, t), E(r); }(Y); y(Fe, "handler", Ie); var er = function(r, e) { return Object.keys(e).sort().reduce(function(n, a) { return n += "_".concat(a, ":").concat(e[a]), n; }, "api:".concat(r)); }, He = /* @__PURE__ */ function() { var t = A(/* @__PURE__ */ m().m(function r(e, n, a) { var i, u, o, s, f, d; return m().w(function(l) { for (; ; ) switch (l.n) { case 0: if (!(!e.request || e.request.method !== "GET")) { l.n = 2; break; } return l.n = 1, n(); case 1: return l.a(2, l.v); case 2: if (a != null && a.payload) { l.n = 4; break; } return l.n = 3, n(); case 3: return l.a(2, l.v); case 4: if (i = a.payload, u = i.store, o = i.extra, s = a.payload.key, !(!s || !u)) { l.n = 6; break; } return l.n = 5, n(); case 5: return l.a(2, l.v); case 6: if (typeof s != "string" && (s = er(e.request.url, s)), f = u.get(s, o), !f) { l.n = 8; break; } return e.response = new Response(JSON.stringify(f), { status: 200, statusText: "Cache:".concat(s) }), l.n = 7, n(); case 7: l.n = 10; break; case 8: return l.n = 9, n(); case 9: (d = e.response) !== null && d !== void 0 && d.data && u.set(s, e.response.data, o); case 10: return l.a(2); } }, r); })); return function(e, n, a) { return t.apply(this, arguments); }; }(), rr = /* @__PURE__ */ function(t) { function r(e) { var n; return R(this, r), n = H(this, r, [{ handler: He, payload: { store: e } }]), y(n, "name", O("CACHE")), n; } return _(r, t), E(r); }(Y); y(rr, "handler", He); var fe = /* @__PURE__ */ E(function t(r) { R(this, t), this.httpSvc = r; }), tr = /* @__PURE__ */ function(t) { function r() { return R(this, r), H(this, r, arguments); } return _(r, t), E(r, [{ key: "provide", value: function() { var n = this, a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, i = { inject: function(o, s) { return n.inject(a, o, s), i; }, disable: function(o) { return n.disable(a, o), i; }, get: function() { return a; } }; return i; } }, { key: "inject", value: function(n, a, i) { n[a] = i; } }, { key: "disable", value: function(n, a) { n[a] = N(N({}, n[a] || {}), {}, { disabled: !0 }); } }, { key: "get", value: function(n, a) { return n[a] || {}; } }]); }(fe), G = { INIT_CTX: O("INIT_CTX"), TIMEOUT: O("TIMEOUT"), BODY: O("BODY"), XSRF: O("XSRF"), FETCH: O("FETCH"), RETRY: O("RETRY"), SPRAY: O("SPRAY"), RES_DATA: O("RES_DATA"), RES_EXTRACT: O("RES_EXTRACT"), LOG: O("LOG"), CACHE: O("CACHE") }, se = "$ORDER_", nr = /* @__PURE__ */ function() { function t(r) { R(this, t), y(this, "middlewares", []), y(this, "middlewareConfigCtxProvider", void 0), this.control = r, this.middlewareConfigCtxProvider = this.control.httpSvc.configCtrl.provide(); } return E(t, [{ key: "with", value: function(e, n) { return e ? (typeof e == "string" ? (this.middlewares.push({ name: "".concat(se).concat(e), handler: ue.handler }), n && this.inject(e, n)) : typeof e == "function" ? this.middlewares.push(new ue(e, n)) : ie(e) && (this.middlewares.push(e), n && this.inject(e.name, n)), this) : this; } }, { key: "inject", value: function(e, n) { return this.middlewareConfigCtxProvider.inject(e, { payload: n }), this; } }, { key: "disable", value: function(e) { return this.middlewareConfigCtxProvider.disable(e), this; } }, { key: "request", value: function(e) { var n = this.control.compose(this.middlewares); return this.control.httpSvc.requestCtrl.request(e, this.middlewareConfigCtxProvider.get(), n); } }]); }(), ar = /* @__PURE__ */ function(t) { function r() { var e; R(this, r); for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; return e = H(this, r, [].concat(a)), y(e, "middlewares", []), e; } return _(r, t), E(r, [{ key: "alreadyExistsIdx", value: function(n) { return this.middlewares.findIndex(function(a) { return a.name === n; }); } }, { key: "register", value: function(n) { var a = this; if (Array.isArray(n)) { var i = !1; n.forEach(function(u) { if (ie(u)) { i = !0; var o = a.alreadyExistsIdx(u.name); o > -1 ? a.middlewares[o] = u : a.middlewares.push(u); } }), i && this.httpSvc.requestCtrl.reset(); } } }, { key: "setup", value: function() { return new nr(this); } }, { key: "disable", value: function(n) { return this.setup().disable(n); } }, { key: "with", value: function(n, a) { return this.setup().with(n, a); } }, { key: "compose", value: function(n) { var a = this, i = me(this.middlewares), u = [], o = y(y(y(y({}, G.RETRY, null), G.BODY, null), G.RES_DATA, null), G.TIMEOUT, null), s = Object.keys(o), f = {}; (n || []).forEach(function(c) { if (ie(c)) { var h = c.name; if (s.includes(h)) o[h] || (o[h] = c); else if (h.startsWith(se)) { if (h = h.substring(se.length), !f[h] && !(h in o)) { var v = i.findIndex(function(g) { return g.name === h; }); if (v > -1) { var S = i[v]; i.splice(v, 1), f[h] = S, u.push(S); } } } else G.SPRAY === h ? u.push(c) : f[h] || (f[h] = c, u.push(c)); } }); var d = []; i.forEach(function(c) { s.includes(c.name) ? o[c.name] || (o[c.name] = c) : f[c.name] || d.push(c); }), d.push.apply(d, u); var l = [o[G.RETRY] || new Fe(), new Ce()].concat(d, [o[G.RES_DATA] || new Pe(), o[G.BODY] || new ke(), o[G.TIMEOUT] || new je(), this.httpSvc.fetch]); return /* @__PURE__ */ function() { var c = A(/* @__PURE__ */ m().m(function h(v) { var S, g, p, k, j, B, $, C; return m().w(function(b) { for (; ; ) switch (b.n) { case 0: return C = function() { return C = A(/* @__PURE__ */ m().m(function U(L) { var w; return m().w(function(T) { for (; ; ) switch (T.n) { case 0: if (L !== l.length) { T.n = 1; break; } return T.a(2); case 1: if (!(L <= g)) { T.n = 2; break; } throw J(v, "The next() called multiple times"); case 2: if (g = L, w = l[g], w) { T.n = 3; break; } throw J(v, "Middleware is not exist"); case 3: return T.n = 4, w.handler(v, $.bind(null, L + 1), p.get(v.middleware, w.name)); case 4: return T.a(2); } }, U); })), C.apply(this, arguments); }, $ = function(U) { return C.apply(this, arguments); }, g = -1, p = a.httpSvc.configCtrl, k = p.get(v.middleware, "DEBUG").payload, b.n = 1, $(0); case 1: if (!k) { b.n = 2; break; } return b.a(2, v); case 2: if (j = p.get(v.middleware, G.RES_EXTRACT).disabled, !(!j && (S = v.response) !== null && S !== void 0 && S.ok)) { b.n = 3; break; } return b.a(2, ((B = v.response) === null || B === void 0 ? void 0 : B.data) || null); case 3: return b.a(2, v.response); } }, h); })); return function(h) { return c.apply(this, arguments); }; }(); } }]); }(fe), ir = /* @__PURE__ */ function(t) { function r() { var e; R(this, r); for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; return e = H(this, r, [].concat(a)), y(e, "fn", null), e; } return _(r, t), E(r, [{ key: "request", value: function() { var e = A(/* @__PURE__ */ m().m(function a(i) { var u, o, s = arguments; return m().w(function(f) { for (; ; ) switch (f.n) { case 0: return u = s.length > 1 && s[1] !== void 0 ? s[1] : {}, o = s.length > 2 ? s[2] : void 0, o || (this.fn || this.generateRequestFunction(), o = this.fn), f.n = 1, o(this.createContext(i, u, o)); case 1: return f.a(2, f.v); } }, a, this); })); function n(a) { return e.apply(this, arguments); } return n; }() }, { key: "generateRequestFunction", value: function() { this.fn = this.httpSvc.assembleCtrl.compose(); } }, { key: "reset", value: function() { this.fn = null; } }, { key: "useAsyncRequest", get: function() { var n = this; return function(a, i) { var u = n.httpSvc.create(i); a(u.request.bind(u)); }; } }, { key: "createContext", value: function(n) { var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, i = arguments.length > 2 ? arguments[2] : void 0, u = n.url, o = n.method, s = { config: N({ baseURL: this.httpSvc.baseURL }, n), useAsyncRequest: this.useAsyncRequest, middleware: a, request: { url: u, method: (o || "get").toUpperCase(), function: i || function() { return Promise.resolve(); } } }; return s; } }]); }(fe), or = /* @__PURE__ */ function() { function t(r) { if (R(this, t), y(this, "fetch", void 0), y(this, "assembleCtrl", new ar(this)), y(this, "configCtrl", new tr(this)), y(this, "requestCtrl", new ir(this)), y(this, "baseURL", "//api.domain.com"), r) if (Array.isArray(r)) this.fetch = new Q(), this.register(r); else { var e = r.middlewares, n = r.fetch, a = r.baseURL; this.fetch = n || new Q(), this.register(e || []), a && (this.baseURL = a); } else this.fetch = new Q(), this.register([]); } return E(t, [{ key: "register", value: function(e) { this.assembleCtrl.register(e); } }, { key: "request", value: function(e) { return this.requestCtrl.request(e); } }, { key: "disable", value: function(e) { return this.assembleCtrl.disable(e); } }, { key: "with", value: function(e, n) { return this.assembleCtrl.with(e, n); } }, { key: "setFetch", value: function(e) { this.fetch = e, this.requestCtrl.reset(); } }, { key: "create", value: function(e) { var n = N({}, e || {}); return this.fetch && (n.fetch = this.fetch), new t(n); } }]); }(); export { G as BUILT_IN_MIDDLEWARE, or as HttpService, rr as HttpSvcCache, Fe as HttpSvcRetry, ue as HttpSvcSprayMiddleware, Ze as HttpSvcXsrf }; //# sourceMappingURL=index.legacy.esm.js.map