hifun-tools 1.4.15 → 1.4.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/init/index.js +76 -13
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/init/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { getResource } from "./getResource";
|
|
3
3
|
import { isDomainMatch, filterSmartLines, getOptimalDecodedString, matchBrowser, toStandardUrl, difArr, } from "./utils";
|
|
4
4
|
import { AesDecrypt, AesEncrypt } from "./ende";
|
|
5
|
-
import { rewardMsg } from "../msg";
|
|
5
|
+
import { closeLoadingText, loadingText, rewardMsg } from "../msg";
|
|
6
6
|
import { Cache } from "../utils";
|
|
7
7
|
import { difference } from "lodash-es";
|
|
8
8
|
class InitCls {
|
|
@@ -154,19 +154,82 @@ class InitCls {
|
|
|
154
154
|
throw new Error("无法获取有效的租户信息");
|
|
155
155
|
}
|
|
156
156
|
async refreshHttp() {
|
|
157
|
+
const startTime = Date.now();
|
|
158
|
+
const log = (msg) => {
|
|
159
|
+
const t = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
160
|
+
console.log(`[refreshHttp +${t}s] ${msg}`);
|
|
161
|
+
};
|
|
162
|
+
this.isRefreshNow = true;
|
|
163
|
+
log("进入函数,isRefreshNow = true");
|
|
164
|
+
let success = false;
|
|
165
|
+
let finished = false;
|
|
166
|
+
// ⏱ 每秒心跳日志
|
|
167
|
+
const ticker = setInterval(() => {
|
|
168
|
+
const t = Math.floor((Date.now() - startTime) / 1000);
|
|
169
|
+
console.log(`[refreshHttp ⏱ ${t}s] alive`);
|
|
170
|
+
}, 1000);
|
|
171
|
+
const clearTicker = () => {
|
|
172
|
+
if (!finished) {
|
|
173
|
+
finished = true;
|
|
174
|
+
clearInterval(ticker);
|
|
175
|
+
log("停止每秒日志");
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
const retrySchedule = [5, 15, 30]; // 秒(绝对时间点)
|
|
179
|
+
const tryRequest = async (label) => {
|
|
180
|
+
log(`${label}:开始请求`);
|
|
181
|
+
try {
|
|
182
|
+
loadingText("网络环境异常,正在重连...");
|
|
183
|
+
await getOptimalDecodedString([this.getBaseUrl()]);
|
|
184
|
+
success = true;
|
|
185
|
+
closeLoadingText();
|
|
186
|
+
this.isRefreshNow = false;
|
|
187
|
+
log(`${label}:请求成功 ✅`);
|
|
188
|
+
clearTicker();
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
log(`${label}:请求失败 ❌`);
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
157
196
|
try {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
|
|
197
|
+
// 立即请求
|
|
198
|
+
await tryRequest("首次");
|
|
199
|
+
// 按 5 / 15 / 30 秒重试
|
|
200
|
+
for (const at of retrySchedule) {
|
|
201
|
+
if (success)
|
|
202
|
+
break;
|
|
203
|
+
const wait = startTime + at * 1000 - Date.now();
|
|
204
|
+
if (wait > 0) {
|
|
205
|
+
log(`等待到第 ${at}s(剩余 ${Math.ceil(wait / 1000)}s)`);
|
|
206
|
+
await new Promise((r) => setTimeout(r, wait));
|
|
207
|
+
}
|
|
208
|
+
if (success)
|
|
209
|
+
break;
|
|
210
|
+
await tryRequest(`第 ${at}s 重试`);
|
|
211
|
+
}
|
|
212
|
+
// 30 秒后仍失败
|
|
213
|
+
if (!success) {
|
|
214
|
+
log("30 秒后仍失败,进入兜底逻辑 ❗");
|
|
215
|
+
closeLoadingText();
|
|
216
|
+
this.isRefreshNow = false;
|
|
217
|
+
Cache("ErrorDomainUrl", [...this.ErrorDomainUrl, this.domainBaseUrl]);
|
|
218
|
+
rewardMsg({
|
|
219
|
+
title: "提示",
|
|
220
|
+
text: "网络环境异常,刷新页面以重置",
|
|
221
|
+
onSubmit() {
|
|
222
|
+
location.reload();
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (e) {
|
|
228
|
+
log("发生异常:" + e);
|
|
229
|
+
this.isRefreshNow = false;
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
clearTicker();
|
|
170
233
|
}
|
|
171
234
|
}
|
|
172
235
|
/** 获取 lineDict.txt 内容 */
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.4.
|
|
1
|
+
export declare const VERSION = "1.4.16";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "1.4.
|
|
1
|
+
export const VERSION = "1.4.16";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hifun-tools",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.17",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"jest": "^30.2.0",
|
|
25
25
|
"jest-environment-jsdom": "^30.2.0",
|
|
26
26
|
"jscodeshift": "^17.3.0",
|
|
27
|
-
"lodash-es": "^4.17.22",
|
|
28
27
|
"prettier": "^3.6.2",
|
|
29
28
|
"ts-jest": "^29.4.5",
|
|
30
29
|
"typescript": "^5.6.3"
|
|
31
30
|
},
|
|
32
31
|
"dependencies": {
|
|
33
32
|
"crypto-js": "^4.2.0",
|
|
33
|
+
"lodash-es": "^4.17.22",
|
|
34
34
|
"md5": "^2.3.0"
|
|
35
35
|
}
|
|
36
36
|
}
|