e2ed
Version:
E2E testing framework over Playwright
30 lines (29 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRequestFromPlaywrightRequest = void 0;
const node_querystring_1 = require("node:querystring");
const node_url_1 = require("node:url");
const log_1 = require("../log");
const parse_1 = require("../parse");
/**
* Get request object from the original Playwright request object.
* If `isRequestBodyInJsonFormat` is `true`, then parses body as JSON.
* If `isRequestBodyInJsonFormat` is `false`, then returns body as is.
* If `isRequestBodyInJsonFormat` is `undefined`, then safely tries to parse body as JSON.
* @internal
*/
const getRequestFromPlaywrightRequest = (playwrightRequest, isRequestBodyInJsonFormat) => {
const url = playwrightRequest.url();
const { search } = new node_url_1.URL(url);
const method = playwrightRequest.method().toUpperCase();
const query = (0, node_querystring_1.parse)(search ? search.slice(1) : '');
const body = playwrightRequest.postData();
const { value: requestBody, hasParseError } = (0, parse_1.parseValueAsJsonIfNeeded)(body, isRequestBodyInJsonFormat);
if (hasParseError) {
(0, log_1.log)('Request body is not in JSON format', { body, logEventStatus: "failed" /* LogEventStatus.Failed */, url }, 8 /* LogEventType.InternalUtil */);
}
const requestHeaders = playwrightRequest.headers();
const utcTimeInMs = Date.now();
return { method, query, requestBody, requestHeaders, url, utcTimeInMs };
};
exports.getRequestFromPlaywrightRequest = getRequestFromPlaywrightRequest;