UNPKG

@typespec/ts-http-runtime

Version:

Isomorphic client library for making HTTP requests in node.js and browser.

30 lines 1.26 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { RestError } from "../restError.js"; import { createHttpHeaders } from "../httpHeaders.js"; export function createRestError(messageOrResponse, response) { const resp = typeof messageOrResponse === "string" ? response : messageOrResponse; const internalError = resp.body?.error ?? resp.body; const message = typeof messageOrResponse === "string" ? messageOrResponse : (internalError?.message ?? `Unexpected status code: ${resp.status}`); return new RestError(message, { statusCode: statusCodeToNumber(resp.status), code: internalError?.code, request: resp.request, response: toPipelineResponse(resp), }); } function toPipelineResponse(errorResponse) { return { headers: createHttpHeaders(errorResponse.headers), request: errorResponse.request, status: statusCodeToNumber(errorResponse.status) ?? -1, ...(typeof errorResponse.body === "string" ? { bodyAsText: errorResponse.body } : {}), }; } function statusCodeToNumber(statusCode) { const status = Number.parseInt(statusCode); return Number.isNaN(status) ? undefined : status; } //# sourceMappingURL=restError.js.map