版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

ResourceFetchHandler.js 1.7 KiB

1 год назад
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const RelativeURL_1 = __importDefault(require("../location/RelativeURL"));
  7. const DOMException_1 = __importDefault(require("../exception/DOMException"));
  8. /**
  9. * Helper class for performing fetch of resources.
  10. */
  11. class ResourceFetchHandler {
  12. /**
  13. * Returns resource data asynchronously.
  14. *
  15. * @param document Document.
  16. * @param url URL.
  17. * @returns Response.
  18. */
  19. static async fetch(document, url) {
  20. const response = await document.defaultView.fetch(url);
  21. if (!response.ok) {
  22. throw new DOMException_1.default(`Failed to perform request to "${url}". Status code: ${response.status}`);
  23. }
  24. return await response.text();
  25. }
  26. /**
  27. * Returns resource data synchronously.
  28. *
  29. * @param document Document.
  30. * @param url URL.
  31. * @returns Response.
  32. */
  33. static fetchSync(document, url) {
  34. // We want to only load SyncRequest when it is needed to improve performance and not have direct dependencies to server side packages.
  35. const absoluteURL = RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url).href;
  36. const xhr = new document.defaultView.XMLHttpRequest();
  37. xhr.open('GET', absoluteURL, false);
  38. xhr.send();
  39. if (xhr.status !== 200) {
  40. throw new DOMException_1.default(`Failed to perform request to "${absoluteURL}". Status code: ${xhr.status}`);
  41. }
  42. return xhr.responseText;
  43. }
  44. }
  45. exports.default = ResourceFetchHandler;
  46. //# sourceMappingURL=ResourceFetchHandler.js.map