@fluwa-tool/sdk 1.0.26 → 1.0.27
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.
|
@@ -19,6 +19,7 @@ export declare class XMLHttpRequestInterceptor implements IXMLHttpRequestInterce
|
|
|
19
19
|
private originalSend;
|
|
20
20
|
private originalSetRequestHeader;
|
|
21
21
|
private isInstalled;
|
|
22
|
+
private isIntercepting;
|
|
22
23
|
constructor(logger: ILogger, requestLogger: IRequestLogger, mockResolver: IMockResolver, sessionId: string, appName: string);
|
|
23
24
|
install(): void;
|
|
24
25
|
uninstall(): void;
|
|
@@ -14,6 +14,7 @@ class XMLHttpRequestInterceptor {
|
|
|
14
14
|
this.sessionId = sessionId;
|
|
15
15
|
this.appName = appName;
|
|
16
16
|
this.isInstalled = false;
|
|
17
|
+
this.isIntercepting = false; // Flag para prevenir re-intercepção
|
|
17
18
|
}
|
|
18
19
|
install() {
|
|
19
20
|
if (this.isInstalled) {
|
|
@@ -54,6 +55,10 @@ class XMLHttpRequestInterceptor {
|
|
|
54
55
|
this.originalSend = originalXHR.send;
|
|
55
56
|
originalXHR.send = function (body) {
|
|
56
57
|
const xhr = this;
|
|
58
|
+
// Evitar re-intercepção: se já estamos interceptando, usar send original
|
|
59
|
+
if (self.isIntercepting) {
|
|
60
|
+
return self.originalSend.apply(this, [body]);
|
|
61
|
+
}
|
|
57
62
|
const method = (xhr._fluwaMethod || 'GET');
|
|
58
63
|
const url = xhr._fluwaUrl;
|
|
59
64
|
const requestId = xhr._fluwaRequestId;
|
|
@@ -69,6 +74,8 @@ class XMLHttpRequestInterceptor {
|
|
|
69
74
|
appName: self.appName,
|
|
70
75
|
source: types_1.RequestSource.REAL,
|
|
71
76
|
};
|
|
77
|
+
// Marcar que estamos interceptando para evitar re-intercepção
|
|
78
|
+
self.isIntercepting = true;
|
|
72
79
|
// Verificar se há mock
|
|
73
80
|
self.mockResolver.resolve(method, url)
|
|
74
81
|
.then((mockResponse) => {
|
|
@@ -110,6 +117,8 @@ class XMLHttpRequestInterceptor {
|
|
|
110
117
|
const duration = Date.now() - (xhr._fluwaStartTime || 0);
|
|
111
118
|
requestMetadata.duration = duration;
|
|
112
119
|
self.requestLogger.logComplete(requestMetadata).catch(() => { });
|
|
120
|
+
// Restaurar a flag quando requisição completar
|
|
121
|
+
self.isIntercepting = false;
|
|
113
122
|
}
|
|
114
123
|
// Chamar handler original
|
|
115
124
|
if (originalOnReadyStateChange) {
|