UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

23 lines (22 loc) 975 B
import { ResponseError } from "../../error/ResponseError.js"; import { createXMLRequest } from "../../util/http.js"; import { ClientAPIProvider } from "./ClientAPIProvider.js"; /** API provider that always sends request bodies as XML and parses responses as plain text. */ export class XMLAPIProvider extends ClientAPIProvider { _createBodyRequest(method, url, payload, options, caller) { return createXMLRequest(method, url, payload, options, caller); } /** * Parse a text `Response` for an endpoint. * * - Non-2xx responses become `ResponseError`. * - The response body is always returned as raw text. */ async parseResponse(_endpoint, response, caller = this.parseResponse) { const { ok, status } = response; const content = await response.text(); if (!ok) throw new ResponseError(content || `Error ${status}`, { code: status, cause: response, caller }); return content; } }