Sha256: 91f07411c0ec6368d11de3970e0d60981f13519b83dd58e3df0d04e975c53811
Contents?: true
Size: 1.3 KB
Versions: 26
Compression:
Stored size: 1.3 KB
Contents
import { isResponseWithoutBody } from '../../../utils/responseUtils' /** * Creates a Fetch API `Response` instance from the given * `XMLHttpRequest` instance and a response body. */ export function createResponse( request: XMLHttpRequest, body: BodyInit | null ): Response { /** * Handle XMLHttpRequest responses that must have null as the * response body when represented using Fetch API Response. * XMLHttpRequest response will always have an empty string * as the "request.response" in those cases, resulting in an error * when constructing a Response instance. * @see https://github.com/mswjs/interceptors/issues/379 */ const responseBodyOrNull = isResponseWithoutBody(request.status) ? null : body return new Response(responseBodyOrNull, { status: request.status, statusText: request.statusText, headers: createHeadersFromXMLHttpReqestHeaders( request.getAllResponseHeaders() ), }) } function createHeadersFromXMLHttpReqestHeaders(headersString: string): Headers { const headers = new Headers() const lines = headersString.split(/[\r\n]+/) for (const line of lines) { if (line.trim() === '') { continue } const [name, ...parts] = line.split(': ') const value = parts.join(': ') headers.append(name, value) } return headers }
Version data entries
26 entries across 26 versions & 1 rubygems