in src/reporters/json.ts [188:230]
export function formatNetworkFields(network: NetworkInfo) {
const { request, response, url, browser } = network;
// Perform redaction on the headers before writing results
if (request?.headers) {
request.headers = redactKeys(request.headers);
}
if (response?.headers) {
response.headers = redactKeys(response.headers);
}
const ecs = {
// URL would be parsed and mapped by heartbeat
url,
user_agent: {
name: browser.name,
version: browser.version,
original: request.headers?.['User-Agent'],
},
http: {
request,
response,
},
tls: formatTLS(response?.securityDetails),
};
const pickItems: Array<keyof NetworkInfo> = [
'browser',
'type',
'isNavigationRequest',
'requestSentTime',
'responseReceivedTime',
'loadEndTime',
'transferSize',
'resourceSize',
'timings',
];
const payload: Partial<NetworkInfo> = pickItems.reduce((acc, value) => {
network[value] && (acc[value] = network[value]);
return acc;
}, {});
return { ecs, payload };
}