Copy request details

Summary: Copying/Creating a Paste from a network request only copied the domain. Now we are including all request/response data.

Reviewed By: jknoxville

Differential Revision: D15898038

fbshipit-source-id: 570ca5bb76e65b90b2b467856e6d3747682cc20d
This commit is contained in:
Daniel Büchele
2019-06-19 08:57:40 -07:00
committed by Facebook Github Bot
parent 3f1ab6be47
commit 48b690169e

View File

@@ -27,7 +27,11 @@ import {
FlipperPlugin, FlipperPlugin,
} from 'flipper'; } from 'flipper';
import type {Request, RequestId, Response} from './types.js'; import type {Request, RequestId, Response} from './types.js';
import {convertRequestToCurlCommand, getHeaderValue} from './utils.js'; import {
convertRequestToCurlCommand,
getHeaderValue,
decodeBody,
} from './utils.js';
import RequestDetails from './RequestDetails.js'; import RequestDetails from './RequestDetails.js';
import {clipboard} from 'electron'; import {clipboard} from 'electron';
import {URL} from 'url'; import {URL} from 'url';
@@ -266,6 +270,31 @@ function buildRow(request: Request, response: ?Response): ?TableBodyRow {
const domain = url.host + url.pathname; const domain = url.host + url.pathname;
const friendlyName = getHeaderValue(request.headers, 'X-FB-Friendly-Name'); const friendlyName = getHeaderValue(request.headers, 'X-FB-Friendly-Name');
let copyText = `# HTTP request for ${domain} (ID: ${request.id})
## Request
HTTP ${request.method} ${request.url}
${request.headers
.map(({key, value}) => `${key}: ${String(value)}`)
.join('\n')}`;
if (request.data) {
copyText += `\n\n${decodeBody(request)}`;
}
if (response) {
copyText += `
## Response
HTTP ${response.status} ${response.reason}
${response.headers
.map(({key, value}) => `${key}: ${String(value)}`)
.join('\n')}`;
}
if (response) {
copyText += `\n\n${decodeBody(response)}`;
}
return { return {
columns: { columns: {
requestTimestamp: { requestTimestamp: {
@@ -306,7 +335,7 @@ function buildRow(request: Request, response: ?Response): ?TableBodyRow {
key: request.id, key: request.id,
filterValue: `${request.method} ${request.url}`, filterValue: `${request.method} ${request.url}`,
sortKey: request.timestamp, sortKey: request.timestamp,
copyText: request.url, copyText,
highlightOnHover: true, highlightOnHover: true,
}; };
} }