Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@filerobot/utils / lib / requestFile.js
Size: Mime:
import RequestError from '@filerobot/utils/lib/RequestError';
var requestFile = function requestFile(url, options) {
  return new Promise(function (resolve, reject) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url);
    xhr.responseType = 'blob';
    if (options !== null && options !== void 0 && options.headers) {
      Object.keys(options.headers).map(function (headerName) {
        return xhr.setRequestHeader(headerName, options.headers[headerName]);
      });
    }
    xhr.onload = function () {
      if (xhr.status === 200) {
        resolve(xhr.response);
      } else {
        reject(new Error("Request error (".concat(xhr.status, ")")));
      }
    };
    xhr.onerror = function () {
      return reject(new RequestError({
        code: xhr.status,
        message: 'Check your internet connection'
      }));
    };
    if (options !== null && options !== void 0 && options.onProgress) {
      xhr.onprogress = function (e) {
        options.onProgress(e.loaded, e.total);
      };
    }
    if (options !== null && options !== void 0 && options.cancel) {
      options.cancel(xhr);
    }
    xhr.send();
  });
};
export default requestFile;