Parse request bodies eagerly
Summary: Currently the network plugin was always storing the transfer format of our request/ response bodies: a base64 string. However, those are not searchable, and every formatter (and multiple can be invoked in a single view) was responsible for its own decompressing. This diff changes parsing requests / responses into an accurate format: a decompressed, de-base64-ed utf8 string, or a Uint8array for binary data. We will use this in the next diffs to do some more efficient searching Reviewed By: passy Differential Revision: D28200190 fbshipit-source-id: 33a71aeb7b340b58305e97fff4fa5ce472169b25
This commit is contained in:
committed by
Facebook GitHub Bot
parent
fc4a08eb55
commit
72e34bbd0d
@@ -41,6 +41,7 @@ import {
|
||||
formatBytes,
|
||||
formatDuration,
|
||||
requestsToText,
|
||||
decodeBody,
|
||||
} from './utils';
|
||||
import RequestDetails from './RequestDetails';
|
||||
import {URL} from 'url';
|
||||
@@ -329,7 +330,7 @@ function createRequestFromRequestInfo(data: RequestInfo): Request {
|
||||
url: data.url ?? '',
|
||||
domain,
|
||||
requestHeaders: data.headers,
|
||||
requestData: data.data ?? undefined,
|
||||
requestData: decodeBody(data.headers, data.data),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -343,7 +344,7 @@ function updateRequestWithResponseInfo(
|
||||
status: response.status,
|
||||
reason: response.reason,
|
||||
responseHeaders: response.headers,
|
||||
responseData: response.data ?? undefined,
|
||||
responseData: decodeBody(response.headers, response.data),
|
||||
responseIsMock: response.isMock,
|
||||
responseLength: getResponseLength(response),
|
||||
duration: response.timestamp - request.requestTime.getTime(),
|
||||
|
||||
Reference in New Issue
Block a user