UNPKG

@openui5/sap.ui.core

Version:

OpenUI5 Core Library sap.ui.core

66 lines (60 loc) 3.02 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define([ "./fetch", "sap/ui/base/SyncPromise" ], function (fetch, SyncPromise) { "use strict"; function SyncResponseMixin() { var superText = this.text; var superJson = this.json; this.text = function() { return superText().unwrap(); }; this.json = function () { return superJson().unwrap(); }; } /** * Performs a synchronous XMLHttpRequest (XHR) with the provided resource URL and request settings. * It returns a <code>module:sap/base/util/SimpleResponse</code> object, which is * a simplified implementation of the global Response interface, representing the response of the XHR. * * If the request encounters network failures, this method will throw a <code>TypeError</code>. * In case of an HTTP error status (e.g. error status 404), no error will be thrown. The properties * <code>response.ok</code> or <code>response.status</code> can be used to distinguish * a success status from an error status. * * A <code>DOMException</code> will be thrown if the request gets aborted. * To abort a request, an instance of the global <code>AbortSignal</code> must be provided to the settings. * An abort signal can be created via an instance of the <code>AbortController</code>, and then using * the <code>AbortController.signal</code> property. The signal associates the abort controller with the request * and allows it to abort the XHR by calling <code>AbortController.abort()</code>. * * @param {string} resource A string containing the URL to which the request is sent * @param {object} [init] A set of key/value pairs that configure the request. * @param {any} [init.body] Any body that you want to add to your request: this can be a Blob, BufferSource, FormData, URLSearchParams, string, or ReadableStream object. * Note that a request using the GET or HEAD method cannot have a body. * @param {"omit"|"same-origin"|"include"} [init.credentials='same-origin'] Controls what browsers do with credentials. * Must be either 'omit', 'same-origin' or 'include'. * @param {Headers|object} [init.headers] A Headers object or an object with key/value pairs containing the request headers * @param {string} [init.method='GET'] The request method, e.g. 'GET', 'POST' * @param {AbortSignal} [init.signal] An AbortSignal object instance which allows to abort the request * @return {module:sap/base/util/SimpleResponse} Returns a <code>SimpleResponse</code> response object * * @alias module:sap/base/util/syncFetch * @private * @ui5-restricted SAPUI5 Distribution Layer Libraries */ function syncFetch(resource, init) { return fetch(resource, init, { promiseImpl: SyncPromise, responseMixin: SyncResponseMixin }).unwrap(); } syncFetch.ContentTypes = fetch.ContentTypes; return syncFetch; });