Skip to content

Commit 0f30b29

Browse files
committed
any body
1 parent 8fdec47 commit 0f30b29

File tree

1 file changed

+16
-54
lines changed
  • packages/rrweb/src/plugins/network/record

1 file changed

+16
-54
lines changed

packages/rrweb/src/plugins/network/record/index.ts

Lines changed: 16 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { IWindow, listenerHandler, RecordPlugin } from '@rrweb/types';
22
import { patch } from '../../../utils';
3-
import { stringify, StringifyOptions } from '../../utils/stringify';
43
import { findLast } from '../../utils/find-last';
54

65
export type InitiatorType =
@@ -29,20 +28,8 @@ export type InitiatorType =
2928
type NetworkRecordOptions = {
3029
initiatorTypes?: InitiatorType[];
3130
ignoreRequestFn?: (data: NetworkRequest) => boolean;
32-
recordHeaders?:
33-
| boolean
34-
| StringifyOptions
35-
| {
36-
request: boolean | StringifyOptions;
37-
response: boolean | StringifyOptions;
38-
};
39-
recordBody?:
40-
| boolean
41-
| StringifyOptions
42-
| {
43-
request: boolean | StringifyOptions;
44-
response: boolean | StringifyOptions;
45-
};
31+
recordHeaders?: boolean | { request: boolean; response: boolean };
32+
recordBody?: boolean | { request: boolean; response: boolean };
4633
recordInitialRequests?: boolean;
4734
};
4835

@@ -86,9 +73,9 @@ type NetworkRequest = {
8673
startTime: number;
8774
endTime: number;
8875
requestHeaders?: Headers;
89-
requestBody?: string | null;
76+
requestBody?: unknown;
9077
responseHeaders?: Headers;
91-
responseBody?: string | null;
78+
responseBody?: unknown;
9279
};
9380

9481
export type NetworkData = {
@@ -265,12 +252,7 @@ function initXhrObserver(
265252
if (body === undefined || body === null) {
266253
networkRequest.requestBody = null;
267254
} else {
268-
networkRequest.requestBody = stringify(
269-
body,
270-
typeof recordRequestBody === 'object'
271-
? recordRequestBody
272-
: undefined,
273-
);
255+
networkRequest.requestBody = body;
274256
}
275257
}
276258
after = win.performance.now();
@@ -295,20 +277,10 @@ function initXhrObserver(
295277
});
296278
}
297279
if (recordResponseBody) {
298-
if (!xhr.response) {
280+
if (xhr.response === undefined || xhr.response === null) {
299281
networkRequest.responseBody = null;
300282
} else {
301-
try {
302-
const objBody = JSON.parse(xhr.response as string) as object;
303-
networkRequest.responseBody = stringify(
304-
objBody,
305-
typeof recordResponseBody === 'object'
306-
? recordResponseBody
307-
: undefined,
308-
);
309-
} catch {
310-
networkRequest.responseBody = xhr.response as string;
311-
}
283+
networkRequest.responseBody = xhr.response;
312284
}
313285
}
314286
getRequestPerformanceEntry(
@@ -395,12 +367,7 @@ function initFetchObserver(
395367
if (req.body === undefined || req.body === null) {
396368
networkRequest.requestBody = null;
397369
} else {
398-
networkRequest.requestBody = stringify(
399-
req.body,
400-
typeof recordRequestBody === 'object'
401-
? recordRequestBody
402-
: undefined,
403-
);
370+
networkRequest.requestBody = req.body;
404371
}
405372
}
406373
after = win.performance.now();
@@ -413,21 +380,16 @@ function initFetchObserver(
413380
});
414381
}
415382
if (recordResponseBody) {
416-
const reqBody = await res.clone().text();
417-
if (!reqBody) {
383+
let body: string | undefined;
384+
try {
385+
body = await res.clone().text();
386+
} catch {
387+
//
388+
}
389+
if (res.body === undefined || res.body === null) {
418390
networkRequest.responseBody = null;
419391
} else {
420-
try {
421-
const objBody = JSON.parse(reqBody) as object;
422-
networkRequest.responseBody = stringify(
423-
objBody,
424-
typeof recordResponseBody === 'object'
425-
? recordResponseBody
426-
: undefined,
427-
);
428-
} catch {
429-
networkRequest.responseBody = reqBody;
430-
}
392+
networkRequest.responseBody = body;
431393
}
432394
}
433395
return res;

0 commit comments

Comments
 (0)