@skrillex1224/playwright-toolkit 2.1.96 → 2.1.97
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/index.cjs +42 -37
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +42 -37
- package/dist/index.js.map +3 -3
- package/index.d.ts +2 -11
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1331,15 +1331,17 @@ var Sse = {
|
|
|
1331
1331
|
* @param {function(Error, function): void} [options.onTimeout] - (error, reject) => void
|
|
1332
1332
|
* @param {number} [options.initialTimeout=90000] - 初始数据接收超时 (ms),默认 90s
|
|
1333
1333
|
* @param {number} [options.timeout=180000] - 整体请求超时时间 (ms),默认 180s
|
|
1334
|
-
* @
|
|
1334
|
+
* @param {boolean} [options.autoUnroute=true] - resolve/reject 后是否自动取消拦截
|
|
1335
|
+
* @returns {Promise<any>} - 返回 Promise,当流满足条件时 resolve
|
|
1335
1336
|
*/
|
|
1336
|
-
intercept(page, urlPattern, options = {}) {
|
|
1337
|
+
async intercept(page, urlPattern, options = {}) {
|
|
1337
1338
|
const {
|
|
1338
1339
|
onData,
|
|
1339
1340
|
onEnd,
|
|
1340
1341
|
onTimeout,
|
|
1341
1342
|
initialTimeout = 9e4,
|
|
1342
|
-
overallTimeout = 18e4
|
|
1343
|
+
overallTimeout = 18e4,
|
|
1344
|
+
autoUnroute = true
|
|
1343
1345
|
} = options;
|
|
1344
1346
|
let initialTimer = null;
|
|
1345
1347
|
let overallTimer = null;
|
|
@@ -1350,15 +1352,31 @@ var Sse = {
|
|
|
1350
1352
|
initialTimer = null;
|
|
1351
1353
|
overallTimer = null;
|
|
1352
1354
|
};
|
|
1353
|
-
let routeHandler = null;
|
|
1354
|
-
let isCancelled = false;
|
|
1355
1355
|
const workPromise = new Promise((resolve, reject) => {
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1356
|
+
let finished = false;
|
|
1357
|
+
let unrouteRequested = false;
|
|
1358
|
+
const safeUnroute = () => {
|
|
1359
|
+
if (!autoUnroute) return;
|
|
1360
|
+
if (unrouteRequested) return;
|
|
1361
|
+
unrouteRequested = true;
|
|
1362
|
+
page.unroute(urlPattern, routeHandler).catch(() => {
|
|
1363
|
+
});
|
|
1364
|
+
};
|
|
1365
|
+
const safeResolve = (value) => {
|
|
1366
|
+
if (finished) return;
|
|
1367
|
+
finished = true;
|
|
1368
|
+
clearAllTimers();
|
|
1369
|
+
safeUnroute();
|
|
1370
|
+
resolve(value);
|
|
1371
|
+
};
|
|
1372
|
+
const safeReject2 = (error) => {
|
|
1373
|
+
if (finished) return;
|
|
1374
|
+
finished = true;
|
|
1375
|
+
clearAllTimers();
|
|
1376
|
+
safeUnroute();
|
|
1377
|
+
reject(error);
|
|
1378
|
+
};
|
|
1379
|
+
const routeHandler = async (route) => {
|
|
1362
1380
|
const request = route.request();
|
|
1363
1381
|
logger8.info(`[MITM] \u5DF2\u62E6\u622A\u8BF7\u6C42: ${request.url()}`);
|
|
1364
1382
|
try {
|
|
@@ -1392,7 +1410,7 @@ var Sse = {
|
|
|
1392
1410
|
accumulatedText += textChunk;
|
|
1393
1411
|
if (onData) {
|
|
1394
1412
|
try {
|
|
1395
|
-
onData(textChunk,
|
|
1413
|
+
onData(textChunk, safeResolve, accumulatedText);
|
|
1396
1414
|
} catch (e) {
|
|
1397
1415
|
logger8.fail(`onData \u9519\u8BEF`, e);
|
|
1398
1416
|
}
|
|
@@ -1403,12 +1421,12 @@ var Sse = {
|
|
|
1403
1421
|
clearAllTimers();
|
|
1404
1422
|
if (onEnd) {
|
|
1405
1423
|
try {
|
|
1406
|
-
onEnd(accumulatedText,
|
|
1424
|
+
onEnd(accumulatedText, safeResolve);
|
|
1407
1425
|
} catch (e) {
|
|
1408
1426
|
logger8.fail(`onEnd \u9519\u8BEF`, e);
|
|
1409
1427
|
}
|
|
1410
1428
|
} else if (!onData) {
|
|
1411
|
-
|
|
1429
|
+
safeResolve(accumulatedText);
|
|
1412
1430
|
}
|
|
1413
1431
|
route.fulfill({
|
|
1414
1432
|
status: res.statusCode,
|
|
@@ -1422,7 +1440,7 @@ var Sse = {
|
|
|
1422
1440
|
clearAllTimers();
|
|
1423
1441
|
route.abort().catch(() => {
|
|
1424
1442
|
});
|
|
1425
|
-
|
|
1443
|
+
safeReject2(e);
|
|
1426
1444
|
});
|
|
1427
1445
|
if (postData) req.write(postData);
|
|
1428
1446
|
req.end();
|
|
@@ -1430,10 +1448,10 @@ var Sse = {
|
|
|
1430
1448
|
clearAllTimers();
|
|
1431
1449
|
route.continue().catch(() => {
|
|
1432
1450
|
});
|
|
1433
|
-
|
|
1451
|
+
safeReject2(e);
|
|
1434
1452
|
}
|
|
1435
1453
|
};
|
|
1436
|
-
page.route(urlPattern, routeHandler).catch(
|
|
1454
|
+
page.route(urlPattern, routeHandler).catch(safeReject2);
|
|
1437
1455
|
});
|
|
1438
1456
|
const timeoutPromise = new Promise((_, reject) => {
|
|
1439
1457
|
initialTimer = setTimeout(() => {
|
|
@@ -1446,12 +1464,12 @@ var Sse = {
|
|
|
1446
1464
|
clearAllTimers();
|
|
1447
1465
|
if (onTimeout) {
|
|
1448
1466
|
try {
|
|
1449
|
-
onTimeout(error,
|
|
1467
|
+
onTimeout(error, (err) => safeReject(err));
|
|
1450
1468
|
} catch (e) {
|
|
1451
|
-
|
|
1469
|
+
safeReject(e);
|
|
1452
1470
|
}
|
|
1453
1471
|
} else {
|
|
1454
|
-
|
|
1472
|
+
safeReject(error);
|
|
1455
1473
|
}
|
|
1456
1474
|
}
|
|
1457
1475
|
}, initialTimeout);
|
|
@@ -1464,12 +1482,12 @@ var Sse = {
|
|
|
1464
1482
|
clearAllTimers();
|
|
1465
1483
|
if (onTimeout) {
|
|
1466
1484
|
try {
|
|
1467
|
-
onTimeout(error,
|
|
1485
|
+
onTimeout(error, (err) => safeReject(err));
|
|
1468
1486
|
} catch (e) {
|
|
1469
|
-
|
|
1487
|
+
safeReject(e);
|
|
1470
1488
|
}
|
|
1471
1489
|
} else {
|
|
1472
|
-
|
|
1490
|
+
safeReject(error);
|
|
1473
1491
|
}
|
|
1474
1492
|
}, overallTimeout);
|
|
1475
1493
|
});
|
|
@@ -1480,20 +1498,7 @@ var Sse = {
|
|
|
1480
1498
|
const racePromise = Promise.race([workPromise, timeoutPromise]);
|
|
1481
1499
|
racePromise.catch(() => {
|
|
1482
1500
|
});
|
|
1483
|
-
|
|
1484
|
-
if (isCancelled) return;
|
|
1485
|
-
isCancelled = true;
|
|
1486
|
-
clearAllTimers();
|
|
1487
|
-
if (routeHandler) {
|
|
1488
|
-
try {
|
|
1489
|
-
await page.unroute(urlPattern, routeHandler);
|
|
1490
|
-
logger8.info("[MITM] \u5DF2\u53D6\u6D88 SSE \u6D41\u76D1\u542C");
|
|
1491
|
-
} catch (e) {
|
|
1492
|
-
logger8.debug("[MITM] \u53D6\u6D88\u76D1\u542C\u65F6\u51FA\u9519\uFF08\u53EF\u80FD\u5DF2\u53D6\u6D88\uFF09");
|
|
1493
|
-
}
|
|
1494
|
-
}
|
|
1495
|
-
};
|
|
1496
|
-
return [racePromise, cancel];
|
|
1501
|
+
return racePromise;
|
|
1497
1502
|
}
|
|
1498
1503
|
};
|
|
1499
1504
|
|