v0.12.1
This commit is contained in:
+344
-239
@@ -1,29 +1,29 @@
|
|||||||
var pe = Object.defineProperty;
|
var de = Object.defineProperty;
|
||||||
var ce = (r) => {
|
var oe = (r) => {
|
||||||
throw TypeError(r);
|
throw TypeError(r);
|
||||||
};
|
};
|
||||||
var ve = (r, e, t) => e in r ? pe(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
var ge = (r, e, t) => e in r ? de(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
||||||
var g = (r, e, t) => ve(r, typeof e != "symbol" ? e + "" : e, t), he = (r, e, t) => e.has(r) || ce("Cannot " + t);
|
var l = (r, e, t) => ge(r, typeof e != "symbol" ? e + "" : e, t), ae = (r, e, t) => e.has(r) || oe("Cannot " + t);
|
||||||
var s = (r, e, t) => (he(r, e, "read from private field"), t ? t.call(r) : e.get(r)), p = (r, e, t) => e.has(r) ? ce("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(r) : e.set(r, t), _ = (r, e, t, n) => (he(r, e, "write to private field"), n ? n.call(r, t) : e.set(r, t), t);
|
var s = (r, e, t) => (ae(r, e, "read from private field"), t ? t.call(r) : e.get(r)), w = (r, e, t) => e.has(r) ? oe("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(r) : e.set(r, t), C = (r, e, t, n) => (ae(r, e, "write to private field"), n ? n.call(r, t) : e.set(r, t), t);
|
||||||
function we(r) {
|
function pe(r) {
|
||||||
return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
|
return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
|
||||||
}
|
}
|
||||||
var fe = {};
|
var ue = {};
|
||||||
(function(r) {
|
(function(r) {
|
||||||
(function(e) {
|
(function(e) {
|
||||||
e([], function() {
|
e([], function() {
|
||||||
var t = -1, n = -2, i = -3, c = -4, u = -5, U = function(h, f) {
|
var t = -1, n = -2, i = -3, c = -4, f = -5, U = function(h, d) {
|
||||||
f = f || {};
|
d = d || {};
|
||||||
var l = f.verbose || !1;
|
var u = d.verbose || !1;
|
||||||
l && console.log("Normalize the JSON Object"), h = typeof h == "string" ? this.JSON.parse(h) : h, l && console.log("Creating a empty dictionary");
|
u && console.log("Normalize the JSON Object"), h = typeof h == "string" ? this.JSON.parse(h) : h, u && console.log("Creating a empty dictionary");
|
||||||
var d = {
|
var g = {
|
||||||
strings: [],
|
strings: [],
|
||||||
integers: [],
|
integers: [],
|
||||||
floats: []
|
floats: []
|
||||||
};
|
};
|
||||||
l && console.log("Creating the AST");
|
u && console.log("Creating the AST");
|
||||||
var v = function O(o) {
|
var p = function O(o) {
|
||||||
l && console.log("Calling recursiveAstBuilder with " + this.JSON.stringify(o));
|
u && console.log("Calling recursiveAstBuilder with " + this.JSON.stringify(o));
|
||||||
var y = typeof o;
|
var y = typeof o;
|
||||||
if (o === null)
|
if (o === null)
|
||||||
return {
|
return {
|
||||||
@@ -33,7 +33,7 @@ var fe = {};
|
|||||||
if (typeof o > "u")
|
if (typeof o > "u")
|
||||||
return {
|
return {
|
||||||
type: "undefined",
|
type: "undefined",
|
||||||
index: u
|
index: f
|
||||||
};
|
};
|
||||||
if (o instanceof Array) {
|
if (o instanceof Array) {
|
||||||
var S = ["@"];
|
var S = ["@"];
|
||||||
@@ -53,22 +53,22 @@ var fe = {};
|
|||||||
index: c
|
index: c
|
||||||
};
|
};
|
||||||
if (y === "string") {
|
if (y === "string") {
|
||||||
var P = H.call(d.strings, o);
|
var P = H.call(g.strings, o);
|
||||||
return P == -1 && (d.strings.push(T(o)), P = d.strings.length - 1), {
|
return P == -1 && (g.strings.push(T(o)), P = g.strings.length - 1), {
|
||||||
type: "strings",
|
type: "strings",
|
||||||
index: P
|
index: P
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (y === "number" && o % 1 === 0) {
|
if (y === "number" && o % 1 === 0) {
|
||||||
var P = H.call(d.integers, o);
|
var P = H.call(g.integers, o);
|
||||||
return P == -1 && (d.integers.push(m(o)), P = d.integers.length - 1), {
|
return P == -1 && (g.integers.push(m(o)), P = g.integers.length - 1), {
|
||||||
type: "integers",
|
type: "integers",
|
||||||
index: P
|
index: P
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (y === "number") {
|
if (y === "number") {
|
||||||
var P = H.call(d.floats, o);
|
var P = H.call(g.floats, o);
|
||||||
return P == -1 && (d.floats.push(o), P = d.floats.length - 1), {
|
return P == -1 && (g.floats.push(o), P = g.floats.length - 1), {
|
||||||
type: "floats",
|
type: "floats",
|
||||||
index: P
|
index: P
|
||||||
};
|
};
|
||||||
@@ -79,11 +79,11 @@ var fe = {};
|
|||||||
index: o ? t : n
|
index: o ? t : n
|
||||||
};
|
};
|
||||||
throw new Error("Unexpected argument of type " + typeof o);
|
throw new Error("Unexpected argument of type " + typeof o);
|
||||||
}(h), E = d.strings.length, J = d.integers.length;
|
}(h), E = g.strings.length, J = g.integers.length;
|
||||||
d.floats.length, l && console.log("Parsing the dictionary");
|
g.floats.length, u && console.log("Parsing the dictionary");
|
||||||
var M = d.strings.join("|");
|
var M = g.strings.join("|");
|
||||||
return M += "^" + d.integers.join("|"), M += "^" + d.floats.join("|"), l && console.log("Parsing the structure"), M += "^" + function O(o) {
|
return M += "^" + g.integers.join("|"), M += "^" + g.floats.join("|"), u && console.log("Parsing the structure"), M += "^" + function O(o) {
|
||||||
if (l && console.log("Calling a recursiveParser with " + this.JSON.stringify(o)), o instanceof Array) {
|
if (u && console.log("Calling a recursiveParser with " + this.JSON.stringify(o)), o instanceof Array) {
|
||||||
var y = o.shift();
|
var y = o.shift();
|
||||||
for (var S in o)
|
for (var S in o)
|
||||||
o.hasOwnProperty(S) && (y += O(o[S]) + "|");
|
o.hasOwnProperty(S) && (y += O(o[S]) + "|");
|
||||||
@@ -101,135 +101,135 @@ var fe = {};
|
|||||||
if (b === "null")
|
if (b === "null")
|
||||||
return i;
|
return i;
|
||||||
if (b === "undefined")
|
if (b === "undefined")
|
||||||
return u;
|
return f;
|
||||||
if (b === "empty")
|
if (b === "empty")
|
||||||
return c;
|
return c;
|
||||||
throw new TypeError("The item is alien!");
|
throw new TypeError("The item is alien!");
|
||||||
}(v), l && console.log("Ending parser"), f.debug ? {
|
}(p), u && console.log("Ending parser"), d.debug ? {
|
||||||
dictionary: d,
|
dictionary: g,
|
||||||
ast: v,
|
ast: p,
|
||||||
packed: M
|
packed: M
|
||||||
} : M;
|
} : M;
|
||||||
}, a = function(h, f) {
|
}, a = function(h, d) {
|
||||||
f = f || {};
|
d = d || {};
|
||||||
var l = h.split("^");
|
var u = h.split("^");
|
||||||
f.verbose && console.log("Building dictionary");
|
d.verbose && console.log("Building dictionary");
|
||||||
var d = [], v = l[0];
|
var g = [], p = u[0];
|
||||||
if (v !== "") {
|
if (p !== "") {
|
||||||
v = v.split("|"), f.verbose && console.log("Parse the strings dictionary");
|
p = p.split("|"), d.verbose && console.log("Parse the strings dictionary");
|
||||||
for (var E = 0, J = v.length; E < J; E++)
|
for (var E = 0, J = p.length; E < J; E++)
|
||||||
d.push(C(v[E]));
|
g.push(_(p[E]));
|
||||||
}
|
}
|
||||||
if (v = l[1], v !== "") {
|
if (p = u[1], p !== "") {
|
||||||
v = v.split("|"), f.verbose && console.log("Parse the integers dictionary");
|
p = p.split("|"), d.verbose && console.log("Parse the integers dictionary");
|
||||||
for (var E = 0, J = v.length; E < J; E++)
|
for (var E = 0, J = p.length; E < J; E++)
|
||||||
d.push(I(v[E]));
|
g.push(I(p[E]));
|
||||||
}
|
}
|
||||||
if (v = l[2], v !== "") {
|
if (p = u[2], p !== "") {
|
||||||
v = v.split("|"), f.verbose && console.log("Parse the floats dictionary");
|
p = p.split("|"), d.verbose && console.log("Parse the floats dictionary");
|
||||||
for (var E = 0, J = v.length; E < J; E++)
|
for (var E = 0, J = p.length; E < J; E++)
|
||||||
d.push(parseFloat(v[E]));
|
g.push(parseFloat(p[E]));
|
||||||
}
|
}
|
||||||
v = null, f.verbose && console.log("Tokenizing the structure");
|
p = null, d.verbose && console.log("Tokenizing the structure");
|
||||||
for (var M = "", O = [], o = l[3].length, E = 0; E < o; E++) {
|
for (var M = "", O = [], o = u[3].length, E = 0; E < o; E++) {
|
||||||
var y = l[3].charAt(E);
|
var y = u[3].charAt(E);
|
||||||
y === "|" || y === "$" || y === "@" || y === "]" ? (M && (O.push(I(M)), M = ""), y !== "|" && O.push(y)) : M += y;
|
y === "|" || y === "$" || y === "@" || y === "]" ? (M && (O.push(I(M)), M = ""), y !== "|" && O.push(y)) : M += y;
|
||||||
}
|
}
|
||||||
var S = O.length, b = 0;
|
var S = O.length, b = 0;
|
||||||
return f.verbose && console.log("Starting recursive parser"), function N() {
|
return d.verbose && console.log("Starting recursive parser"), function N() {
|
||||||
var P = O[b++];
|
var P = O[b++];
|
||||||
if (f.verbose && console.log("Reading collection type " + (P === "$" ? "object" : "Array")), P === "@") {
|
if (d.verbose && console.log("Reading collection type " + (P === "$" ? "object" : "Array")), P === "@") {
|
||||||
for (var w = []; b < S; b++) {
|
for (var v = []; b < S; b++) {
|
||||||
var A = O[b];
|
var A = O[b];
|
||||||
if (f.verbose && console.log("Read " + A + " symbol"), A === "]")
|
if (d.verbose && console.log("Read " + A + " symbol"), A === "]")
|
||||||
return w;
|
return v;
|
||||||
if (A === "@" || A === "$")
|
if (A === "@" || A === "$")
|
||||||
w.push(N());
|
v.push(N());
|
||||||
else
|
else
|
||||||
switch (A) {
|
switch (A) {
|
||||||
case t:
|
case t:
|
||||||
w.push(!0);
|
v.push(!0);
|
||||||
break;
|
break;
|
||||||
case n:
|
case n:
|
||||||
w.push(!1);
|
v.push(!1);
|
||||||
break;
|
break;
|
||||||
case i:
|
case i:
|
||||||
w.push(null);
|
v.push(null);
|
||||||
break;
|
break;
|
||||||
case u:
|
case f:
|
||||||
w.push(void 0);
|
v.push(void 0);
|
||||||
break;
|
break;
|
||||||
case c:
|
case c:
|
||||||
w.push("");
|
v.push("");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
w.push(d[A]);
|
v.push(g[A]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return f.verbose && console.log("Parsed " + this.JSON.stringify(w)), w;
|
return d.verbose && console.log("Parsed " + this.JSON.stringify(v)), v;
|
||||||
}
|
}
|
||||||
if (P === "$") {
|
if (P === "$") {
|
||||||
for (var w = {}; b < S; b++) {
|
for (var v = {}; b < S; b++) {
|
||||||
var x = O[b];
|
var x = O[b];
|
||||||
if (x === "]")
|
if (x === "]")
|
||||||
return w;
|
return v;
|
||||||
x === c ? x = "" : x = d[x];
|
x === c ? x = "" : x = g[x];
|
||||||
var A = O[++b];
|
var A = O[++b];
|
||||||
if (A === "@" || A === "$")
|
if (A === "@" || A === "$")
|
||||||
w[x] = N();
|
v[x] = N();
|
||||||
else
|
else
|
||||||
switch (A) {
|
switch (A) {
|
||||||
case t:
|
case t:
|
||||||
w[x] = !0;
|
v[x] = !0;
|
||||||
break;
|
break;
|
||||||
case n:
|
case n:
|
||||||
w[x] = !1;
|
v[x] = !1;
|
||||||
break;
|
break;
|
||||||
case i:
|
case i:
|
||||||
w[x] = null;
|
v[x] = null;
|
||||||
break;
|
break;
|
||||||
case u:
|
case f:
|
||||||
w[x] = void 0;
|
v[x] = void 0;
|
||||||
break;
|
break;
|
||||||
case c:
|
case c:
|
||||||
w[x] = "";
|
v[x] = "";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
w[x] = d[A];
|
v[x] = g[A];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return f.verbose && console.log("Parsed " + this.JSON.stringify(w)), w;
|
return d.verbose && console.log("Parsed " + this.JSON.stringify(v)), v;
|
||||||
}
|
}
|
||||||
throw new TypeError("Bad token " + P + " isn't a type");
|
throw new TypeError("Bad token " + P + " isn't a type");
|
||||||
}();
|
}();
|
||||||
}, T = function(h) {
|
}, T = function(h) {
|
||||||
return typeof h != "string" ? h : h.replace(/[\+ \|\^\%]/g, function(f) {
|
return typeof h != "string" ? h : h.replace(/[\+ \|\^\%]/g, function(d) {
|
||||||
return {
|
return {
|
||||||
" ": "+",
|
" ": "+",
|
||||||
"+": "%2B",
|
"+": "%2B",
|
||||||
"|": "%7C",
|
"|": "%7C",
|
||||||
"^": "%5E",
|
"^": "%5E",
|
||||||
"%": "%25"
|
"%": "%25"
|
||||||
}[f];
|
}[d];
|
||||||
});
|
});
|
||||||
}, C = function(h) {
|
}, _ = function(h) {
|
||||||
return typeof h != "string" ? h : h.replace(/\+|%2B|%7C|%5E|%25/g, function(f) {
|
return typeof h != "string" ? h : h.replace(/\+|%2B|%7C|%5E|%25/g, function(d) {
|
||||||
return {
|
return {
|
||||||
"+": " ",
|
"+": " ",
|
||||||
"%2B": "+",
|
"%2B": "+",
|
||||||
"%7C": "|",
|
"%7C": "|",
|
||||||
"%5E": "^",
|
"%5E": "^",
|
||||||
"%25": "%"
|
"%25": "%"
|
||||||
}[f];
|
}[d];
|
||||||
});
|
});
|
||||||
}, m = function(h) {
|
}, m = function(h) {
|
||||||
return Number.prototype.toString.call(h, 36).toUpperCase();
|
return Number.prototype.toString.call(h, 36).toUpperCase();
|
||||||
}, I = function(h) {
|
}, I = function(h) {
|
||||||
return parseInt(h, 36);
|
return parseInt(h, 36);
|
||||||
}, H = Array.prototype.indexOf || function(h, f) {
|
}, H = Array.prototype.indexOf || function(h, d) {
|
||||||
for (var l = f || 0, d = this.length; l < d; l++)
|
for (var u = d || 0, g = this.length; u < g; u++)
|
||||||
if (this[l] === h)
|
if (this[u] === h)
|
||||||
return l;
|
return u;
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
@@ -243,10 +243,10 @@ var fe = {};
|
|||||||
for (var i in n)
|
for (var i in n)
|
||||||
r[i] = n[i];
|
r[i] = n[i];
|
||||||
});
|
});
|
||||||
})(fe);
|
})(ue);
|
||||||
const le = /* @__PURE__ */ we(fe);
|
const ce = /* @__PURE__ */ pe(ue);
|
||||||
var $, q, j, B, W, X, z, Z, ee, te, re;
|
var $, q, j, B, W, k, X, Z, ee;
|
||||||
const ae = class ae {
|
const ie = class ie {
|
||||||
/**
|
/**
|
||||||
* @param {number} code
|
* @param {number} code
|
||||||
* @param {string} message
|
* @param {string} message
|
||||||
@@ -256,35 +256,67 @@ const ae = class ae {
|
|||||||
*/
|
*/
|
||||||
constructor(e, t, n, i, c) {
|
constructor(e, t, n, i, c) {
|
||||||
/** @type {number} */
|
/** @type {number} */
|
||||||
g(this, "code", 0);
|
l(this, "code", 0);
|
||||||
/** @type {string} */
|
/** @type {string} */
|
||||||
g(this, "message", "操作成功");
|
l(this, "message", "操作成功");
|
||||||
/** @type {unknown} */
|
/** @type {unknown} */
|
||||||
g(this, "data", null);
|
l(this, "data", null);
|
||||||
/** @type {string} */
|
/** @type {string} */
|
||||||
g(this, "url", "");
|
l(this, "url", "");
|
||||||
/** @type {string} */
|
/** @type {string} */
|
||||||
g(this, "res", "");
|
l(this, "res", "");
|
||||||
/** @type {HttpResponse} */
|
/**
|
||||||
p(this, $);
|
* Proxy 最终返回的对象
|
||||||
// 判断返回 Response 对象, 还是 Response 中的 data
|
*
|
||||||
/** @type {boolean} */
|
* @type {HttpResponseProxy}
|
||||||
p(this, q, !0);
|
*/
|
||||||
// 判断是否已经给出错误提示
|
w(this, $);
|
||||||
/** @type {boolean} */
|
/**
|
||||||
p(this, j, !0);
|
* 判断回调使用 HttpResponse 还是 data
|
||||||
p(this, B, {
|
*
|
||||||
/** @param {any} __ @param {string} key */
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
w(this, q, !0);
|
||||||
|
/**
|
||||||
|
* 是否已经显示消息
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
w(this, j, !0);
|
||||||
|
/**
|
||||||
|
* Proxy Handler
|
||||||
|
*/
|
||||||
|
w(this, B, {
|
||||||
|
/**
|
||||||
|
* @param {any} _
|
||||||
|
* @param {string | symbol} key
|
||||||
|
* @returns {unknown}
|
||||||
|
*/
|
||||||
get: (e, t) => s(this, W).call(this, t),
|
get: (e, t) => s(this, W).call(this, t),
|
||||||
/** @param {any} __ @param {string} key */
|
/**
|
||||||
set: (e, t) => {
|
* HttpResponse 是只读对象
|
||||||
throw new TypeError(`HttpResponse 是只读的,不能设置属性 "${t}"`);
|
*
|
||||||
|
* @param {any} _
|
||||||
|
* @param {string | symbol} key
|
||||||
|
* @param {unknown} value
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
set: (e, t, n) => {
|
||||||
|
throw new TypeError(
|
||||||
|
`HttpResponse 是只读的,不能设置属性 "${String(t)}"`
|
||||||
|
);
|
||||||
},
|
},
|
||||||
/** @returns {string[]} */
|
/**
|
||||||
|
* @returns {(string | symbol)[]}
|
||||||
|
*/
|
||||||
ownKeys: () => Object.keys(s(this, B).getPrototypeOf() || {}),
|
ownKeys: () => Object.keys(s(this, B).getPrototypeOf() || {}),
|
||||||
/** @returns {HttpResponse | unknown} */
|
/**
|
||||||
|
* @returns {HttpResponse | unknown}
|
||||||
|
*/
|
||||||
getPrototypeOf: () => s(this, q) ? this : this.data,
|
getPrototypeOf: () => s(this, q) ? this : this.data,
|
||||||
/** @returns {PropertyDescriptor} */
|
/**
|
||||||
|
* @returns {PropertyDescriptor}
|
||||||
|
*/
|
||||||
getOwnPropertyDescriptor: () => ({
|
getOwnPropertyDescriptor: () => ({
|
||||||
configurable: !0,
|
configurable: !0,
|
||||||
enumerable: !0,
|
enumerable: !0,
|
||||||
@@ -293,66 +325,139 @@ const ae = class ae {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
* @param {string} key
|
* Proxy 属性访问
|
||||||
|
*
|
||||||
|
* @param {string | symbol} key
|
||||||
* @returns {unknown}
|
* @returns {unknown}
|
||||||
*/
|
*/
|
||||||
p(this, W, (e) => e === "$echoMsg" ? s(this, z) : e === "msg" ? s(this, X) : e === "then" ? (_(this, j, !0), s(this, Z)) : e === "resp" ? (_(this, j, !0), s(this, ee)) : e === "catch" ? s(this, te) : e === "finally" ? s(this, re) : e === "IS_ECHO_MSG" ? s(this, j) : Reflect.get(this, e));
|
w(this, W, (e) => e === "$echoMsg" ? s(this, k) : e === "then" ? (C(this, j, !0), s(this, X)) : e === "catch" ? s(this, Z) : e === "finally" ? s(this, ee) : e === "IS_ECHO_MSG" ? s(this, j) : Reflect.get(this, e));
|
||||||
/**
|
/**
|
||||||
* @param {(value: unknown) => unknown} [fn] 回调参数默认是 data(isResp=false), 传 isResp=true 则是完整的 HttpResponse(含 code/message)
|
* message 消息弹窗后回调
|
||||||
* @param {boolean} [isResp]
|
*
|
||||||
* @returns {Promise<unknown>} fn 内部抛出的异常会变成 reject, 而不是像之前那样在参数求值阶段直接同步抛出(违反"永远返回 Promise"的约定, .then() 链式调用捕获不到)
|
* @overload
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(data: unknown) => unknown} fn
|
||||||
|
* @param {false} isResp
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(response: HttpResponse) => unknown} fn
|
||||||
|
* @param {true} isResp
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @param {(value: unknown | HttpResponse) => unknown} [fn]
|
||||||
|
* @param {boolean} [isResp=false]
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* fn 内部抛出的异常会变成 reject,而不是同步抛出。
|
||||||
*/
|
*/
|
||||||
p(this, X, (e = (n) => n, t = !1) => {
|
l(this, "msg", (e = (n) => n, t = !1) => {
|
||||||
s(this, z).call(this), _(this, q, t);
|
s(this, k).call(this), C(this, q, t);
|
||||||
try {
|
try {
|
||||||
return Promise.resolve(e == null ? void 0 : e(s(this, B).getPrototypeOf()));
|
return Promise.resolve(
|
||||||
|
e == null ? void 0 : e(s(this, B).getPrototypeOf())
|
||||||
|
);
|
||||||
} catch (n) {
|
} catch (n) {
|
||||||
return Promise.reject(n);
|
return Promise.reject(n);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
g(this, "toJSON", () => ({ code: this.code, message: this.message, data: this.data, url: this.url, res: this.res }));
|
/**
|
||||||
g(this, "toString", () => this.message);
|
* 使用完整 HttpResponse 对象处理响应
|
||||||
p(this, z, () => {
|
*
|
||||||
s(this, j) && (_(this, j, !1), oe.onMsg(this.code, this.message));
|
* 与 msg() 的区别:
|
||||||
|
*
|
||||||
|
* msg(false) -> 回调拿 data
|
||||||
|
*
|
||||||
|
* msg(true) -> 回调拿 HttpResponse
|
||||||
|
*
|
||||||
|
* resp() -> 永远拿 HttpResponse
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(response: HttpResponse) => unknown} fn
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {undefined} fn
|
||||||
|
* @param {(reason: HttpResponse) => unknown} onrejected
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @param {(response: HttpResponse) => unknown} [fn]
|
||||||
|
* @param {(reason: HttpResponse) => unknown} [onrejected]
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*/
|
||||||
|
l(this, "resp", (e, t) => (C(this, j, !0), [0, 1].includes(this.code) ? Promise.resolve(e == null ? void 0 : e(this)) : t ? Promise.resolve(t(s(this, $))) : Promise.reject(s(this, $))));
|
||||||
|
/**
|
||||||
|
* 转换成 JSON
|
||||||
|
*
|
||||||
|
* @returns {HttpResponseData}
|
||||||
|
*/
|
||||||
|
l(this, "toJSON", () => ({
|
||||||
|
code: this.code,
|
||||||
|
message: this.message,
|
||||||
|
data: this.data,
|
||||||
|
url: this.url,
|
||||||
|
res: this.res
|
||||||
|
}));
|
||||||
|
/**
|
||||||
|
* 响应消息字符串
|
||||||
|
*
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
l(this, "toString", () => this.message);
|
||||||
|
/**
|
||||||
|
* 显示消息
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
w(this, k, () => {
|
||||||
|
s(this, j) && (C(this, j, !1), se.onMsg(this.code, this.message));
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
* @param {(value: unknown) => unknown} [fn]
|
* Promise then
|
||||||
* @param {((reason: unknown) => unknown) | undefined} [onrejected]
|
*
|
||||||
|
* @param {HttpResponseThenCallback | undefined} fn
|
||||||
|
* @param {HttpResponseRejectCallback} [onrejected]
|
||||||
* @returns {Promise<unknown>}
|
* @returns {Promise<unknown>}
|
||||||
*/
|
*/
|
||||||
p(this, Z, (e, t) => [0, 1].includes(this.code) ? Promise.resolve(e == null ? void 0 : e(this.data)) : t ? Promise.resolve(t(s(this, $))) : Promise.reject(s(this, $)));
|
w(this, X, (e, t) => [0, 1].includes(this.code) ? Promise.resolve(e == null ? void 0 : e(this.data)) : t ? Promise.resolve(t(s(this, $))) : Promise.reject(s(this, $)));
|
||||||
/**
|
/**
|
||||||
* @param {(value: HttpResponse) => unknown} [fn]
|
* Promise catch
|
||||||
* @param {((reason: unknown) => unknown) | undefined} [onrejected]
|
*
|
||||||
|
* @param {HttpResponseRejectCallback} fn
|
||||||
* @returns {Promise<unknown>}
|
* @returns {Promise<unknown>}
|
||||||
*/
|
*/
|
||||||
p(this, ee, (e, t) => [0, 1].includes(this.code) ? Promise.resolve(e == null ? void 0 : e(this)) : t ? Promise.resolve(t(s(this, $))) : Promise.reject(s(this, $)));
|
w(this, Z, (e) => Promise.resolve(e(s(this, $))));
|
||||||
/**
|
|
||||||
* @param {(reason: HttpResponse) => unknown} fn
|
|
||||||
* @returns {Promise<unknown>}
|
|
||||||
*/
|
|
||||||
p(this, te, (e) => Promise.resolve(e(s(this, $))));
|
|
||||||
/**
|
/**
|
||||||
|
* Promise finally
|
||||||
|
*
|
||||||
* @param {(() => void) | undefined} [fn]
|
* @param {(() => void) | undefined} [fn]
|
||||||
* @returns {Promise<unknown>}
|
* @returns {Promise<unknown>}
|
||||||
*/
|
*/
|
||||||
p(this, re, (e) => (e == null || e(), [0, 1].includes(this.code) ? Promise.resolve(s(this, B).getPrototypeOf()) : Promise.reject(s(this, $))));
|
w(this, ee, (e) => (e == null || e(), [0, 1].includes(this.code) ? Promise.resolve(s(this, B).getPrototypeOf()) : Promise.reject(s(this, $))));
|
||||||
return this.code = e, this.message = t, this.data = n, this.url = i, this.res = c, _(this, $, new Proxy(this, s(this, B)));
|
return this.code = e, this.message = t, this.data = n, this.url = i, this.res = c, C(this, $, new Proxy(this, s(this, B)));
|
||||||
}
|
}
|
||||||
static [Symbol.hasInstance](e) {
|
static [Symbol.hasInstance](e) {
|
||||||
return (e == null ? void 0 : e.constructor) === ae || (e == null ? void 0 : e[Symbol.for("HttpResponse")]) === !0;
|
return (e == null ? void 0 : e.constructor) === ie || (e == null ? void 0 : e[Symbol.for("HttpResponse")]) === !0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
$ = new WeakMap(), q = new WeakMap(), j = new WeakMap(), B = new WeakMap(), W = new WeakMap(), X = new WeakMap(), z = new WeakMap(), Z = new WeakMap(), ee = new WeakMap(), te = new WeakMap(), re = new WeakMap();
|
$ = new WeakMap(), q = new WeakMap(), j = new WeakMap(), B = new WeakMap(), W = new WeakMap(), k = new WeakMap(), X = new WeakMap(), Z = new WeakMap(), ee = new WeakMap();
|
||||||
let L = ae;
|
let L = ie;
|
||||||
const ie = (r, e, t, n = "/", i = "") => new L(r, e, t, n, i);
|
const ne = (r, e, t, n = "/", i = "") => (
|
||||||
var de = [
|
/** @type {HttpResponseProxy} */
|
||||||
|
new L(r, e, t, n, i)
|
||||||
|
);
|
||||||
|
var le = [
|
||||||
"utf8",
|
"utf8",
|
||||||
"utf-8",
|
"utf-8",
|
||||||
"unicode-1-1-utf-8"
|
"unicode-1-1-utf-8"
|
||||||
];
|
];
|
||||||
function ye(r) {
|
function ve(r) {
|
||||||
if (de.indexOf(r) < 0 && typeof r < "u" && r != null)
|
if (le.indexOf(r) < 0 && typeof r < "u" && r != null)
|
||||||
throw new RangeError("Invalid encoding type. Only utf-8 is supported");
|
throw new RangeError("Invalid encoding type. Only utf-8 is supported");
|
||||||
this.encoding = "utf-8", this.encode = function(e) {
|
this.encoding = "utf-8", this.encode = function(e) {
|
||||||
if (typeof e != "string")
|
if (typeof e != "string")
|
||||||
@@ -364,8 +469,8 @@ function ye(r) {
|
|||||||
return n;
|
return n;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
function be(r) {
|
function we(r) {
|
||||||
if (de.indexOf(r) < 0 && typeof r < "u" && r != null)
|
if (le.indexOf(r) < 0 && typeof r < "u" && r != null)
|
||||||
throw new RangeError("Invalid encoding type. Only utf-8 is supported");
|
throw new RangeError("Invalid encoding type. Only utf-8 is supported");
|
||||||
this.encoding = "utf-8", this.decode = function(e, t) {
|
this.encoding = "utf-8", this.decode = function(e, t) {
|
||||||
if (typeof e > "u")
|
if (typeof e > "u")
|
||||||
@@ -375,44 +480,44 @@ function be(r) {
|
|||||||
throw new TypeError("stream option must be boolean");
|
throw new TypeError("stream option must be boolean");
|
||||||
if (ArrayBuffer.isView(e)) {
|
if (ArrayBuffer.isView(e)) {
|
||||||
var i = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), c = new Array(i.length);
|
var i = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), c = new Array(i.length);
|
||||||
for (let u = 0; u < i.length; u++)
|
for (let f = 0; f < i.length; f++)
|
||||||
c[u] = String.fromCharCode(i[u]);
|
c[f] = String.fromCharCode(i[f]);
|
||||||
return decodeURIComponent(escape(c.join("")));
|
return decodeURIComponent(escape(c.join("")));
|
||||||
} else
|
} else
|
||||||
throw new TypeError("passed argument must be an array buffer view");
|
throw new TypeError("passed argument must be an array buffer view");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
var ge = {
|
var fe = {
|
||||||
TextEncoder: ye,
|
TextEncoder: ve,
|
||||||
TextDecoder: be
|
TextDecoder: we
|
||||||
};
|
};
|
||||||
const Ee = new ge.TextEncoder("utf8"), Pe = new ge.TextDecoder("utf8");
|
const ye = new fe.TextEncoder("utf8"), be = new fe.TextDecoder("utf8");
|
||||||
function Te(r) {
|
function Ee(r) {
|
||||||
let e = 5381;
|
let e = 5381;
|
||||||
for (let t = 0; t < r.length; t++)
|
for (let t = 0; t < r.length; t++)
|
||||||
e = e * 33 ^ r.charCodeAt(t);
|
e = e * 33 ^ r.charCodeAt(t);
|
||||||
return (e >>> 0).toString(16);
|
return (e >>> 0).toString(16);
|
||||||
}
|
}
|
||||||
function Oe(r, e) {
|
function Pe(r, e) {
|
||||||
return r.replace(new RegExp(`^${e}+|${e}+$`, "g"), "");
|
return r.replace(new RegExp(`^${e}+|${e}+$`, "g"), "");
|
||||||
}
|
}
|
||||||
function Se(r) {
|
function Te(r) {
|
||||||
return Ee.encode(r || "");
|
return ye.encode(r || "");
|
||||||
}
|
}
|
||||||
function Ne(r) {
|
function _e(r) {
|
||||||
return Pe.decode(new DataView(r), {});
|
return be.decode(new DataView(r), {});
|
||||||
}
|
}
|
||||||
const xe = 62, Q = 30, ue = 31, me = 63;
|
const Oe = 62, Q = 30, he = 31, Se = 63;
|
||||||
class Ae {
|
class xe {
|
||||||
/**
|
/**
|
||||||
* @param {string} alphabet 62 位编码字母表
|
* @param {string} alphabet 62 位编码字母表
|
||||||
*/
|
*/
|
||||||
constructor(e) {
|
constructor(e) {
|
||||||
/** @type {string[]} */
|
/** @type {string[]} */
|
||||||
g(this, "encodeTable", []);
|
l(this, "encodeTable", []);
|
||||||
/** @type {Uint8Array} */
|
/** @type {Uint8Array} */
|
||||||
g(this, "decodeMap", new Uint8Array(256).fill(255));
|
l(this, "decodeMap", new Uint8Array(256).fill(255));
|
||||||
if (e.length !== xe)
|
if (e.length !== Oe)
|
||||||
throw new Error("Encoding alphabet must be 62 characters long");
|
throw new Error("Encoding alphabet must be 62 characters long");
|
||||||
if (e.includes(`
|
if (e.includes(`
|
||||||
`) || e.includes("\r"))
|
`) || e.includes("\r"))
|
||||||
@@ -428,7 +533,7 @@ class Ae {
|
|||||||
*/
|
*/
|
||||||
encode(e) {
|
encode(e) {
|
||||||
if (!e || e.length === 0) return "";
|
if (!e || e.length === 0) return "";
|
||||||
const t = new _e(this).encodeV2(e);
|
const t = new me(this).encodeV2(e);
|
||||||
return String.fromCharCode(...t);
|
return String.fromCharCode(...t);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -438,55 +543,55 @@ class Ae {
|
|||||||
*/
|
*/
|
||||||
decode(e) {
|
decode(e) {
|
||||||
if (!e || e.length === 0) return "";
|
if (!e || e.length === 0) return "";
|
||||||
const t = new Ce(this).decode(e);
|
const t = new Ae(this).decode(e);
|
||||||
return new TextDecoder().decode(t);
|
return new TextDecoder().decode(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var V;
|
var z;
|
||||||
class _e {
|
class me {
|
||||||
/**
|
/**
|
||||||
* @param {Base62} b62
|
* @param {Base62} b62
|
||||||
*/
|
*/
|
||||||
constructor(e) {
|
constructor(e) {
|
||||||
/** @type {Base62} */
|
/** @type {Base62} */
|
||||||
p(this, V);
|
w(this, z);
|
||||||
/** @type {Uint8Array} */
|
/** @type {Uint8Array} */
|
||||||
g(this, "src", new Uint8Array());
|
l(this, "src", new Uint8Array());
|
||||||
/** @type {number} */
|
/** @type {number} */
|
||||||
g(this, "pos", 0);
|
l(this, "pos", 0);
|
||||||
_(this, V, e);
|
C(this, z, e);
|
||||||
}
|
}
|
||||||
/** @returns {number} */
|
/** @returns {number} */
|
||||||
get6bits() {
|
get6bits() {
|
||||||
let e = this.pos & 7, t = this.pos >> 3;
|
let e = this.pos & 7, t = this.pos >> 3;
|
||||||
e === 0 && (t -= 1, e = 8);
|
e === 0 && (t -= 1, e = 8);
|
||||||
let n = this.src[t] >> 8 - e;
|
let n = this.src[t] >> 8 - e;
|
||||||
return e < 6 && t > 0 && (n |= this.src[t - 1] << e), n & me;
|
return e < 6 && t > 0 && (n |= this.src[t - 1] << e), n & Se;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @param {string} src
|
* @param {string} src
|
||||||
* @returns {number[]}
|
* @returns {number[]}
|
||||||
*/
|
*/
|
||||||
encodeV2(e) {
|
encodeV2(e) {
|
||||||
this.src = Se(e), this.pos = this.src.length * 8;
|
this.src = Te(e), this.pos = this.src.length * 8;
|
||||||
const t = [];
|
const t = [];
|
||||||
for (; this.pos > 0; ) {
|
for (; this.pos > 0; ) {
|
||||||
let n = 6, i = this.get6bits();
|
let n = 6, i = this.get6bits();
|
||||||
(i & Q) === Q && ((this.pos > 6 || i > ue) && (n = 5), i &= ue), t.push(s(this, V).encodeTable[i].charCodeAt(0)), this.pos -= n;
|
(i & Q) === Q && ((this.pos > 6 || i > he) && (n = 5), i &= he), t.push(s(this, z).encodeTable[i].charCodeAt(0)), this.pos -= n;
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
V = new WeakMap();
|
z = new WeakMap();
|
||||||
var k;
|
var V;
|
||||||
class Ce {
|
class Ae {
|
||||||
/**
|
/**
|
||||||
* @param {Base62} b62
|
* @param {Base62} b62
|
||||||
*/
|
*/
|
||||||
constructor(e) {
|
constructor(e) {
|
||||||
/** @type {Base62} */
|
/** @type {Base62} */
|
||||||
p(this, k);
|
w(this, V);
|
||||||
_(this, k, e);
|
C(this, V, e);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @param {string} src
|
* @param {string} src
|
||||||
@@ -495,24 +600,24 @@ class Ce {
|
|||||||
decode(e) {
|
decode(e) {
|
||||||
const t = new Uint8Array(Math.ceil(e.length * 6 / 8) + 1);
|
const t = new Uint8Array(Math.ceil(e.length * 6 / 8) + 1);
|
||||||
let n = t.length, i = 0, c = 0;
|
let n = t.length, i = 0, c = 0;
|
||||||
for (let u = 0; u < e.length; u++) {
|
for (let f = 0; f < e.length; f++) {
|
||||||
const U = e[u].charCodeAt(0), a = s(this, k).decodeMap[U];
|
const U = e[f].charCodeAt(0), a = s(this, V).decodeMap[U];
|
||||||
if (a === 255)
|
if (a === 255)
|
||||||
throw new Error(`CorruptInputError at index ${u}`);
|
throw new Error(`CorruptInputError at index ${f}`);
|
||||||
u === e.length - 1 ? (c |= a << i, i += Math.ceil(Math.log2(a + 1))) : (a & Q) === Q ? (c |= a << i, i += 5) : (c |= a << i, i += 6), i >= 8 && (n--, t[n] = c & 255, i %= 8, c >>= 8);
|
f === e.length - 1 ? (c |= a << i, i += Math.ceil(Math.log2(a + 1))) : (a & Q) === Q ? (c |= a << i, i += 5) : (c |= a << i, i += 6), i >= 8 && (n--, t[n] = c & 255, i %= 8, c >>= 8);
|
||||||
}
|
}
|
||||||
return i > 0 && (n--, t[n] = c & 255), t.slice(n);
|
return i > 0 && (n--, t[n] = c & 255), t.slice(n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
k = new WeakMap();
|
V = new WeakMap();
|
||||||
Promise.withResolvers || (Promise.withResolvers = function() {
|
Promise.withResolvers || (Promise.withResolvers = function() {
|
||||||
let r, e;
|
let r, e;
|
||||||
return { promise: new Promise((n, i) => {
|
return { promise: new Promise((n, i) => {
|
||||||
r = n, e = i;
|
r = n, e = i;
|
||||||
}), resolve: r, reject: e };
|
}), resolve: r, reject: e };
|
||||||
});
|
});
|
||||||
var G, D, ne, R, F, K, se, Y;
|
var G, D, te, R, F, K, re, Y;
|
||||||
class oe {
|
class se {
|
||||||
/**
|
/**
|
||||||
* @param {string} [appKey]
|
* @param {string} [appKey]
|
||||||
* @param {string} [appSecret]
|
* @param {string} [appSecret]
|
||||||
@@ -520,31 +625,31 @@ class oe {
|
|||||||
*/
|
*/
|
||||||
constructor(e, t, n) {
|
constructor(e, t, n) {
|
||||||
/** @type {RequestFn | undefined} */
|
/** @type {RequestFn | undefined} */
|
||||||
p(this, G);
|
w(this, G);
|
||||||
/** @type {Base62 | undefined} */
|
/** @type {Base62 | undefined} */
|
||||||
p(this, D);
|
w(this, D);
|
||||||
/** @type {string | undefined} */
|
/** @type {string | undefined} */
|
||||||
p(this, ne);
|
w(this, te);
|
||||||
p(this, R, {
|
w(this, R, {
|
||||||
/** @type {Map<string, CacheEntry>} */
|
/** @type {Map<string, CacheEntry>} */
|
||||||
"#": /* @__PURE__ */ new Map(),
|
"#": /* @__PURE__ */ new Map(),
|
||||||
/** @type {Map<string, CacheEntry>} */
|
/** @type {Map<string, CacheEntry>} */
|
||||||
$: /* @__PURE__ */ new Map()
|
$: /* @__PURE__ */ new Map()
|
||||||
});
|
});
|
||||||
/** @type {Map<string, Array<[Function, Function] | null>>} */
|
/** @type {Map<string, Array<[Function, Function] | null>>} */
|
||||||
p(this, F, /* @__PURE__ */ new Map());
|
w(this, F, /* @__PURE__ */ new Map());
|
||||||
/** @type {Set<[string, '#' | '$', RequestOptions & { method: string }, boolean]>} */
|
/** @type {Set<[string, '#' | '$', RequestOptions & { method: string }, boolean]>} */
|
||||||
p(this, K, /* @__PURE__ */ new Set());
|
w(this, K, /* @__PURE__ */ new Set());
|
||||||
/**
|
/**
|
||||||
* 初始化请求实例
|
* 初始化请求实例
|
||||||
* @param {string} [appKey]
|
* @param {string} [appKey]
|
||||||
* @param {string} [appSecret]
|
* @param {string} [appSecret]
|
||||||
* @param {RequestFn} [reqFn]
|
* @param {RequestFn} [reqFn]
|
||||||
*/
|
*/
|
||||||
g(this, "init", (e, t, n) => {
|
l(this, "init", (e, t, n) => {
|
||||||
e && _(this, ne, e), n && _(this, G, n), t && _(this, D, new Ae(t)), s(this, se).call(this);
|
e && C(this, te, e), n && C(this, G, n), t && C(this, D, new xe(t)), s(this, re).call(this);
|
||||||
});
|
});
|
||||||
p(this, se, () => {
|
w(this, re, () => {
|
||||||
!s(this, K).size || !s(this, G) || (s(this, K).forEach((e) => s(this, Y).call(this, ...e)), s(this, K).clear());
|
!s(this, K).size || !s(this, G) || (s(this, K).forEach((e) => s(this, Y).call(this, ...e)), s(this, K).clear());
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
@@ -553,32 +658,32 @@ class oe {
|
|||||||
* @param {RequestOptions & { method: string }} params
|
* @param {RequestOptions & { method: string }} params
|
||||||
* @param {boolean} [isCacheRequest]
|
* @param {boolean} [isCacheRequest]
|
||||||
*/
|
*/
|
||||||
p(this, Y, (e, t, n, i = !1) => {
|
w(this, Y, (e, t, n, i = !1) => {
|
||||||
if (!s(this, G))
|
if (!s(this, G))
|
||||||
s(this, K).add([e, t, n, i]);
|
s(this, K).add([e, t, n, i]);
|
||||||
else {
|
else {
|
||||||
const { url: c, method: u, ...U } = n || {};
|
const { url: c, method: f, ...U } = n || {};
|
||||||
s(this, G).call(this, { url: c, method: u, ...U }).then((a) => {
|
s(this, G).call(this, { url: c, method: f, ...U }).then((a) => {
|
||||||
if (![0, 1].includes(a.code))
|
if (![0, 1].includes(a.code))
|
||||||
throw ie(a.code ?? -1, a.msg ?? "响应格式错误", a.data, c, a == null ? void 0 : a.res);
|
throw ne(a.code ?? -1, a.msg ?? "响应格式错误", a.data, c, a == null ? void 0 : a.res);
|
||||||
return [a.code, a.msg, a.data, c, (a == null ? void 0 : a.res) ?? ""];
|
return [a.code, a.msg, a.data, c, (a == null ? void 0 : a.res) ?? ""];
|
||||||
}).then((a) => {
|
}).then((a) => {
|
||||||
const T = (
|
const T = (
|
||||||
/** @type {CacheEntry} */
|
/** @type {CacheEntry} */
|
||||||
a
|
a
|
||||||
);
|
);
|
||||||
return (t == "#" || u == "GET") && s(this, R)[t].set(e, T), t != "#" && u == "GET" && !i && setTimeout(() => {
|
return (t == "#" || f == "GET") && s(this, R)[t].set(e, T), t != "#" && f == "GET" && !i && setTimeout(() => {
|
||||||
s(this, R)[t].delete(e);
|
s(this, R)[t].delete(e);
|
||||||
}, 300), T;
|
}, 300), T;
|
||||||
}).then((a) => {
|
}).then((a) => {
|
||||||
var T;
|
var T;
|
||||||
return (T = s(this, F).get(e)) == null ? void 0 : T.forEach((C, m, I) => {
|
return (T = s(this, F).get(e)) == null ? void 0 : T.forEach((_, m, I) => {
|
||||||
C && C[0](a), delete I[m];
|
_ && _[0](a), delete I[m];
|
||||||
});
|
});
|
||||||
}).catch((a) => {
|
}).catch((a) => {
|
||||||
var T;
|
var T;
|
||||||
s(this, R)[t].delete(e), (T = s(this, F).get(e)) == null || T.forEach((C, m, I) => {
|
s(this, R)[t].delete(e), (T = s(this, F).get(e)) == null || T.forEach((_, m, I) => {
|
||||||
C && C[1](a instanceof L ? a : ie(-1, a, null, c)), delete I[m];
|
_ && _[1](a instanceof L ? a : ne(-1, a, null, c)), delete I[m];
|
||||||
});
|
});
|
||||||
}).finally(() => s(this, F).delete(e));
|
}).finally(() => s(this, F).delete(e));
|
||||||
}
|
}
|
||||||
@@ -589,33 +694,33 @@ class oe {
|
|||||||
* @param {boolean} [isCacheRequest]
|
* @param {boolean} [isCacheRequest]
|
||||||
* @returns {any} 返回 Proxy 包裹的 Promise,支持链式调用 .then / .catch / .msg / .resp
|
* @returns {any} 返回 Proxy 包裹的 Promise,支持链式调用 .then / .catch / .msg / .resp
|
||||||
*/
|
*/
|
||||||
g(this, "request", ({ url: e = "/", method: t = "GET", ...n }, i = !1) => {
|
l(this, "request", ({ url: e = "/", method: t = "GET", ...n }, i = !1) => {
|
||||||
var m, I;
|
var m, I;
|
||||||
e = Oe(e, "/");
|
e = Pe(e, "/");
|
||||||
const c = (
|
const c = (
|
||||||
/** @type {HttpMethod} */
|
/** @type {HttpMethod} */
|
||||||
t.toUpperCase()
|
t.toUpperCase()
|
||||||
), u = Te(JSON.stringify([e, c, n])), U = (
|
), f = Ee(JSON.stringify([e, c, n])), U = (
|
||||||
/** @type {'#' | '$'} */
|
/** @type {'#' | '$'} */
|
||||||
(m = e == null ? void 0 : e.includes) != null && m.call(e, "/_/") ? "#" : "$"
|
(m = e == null ? void 0 : e.includes) != null && m.call(e, "/_/") ? "#" : "$"
|
||||||
), { promise: a, resolve: T, reject: C } = Promise.withResolvers();
|
), { promise: a, resolve: T, reject: _ } = Promise.withResolvers();
|
||||||
return s(this, R)[U].has(u) ? (console.log("cache", e), T(s(this, R)[U].get(u))) : s(this, F).has(u) ? (I = s(this, F).get(u)) == null || I.push([T, C]) : (s(this, F).set(u, [[T, C]]), s(this, Y).call(this, u, U, { url: e, method: c, ...n }, i)), new Proxy(a, {
|
return s(this, R)[U].has(f) ? (console.log("cache", e), T(s(this, R)[U].get(f))) : s(this, F).has(f) ? (I = s(this, F).get(f)) == null || I.push([T, _]) : (s(this, F).set(f, [[T, _]]), s(this, Y).call(this, f, U, { url: e, method: c, ...n }, i)), new Proxy(a, {
|
||||||
// Symbol.for('HttpResponse') 是标记,用于外部 instanceof 识别此 Proxy 为 HttpResponse 类型
|
// Symbol.for('HttpResponse') 是标记,用于外部 instanceof 识别此 Proxy 为 HttpResponse 类型
|
||||||
get: (H, h) => h === Symbol.for("HttpResponse") ? !0 : (...f) => H.then((l) => (
|
get: (H, h) => h === Symbol.for("HttpResponse") ? !0 : (...d) => H.then((u) => (
|
||||||
/** @type {any} */
|
/** @type {any} */
|
||||||
ie(
|
ne(
|
||||||
.../** @type {[number, string, unknown, string, string]} */
|
.../** @type {[number, string, unknown, string, string]} */
|
||||||
l
|
u
|
||||||
)[h](...f)
|
)[h](...d)
|
||||||
)).catch((l) => {
|
)).catch((u) => {
|
||||||
if (!(l instanceof L)) throw l;
|
if (!(u instanceof L)) throw u;
|
||||||
return typeof /** @type {any} */
|
return typeof /** @type {any} */
|
||||||
l[h] == "function" ? (
|
u[h] == "function" ? (
|
||||||
/** @type {any} */
|
/** @type {any} */
|
||||||
l[h](...f)
|
u[h](...d)
|
||||||
) : (
|
) : (
|
||||||
/** @type {any} */
|
/** @type {any} */
|
||||||
l[h]
|
u[h]
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
@@ -625,57 +730,57 @@ class oe {
|
|||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "get", (e, t = {}) => this.request({ url: e, method: "GET", params: t }));
|
l(this, "get", (e, t = {}) => this.request({ url: e, method: "GET", params: t }));
|
||||||
/**
|
/**
|
||||||
* POST 请求
|
* POST 请求
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {unknown} [data]
|
* @param {unknown} [data]
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "post", (e, t = {}, n = {}) => this.request({ url: e, method: "POST", data: t, params: n }));
|
l(this, "post", (e, t = {}, n = {}) => this.request({ url: e, method: "POST", data: t, params: n }));
|
||||||
/**
|
/**
|
||||||
* PUT 请求
|
* PUT 请求
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {unknown} [data]
|
* @param {unknown} [data]
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "put", (e, t = {}, n = {}) => this.request({ url: e, method: "PUT", data: t, params: n }));
|
l(this, "put", (e, t = {}, n = {}) => this.request({ url: e, method: "PUT", data: t, params: n }));
|
||||||
/**
|
/**
|
||||||
* DELETE 请求
|
* DELETE 请求
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {unknown} [data]
|
* @param {unknown} [data]
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "del", (e, t = {}, n = {}) => this.request({ url: e, method: "DELETE", data: t, params: n }));
|
l(this, "del", (e, t = {}, n = {}) => this.request({ url: e, method: "DELETE", data: t, params: n }));
|
||||||
/**
|
/**
|
||||||
* 下载(待实现)
|
* 下载(待实现)
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "download", (e, t) => {
|
l(this, "download", (e, t) => {
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
* 永久缓存 GET 请求
|
* 永久缓存 GET 请求
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {Record<string, unknown>} [params]
|
* @param {Record<string, unknown>} [params]
|
||||||
*/
|
*/
|
||||||
g(this, "cache", (e, t = {}) => this.request({ url: e, method: "GET", params: t }, !0));
|
l(this, "cache", (e, t = {}) => this.request({ url: e, method: "GET", params: t }, !0));
|
||||||
/**
|
/**
|
||||||
* 通过 Base62 编码参数请求列表接口
|
* 通过 Base62 编码参数请求列表接口
|
||||||
* @param {string} code
|
* @param {string} code
|
||||||
* @param {Base62Param} [base62param]
|
* @param {Base62Param} [base62param]
|
||||||
*/
|
*/
|
||||||
g(this, "list", (e, t = {}) => this.get(`/api/${e}/${this.encode(
|
l(this, "list", (e, t = {}) => this.get(`/api/${e}/${this.encode(
|
||||||
/** @type {Record<string, unknown>} */
|
/** @type {Record<string, unknown>} */
|
||||||
t
|
t
|
||||||
)}`));
|
)}`));
|
||||||
g(this, "getAppInfo", () => {
|
l(this, "getAppInfo", () => {
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
* 清除缓存
|
* 清除缓存
|
||||||
* @param {boolean} [isSystem] 是否同时清除系统缓存(`/_/` 路由)
|
* @param {boolean} [isSystem] 是否同时清除系统缓存(`/_/` 路由)
|
||||||
*/
|
*/
|
||||||
g(this, "refreshCache", (e = !1) => {
|
l(this, "refreshCache", (e = !1) => {
|
||||||
e && s(this, R)["#"].clear(), s(this, R).$.clear();
|
e && s(this, R)["#"].clear(), s(this, R).$.clear();
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
@@ -684,13 +789,13 @@ class oe {
|
|||||||
* @param {object} [defaultValue]
|
* @param {object} [defaultValue]
|
||||||
* @returns {unknown}
|
* @returns {unknown}
|
||||||
*/
|
*/
|
||||||
g(this, "decode", (e = "", t = {}) => {
|
l(this, "decode", (e = "", t = {}) => {
|
||||||
if (e === void 0 || e === "" || e === null)
|
if (e === void 0 || e === "" || e === null)
|
||||||
return t;
|
return t;
|
||||||
try {
|
try {
|
||||||
if (!s(this, D)) throw new Error("未初始化 appSecret,请先通过 init 设置 appSecret");
|
if (!s(this, D)) throw new Error("未初始化 appSecret,请先通过 init 设置 appSecret");
|
||||||
const n = s(this, D).decode(e);
|
const n = s(this, D).decode(e);
|
||||||
return le.unpack(n);
|
return ce.unpack(n);
|
||||||
} catch {
|
} catch {
|
||||||
return console.warn("core.decode", e), t;
|
return console.warn("core.decode", e), t;
|
||||||
}
|
}
|
||||||
@@ -700,27 +805,27 @@ class oe {
|
|||||||
* @param {Record<string, unknown> | unknown[]} [json]
|
* @param {Record<string, unknown> | unknown[]} [json]
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
g(this, "encode", (e = {}) => {
|
l(this, "encode", (e = {}) => {
|
||||||
if (!s(this, D)) throw new Error("未初始化 appSecret,请先通过 init 设置 appSecret");
|
if (!s(this, D)) throw new Error("未初始化 appSecret,请先通过 init 设置 appSecret");
|
||||||
const t = JSON.stringify(e, (n, i) => i === void 0 ? null : i);
|
const t = JSON.stringify(e, (n, i) => i === void 0 ? null : i);
|
||||||
return s(this, D).encode(le.pack(t));
|
return s(this, D).encode(ce.pack(t));
|
||||||
});
|
});
|
||||||
this.init(e, t, n);
|
this.init(e, t, n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
G = new WeakMap(), D = new WeakMap(), ne = new WeakMap(), R = new WeakMap(), F = new WeakMap(), K = new WeakMap(), se = new WeakMap(), Y = new WeakMap();
|
G = new WeakMap(), D = new WeakMap(), te = new WeakMap(), R = new WeakMap(), F = new WeakMap(), K = new WeakMap(), re = new WeakMap(), Y = new WeakMap();
|
||||||
oe.onUnhandledRejection = (r) => {
|
se.onUnhandledRejection = (r) => {
|
||||||
var t;
|
var t;
|
||||||
const e = r instanceof L ? r : (r == null ? void 0 : r.reason) instanceof L ? r.reason : null;
|
const e = r instanceof L ? r : (r == null ? void 0 : r.reason) instanceof L ? r.reason : null;
|
||||||
e != null && e.IS_ECHO_MSG && (e.$echoMsg(), (t = r == null ? void 0 : r.preventDefault) == null || t.call(r));
|
e != null && e.IS_ECHO_MSG && (e.$echoMsg(), (t = r == null ? void 0 : r.preventDefault) == null || t.call(r));
|
||||||
};
|
};
|
||||||
oe.onMsg = (r, e) => [0, 1].includes(r) ? console.log(e) : console.warn(e);
|
se.onMsg = (r, e) => [0, 1].includes(r) ? console.log(e) : console.warn(e);
|
||||||
export {
|
export {
|
||||||
L as HttpResponse,
|
L as HttpResponse,
|
||||||
ie as NewHttpResponse,
|
ne as NewHttpResponse,
|
||||||
oe as default,
|
se as default,
|
||||||
Te as signature,
|
Ee as signature,
|
||||||
Se as str2uint8array,
|
Te as str2uint8array,
|
||||||
Oe as trim,
|
Pe as trim,
|
||||||
Ne as uint8array2str
|
_e as uint8array2str
|
||||||
};
|
};
|
||||||
|
|||||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ff-request",
|
"name": "ff-request",
|
||||||
"version": "0.11.4",
|
"version": "0.12.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./ff-request.umd.cjs",
|
"main": "./ff-request.umd.cjs",
|
||||||
"module": "./ff-request.js",
|
"module": "./ff-request.js",
|
||||||
|
|||||||
Vendored
+26
@@ -0,0 +1,26 @@
|
|||||||
|
export default Base62;
|
||||||
|
/**
|
||||||
|
* Base62 编码解码类
|
||||||
|
*/
|
||||||
|
declare class Base62 {
|
||||||
|
/**
|
||||||
|
* @param {string} alphabet 62 位编码字母表
|
||||||
|
*/
|
||||||
|
constructor(alphabet: string);
|
||||||
|
/** @type {string[]} */
|
||||||
|
encodeTable: string[];
|
||||||
|
/** @type {Uint8Array} */
|
||||||
|
decodeMap: Uint8Array;
|
||||||
|
/**
|
||||||
|
* 将字符串编码为 Base62 字符串
|
||||||
|
* @param {string} src
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
encode(src: string): string;
|
||||||
|
/**
|
||||||
|
* 将 Base62 字符串解码为原始字符串
|
||||||
|
* @param {string} src
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
decode(src: string): string;
|
||||||
|
}
|
||||||
Vendored
+102
@@ -0,0 +1,102 @@
|
|||||||
|
import { RequestFn, RequestOptions, Base62Param } from './types/httpRequest';
|
||||||
|
export default HttpRequest;
|
||||||
|
declare class HttpRequest {
|
||||||
|
/**
|
||||||
|
* @param {string} [appKey]
|
||||||
|
* @param {string} [appSecret]
|
||||||
|
* @param {RequestFn} [reqFn]
|
||||||
|
*/
|
||||||
|
constructor(appKey?: string, appSecret?: string, reqFn?: RequestFn);
|
||||||
|
/**
|
||||||
|
* 初始化请求实例
|
||||||
|
* @param {string} [appKey]
|
||||||
|
* @param {string} [appSecret]
|
||||||
|
* @param {RequestFn} [reqFn]
|
||||||
|
*/
|
||||||
|
init: (appKey?: string, appSecret?: string, reqFn?: RequestFn) => void;
|
||||||
|
/**
|
||||||
|
* 发起请求,支持缓存与并发合并
|
||||||
|
* @param {RequestOptions} options
|
||||||
|
* @param {boolean} [isCacheRequest]
|
||||||
|
* @returns {any} 返回 Proxy 包裹的 Promise,支持链式调用 .then / .catch / .msg / .resp
|
||||||
|
*/
|
||||||
|
request: ({ url, method, ...params }: RequestOptions, isCacheRequest?: boolean) => any;
|
||||||
|
/**
|
||||||
|
* GET 请求
|
||||||
|
* @param {string} url
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
get: (url: string, params?: Record<string, unknown>) => any;
|
||||||
|
/**
|
||||||
|
* POST 请求
|
||||||
|
* @param {string} url
|
||||||
|
* @param {unknown} [data]
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
post: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
||||||
|
/**
|
||||||
|
* PUT 请求
|
||||||
|
* @param {string} url
|
||||||
|
* @param {unknown} [data]
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
put: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
||||||
|
/**
|
||||||
|
* DELETE 请求
|
||||||
|
* @param {string} url
|
||||||
|
* @param {unknown} [data]
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
del: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
||||||
|
/**
|
||||||
|
* 下载(待实现)
|
||||||
|
* @param {string} url
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
download: (url: string, params?: Record<string, unknown>) => void;
|
||||||
|
/**
|
||||||
|
* 永久缓存 GET 请求
|
||||||
|
* @param {string} url
|
||||||
|
* @param {Record<string, unknown>} [params]
|
||||||
|
*/
|
||||||
|
cache: (url: string, params?: Record<string, unknown>) => any;
|
||||||
|
/**
|
||||||
|
* 通过 Base62 编码参数请求列表接口
|
||||||
|
* @param {string} code
|
||||||
|
* @param {Base62Param} [base62param]
|
||||||
|
*/
|
||||||
|
list: (code: string, base62param?: Base62Param) => any;
|
||||||
|
getAppInfo: () => void;
|
||||||
|
/**
|
||||||
|
* 清除缓存
|
||||||
|
* @param {boolean} [isSystem] 是否同时清除系统缓存(`/_/` 路由)
|
||||||
|
*/
|
||||||
|
refreshCache: (isSystem?: boolean) => void;
|
||||||
|
/**
|
||||||
|
* 解码 Base62 字符串为 JSON 对象
|
||||||
|
* @param {string} [str]
|
||||||
|
* @param {object} [defaultValue]
|
||||||
|
* @returns {unknown}
|
||||||
|
*/
|
||||||
|
decode: (str?: string, defaultValue?: object) => unknown;
|
||||||
|
/**
|
||||||
|
* 将 JSON 对象编码为 Base62 字符串
|
||||||
|
* @param {Record<string, unknown> | unknown[]} [json]
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
encode: (json?: Record<string, unknown> | unknown[]) => string;
|
||||||
|
#private;
|
||||||
|
}
|
||||||
|
declare namespace HttpRequest {
|
||||||
|
/**
|
||||||
|
* 全局未处理 rejection 处理器,适配浏览器和 Node 环境
|
||||||
|
* @param {any} e
|
||||||
|
*/
|
||||||
|
function onUnhandledRejection(e: any): void;
|
||||||
|
/**
|
||||||
|
* 全局消息回调,默认打印到控制台
|
||||||
|
* @param {number} code
|
||||||
|
* @param {string} msg
|
||||||
|
*/
|
||||||
|
function onMsg(code: number, msg: string): void;
|
||||||
|
}
|
||||||
Vendored
+91
@@ -0,0 +1,91 @@
|
|||||||
|
import { HttpResponseProxy, HttpResponseData } from './types/httpResponse';
|
||||||
|
export default HttpResponse;
|
||||||
|
export function NewHttpResponse(code: number, message: string, data: unknown, url?: string, res?: string): HttpResponseProxy;
|
||||||
|
/**
|
||||||
|
* HTTP 响应对象
|
||||||
|
*/
|
||||||
|
export class HttpResponse {
|
||||||
|
static [Symbol.hasInstance](instance: any): boolean;
|
||||||
|
/**
|
||||||
|
* @param {number} code
|
||||||
|
* @param {string} message
|
||||||
|
* @param {unknown} data
|
||||||
|
* @param {string} url
|
||||||
|
* @param {string} res
|
||||||
|
*/
|
||||||
|
constructor(code: number, message: string, data: unknown, url: string, res: string);
|
||||||
|
/** @type {number} */
|
||||||
|
code: number;
|
||||||
|
/** @type {string} */
|
||||||
|
message: string;
|
||||||
|
/** @type {unknown} */
|
||||||
|
data: unknown;
|
||||||
|
/** @type {string} */
|
||||||
|
url: string;
|
||||||
|
/** @type {string} */
|
||||||
|
res: string;
|
||||||
|
/**
|
||||||
|
* message 消息弹窗后回调
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(data: unknown) => unknown} fn
|
||||||
|
* @param {false} isResp
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(response: HttpResponse) => unknown} fn
|
||||||
|
* @param {true} isResp
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @param {(value: unknown | HttpResponse) => unknown} [fn]
|
||||||
|
* @param {boolean} [isResp=false]
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* fn 内部抛出的异常会变成 reject,而不是同步抛出。
|
||||||
|
*/
|
||||||
|
msg: (fn?: (value: unknown | HttpResponse) => unknown, isResp?: boolean) => Promise<unknown>;
|
||||||
|
/**
|
||||||
|
* 使用完整 HttpResponse 对象处理响应
|
||||||
|
*
|
||||||
|
* 与 msg() 的区别:
|
||||||
|
*
|
||||||
|
* msg(false) -> 回调拿 data
|
||||||
|
*
|
||||||
|
* msg(true) -> 回调拿 HttpResponse
|
||||||
|
*
|
||||||
|
* resp() -> 永远拿 HttpResponse
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {(response: HttpResponse) => unknown} fn
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
* @param {undefined} fn
|
||||||
|
* @param {(reason: HttpResponse) => unknown} onrejected
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*
|
||||||
|
* @param {(response: HttpResponse) => unknown} [fn]
|
||||||
|
* @param {(reason: HttpResponse) => unknown} [onrejected]
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*/
|
||||||
|
resp: (fn?: (response: HttpResponse) => unknown, onrejected?: (reason: HttpResponse) => unknown) => Promise<unknown>;
|
||||||
|
/**
|
||||||
|
* 转换成 JSON
|
||||||
|
*
|
||||||
|
* @returns {HttpResponseData}
|
||||||
|
*/
|
||||||
|
toJSON: () => HttpResponseData;
|
||||||
|
/**
|
||||||
|
* 响应消息字符串
|
||||||
|
*
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
toString: () => string;
|
||||||
|
#private;
|
||||||
|
}
|
||||||
Vendored
+3
-208
@@ -1,208 +1,3 @@
|
|||||||
declare interface Base62Param {
|
export { default } from './httpRequest.js';
|
||||||
/** 当前选中的 tab 标识 */
|
export * from './util.js';
|
||||||
tab?: string
|
export { default as HttpResponse, NewHttpResponse } from './httpResponse.js';
|
||||||
/** 当前页码 */
|
|
||||||
page?: number
|
|
||||||
/** 每页条数 */
|
|
||||||
pageSize?: number
|
|
||||||
/** 筛选条件 */
|
|
||||||
condition?: Record<string, unknown>
|
|
||||||
/** 侧边栏选中项标识 */
|
|
||||||
sider?: string
|
|
||||||
/** 搜索关键词 */
|
|
||||||
keyword?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
declare type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'
|
|
||||||
|
|
||||||
declare class HttpRequest {
|
|
||||||
/**
|
|
||||||
* @param {string} [appKey]
|
|
||||||
* @param {string} [appSecret]
|
|
||||||
* @param {RequestFn} [reqFn]
|
|
||||||
*/
|
|
||||||
constructor(appKey?: string, appSecret?: string, reqFn?: RequestFn);
|
|
||||||
/**
|
|
||||||
* 初始化请求实例
|
|
||||||
* @param {string} [appKey]
|
|
||||||
* @param {string} [appSecret]
|
|
||||||
* @param {RequestFn} [reqFn]
|
|
||||||
*/
|
|
||||||
init: (appKey?: string, appSecret?: string, reqFn?: RequestFn) => void;
|
|
||||||
/**
|
|
||||||
* 发起请求,支持缓存与并发合并
|
|
||||||
* @param {RequestOptions} options
|
|
||||||
* @param {boolean} [isCacheRequest]
|
|
||||||
* @returns {any} 返回 Proxy 包裹的 Promise,支持链式调用 .then / .catch / .msg / .resp
|
|
||||||
*/
|
|
||||||
request: ({ url, method, ...params }: RequestOptions, isCacheRequest?: boolean) => any;
|
|
||||||
/**
|
|
||||||
* GET 请求
|
|
||||||
* @param {string} url
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
get: (url: string, params?: Record<string, unknown>) => any;
|
|
||||||
/**
|
|
||||||
* POST 请求
|
|
||||||
* @param {string} url
|
|
||||||
* @param {unknown} [data]
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
post: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
|
||||||
/**
|
|
||||||
* PUT 请求
|
|
||||||
* @param {string} url
|
|
||||||
* @param {unknown} [data]
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
put: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
|
||||||
/**
|
|
||||||
* DELETE 请求
|
|
||||||
* @param {string} url
|
|
||||||
* @param {unknown} [data]
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
del: (url: string, data?: unknown, params?: Record<string, unknown>) => any;
|
|
||||||
/**
|
|
||||||
* 下载(待实现)
|
|
||||||
* @param {string} url
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
download: (url: string, params?: Record<string, unknown>) => void;
|
|
||||||
/**
|
|
||||||
* 永久缓存 GET 请求
|
|
||||||
* @param {string} url
|
|
||||||
* @param {Record<string, unknown>} [params]
|
|
||||||
*/
|
|
||||||
cache: (url: string, params?: Record<string, unknown>) => any;
|
|
||||||
/**
|
|
||||||
* 通过 Base62 编码参数请求列表接口
|
|
||||||
* @param {string} code
|
|
||||||
* @param {Base62Param} [base62param]
|
|
||||||
*/
|
|
||||||
list: (code: string, base62param?: Base62Param) => any;
|
|
||||||
getAppInfo: () => void;
|
|
||||||
/**
|
|
||||||
* 清除缓存
|
|
||||||
* @param {boolean} [isSystem] 是否同时清除系统缓存(`/_/` 路由)
|
|
||||||
*/
|
|
||||||
refreshCache: (isSystem?: boolean) => void;
|
|
||||||
/**
|
|
||||||
* 解码 Base62 字符串为 JSON 对象
|
|
||||||
* @param {string} [str]
|
|
||||||
* @param {object} [defaultValue]
|
|
||||||
* @returns {unknown}
|
|
||||||
*/
|
|
||||||
decode: (str?: string, defaultValue?: object) => unknown;
|
|
||||||
/**
|
|
||||||
* 将 JSON 对象编码为 Base62 字符串
|
|
||||||
* @param {Record<string, unknown> | unknown[]} [json]
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
encode: (json?: Record<string, unknown> | unknown[]) => string;
|
|
||||||
#private;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare namespace HttpRequest {
|
|
||||||
/**
|
|
||||||
* 全局未处理 rejection 处理器,适配浏览器和 Node 环境
|
|
||||||
* @param {any} e
|
|
||||||
*/
|
|
||||||
function onUnhandledRejection(e: any): void;
|
|
||||||
/**
|
|
||||||
* 全局消息回调,默认打印到控制台
|
|
||||||
* @param {number} code
|
|
||||||
* @param {string} msg
|
|
||||||
*/
|
|
||||||
function onMsg(code: number, msg: string): void;
|
|
||||||
}
|
|
||||||
export default HttpRequest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} HttpResponseData@typedef {Object} HttpResponseData
|
|
||||||
* @property {number} code
|
|
||||||
* @property {string} message
|
|
||||||
* @property {unknown} data
|
|
||||||
* @property {string} url
|
|
||||||
* @property {string} res
|
|
||||||
*/
|
|
||||||
export declare class HttpResponse {
|
|
||||||
static [Symbol.hasInstance](instance: any): boolean;
|
|
||||||
/**
|
|
||||||
* @param {number} code
|
|
||||||
* @param {string} message
|
|
||||||
* @param {unknown} data
|
|
||||||
* @param {string} url
|
|
||||||
* @param {string} res
|
|
||||||
*/
|
|
||||||
constructor(code: number, message: string, data: unknown, url: string, res: string);
|
|
||||||
/** @type {number} */
|
|
||||||
code: number;
|
|
||||||
/** @type {string} */
|
|
||||||
message: string;
|
|
||||||
/** @type {unknown} */
|
|
||||||
data: unknown;
|
|
||||||
/** @type {string} */
|
|
||||||
url: string;
|
|
||||||
/** @type {string} */
|
|
||||||
res: string;
|
|
||||||
toJSON: () => {
|
|
||||||
code: number;
|
|
||||||
message: string;
|
|
||||||
data: unknown;
|
|
||||||
url: string;
|
|
||||||
res: string;
|
|
||||||
};
|
|
||||||
toString: () => string;
|
|
||||||
msg(fn?: (value: unknown) => unknown, isResp?: false): Promise<unknown>;
|
|
||||||
msg(fn?: (value: HttpResponse) => unknown, isResp: true): Promise<unknown>;
|
|
||||||
then(fn?: (value: unknown) => unknown, onrejected?: (reason: unknown) => unknown): Promise<unknown>;
|
|
||||||
resp(fn?: (value: HttpResponse) => unknown, onrejected?: (reason: unknown) => unknown): Promise<unknown>;
|
|
||||||
catch(fn: (reason: HttpResponse) => unknown): Promise<unknown>;
|
|
||||||
finally(fn?: () => void): Promise<unknown>;
|
|
||||||
#private;
|
|
||||||
}
|
|
||||||
|
|
||||||
export declare function NewHttpResponse(code: number, message: string, data: unknown, url?: string, res?: string): HttpResponse;
|
|
||||||
|
|
||||||
declare type RequestFn = (
|
|
||||||
config: RequestOptions & Record<string, unknown>
|
|
||||||
) => Promise<{ code: number; msg: string; data: unknown; res?: string }>
|
|
||||||
|
|
||||||
declare interface RequestOptions {
|
|
||||||
url?: string
|
|
||||||
method?: HttpMethod
|
|
||||||
params?: Record<string, unknown>
|
|
||||||
data?: unknown
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DJB2 算法 —— 将字符串散列为十六进制字符串
|
|
||||||
* @param {string} input
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export declare function signature(input: string): string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将字符串编码为 Uint8Array
|
|
||||||
* @param {string} str
|
|
||||||
* @returns {Uint8Array}
|
|
||||||
*/
|
|
||||||
export declare function str2uint8array(str: string): Uint8Array;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 去除字符串首尾指定字符
|
|
||||||
* @param {string} str
|
|
||||||
* @param {string} char
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export declare function trim(str: string, char: string): string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将 ArrayBuffer 解码为字符串
|
|
||||||
* @param {ArrayBuffer} buffer
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export declare function uint8array2str(buffer: ArrayBuffer): string;
|
|
||||||
|
|
||||||
export { }
|
|
||||||
|
|||||||
Vendored
+30
@@ -0,0 +1,30 @@
|
|||||||
|
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'
|
||||||
|
|
||||||
|
export interface Base62Param {
|
||||||
|
/** 当前选中的 tab 标识 */
|
||||||
|
tab?: string
|
||||||
|
/** 当前页码 */
|
||||||
|
page?: number
|
||||||
|
/** 每页条数 */
|
||||||
|
pageSize?: number
|
||||||
|
/** 筛选条件 */
|
||||||
|
condition?: Record<string, unknown>
|
||||||
|
/** 侧边栏选中项标识 */
|
||||||
|
sider?: string
|
||||||
|
/** 搜索关键词 */
|
||||||
|
keyword?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RequestOptions {
|
||||||
|
url?: string
|
||||||
|
method?: HttpMethod
|
||||||
|
params?: Record<string, unknown>
|
||||||
|
data?: unknown
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RequestFn = (
|
||||||
|
config: RequestOptions & Record<string, unknown>
|
||||||
|
) => Promise<{ code: number; msg: string; data: unknown; res?: string }>
|
||||||
|
|
||||||
|
/** [code, msg, data, url, res] */
|
||||||
|
export type CacheEntry = [number, string, unknown, string, string]
|
||||||
Vendored
+49
@@ -0,0 +1,49 @@
|
|||||||
|
import { default as HttpResponse } from '../httpResponse.js';
|
||||||
|
export type HttpResponseData = {
|
||||||
|
code: number
|
||||||
|
message: string
|
||||||
|
data: unknown
|
||||||
|
url: string
|
||||||
|
res: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/** then 成功回调 */
|
||||||
|
export type HttpResponseThenCallback = (value: unknown) => unknown
|
||||||
|
|
||||||
|
/** Promise reject 回调 */
|
||||||
|
export type HttpResponseRejectCallback = (reason: HttpResponse) => unknown
|
||||||
|
|
||||||
|
/** Proxy 动态提供的 Promise API */
|
||||||
|
export type HttpResponseProxyAPI = {
|
||||||
|
then: (
|
||||||
|
fn: HttpResponseThenCallback | undefined,
|
||||||
|
onrejected?: HttpResponseRejectCallback
|
||||||
|
) => Promise<unknown>
|
||||||
|
|
||||||
|
catch: (fn: HttpResponseRejectCallback) => Promise<unknown>
|
||||||
|
|
||||||
|
finally: (fn?: () => void) => Promise<unknown>
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpResponse 最终对外类型
|
||||||
|
*
|
||||||
|
* HttpResponse 本身提供:
|
||||||
|
*
|
||||||
|
* - code
|
||||||
|
* - message
|
||||||
|
* - data
|
||||||
|
* - url
|
||||||
|
* - res
|
||||||
|
* - msg()
|
||||||
|
* - resp()
|
||||||
|
* - toJSON()
|
||||||
|
* - toString()
|
||||||
|
*
|
||||||
|
* Proxy 额外提供:
|
||||||
|
*
|
||||||
|
* - then()
|
||||||
|
* - catch()
|
||||||
|
* - finally()
|
||||||
|
*/
|
||||||
|
export type HttpResponseProxy = HttpResponse & HttpResponseProxyAPI
|
||||||
Vendored
+25
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* DJB2 算法 —— 将字符串散列为十六进制字符串
|
||||||
|
* @param {string} input
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
export function signature(input: string): string;
|
||||||
|
/**
|
||||||
|
* 去除字符串首尾指定字符
|
||||||
|
* @param {string} str
|
||||||
|
* @param {string} char
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
export function trim(str: string, char: string): string;
|
||||||
|
/**
|
||||||
|
* 将字符串编码为 Uint8Array
|
||||||
|
* @param {string} str
|
||||||
|
* @returns {Uint8Array}
|
||||||
|
*/
|
||||||
|
export function str2uint8array(str: string): Uint8Array;
|
||||||
|
/**
|
||||||
|
* 将 ArrayBuffer 解码为字符串
|
||||||
|
* @param {ArrayBuffer} buffer
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
export function uint8array2str(buffer: ArrayBuffer): string;
|
||||||
Reference in New Issue
Block a user