forked from Bremen/ESG
1
0
Fork 0
ESG/wwwroot/BackEnd/assets/vendor/blueimp-load-image/js/load-image-fetch.js

76 lines
2.2 KiB
JavaScript

/*
* JavaScript Load Image Fetch
* https://github.com/blueimp/JavaScript-Load-Image
*
* Copyright 2017, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*/
/* global define, module, require */
;(function (factory) {
'use strict'
if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module:
define(['./load-image', './load-image-meta'], factory)
} else if (typeof module === 'object' && module.exports) {
factory(require('./load-image'), require('./load-image-meta'))
} else {
// Browser globals:
factory(window.loadImage)
}
})(function (loadImage) {
'use strict'
if (typeof fetch !== 'undefined' && typeof Request !== 'undefined') {
loadImage.fetchBlob = function (url, callback, options) {
if (loadImage.hasMetaOption(options)) {
fetch(new Request(url, options))
.then(function (response) {
return response.blob()
})
.then(callback)
.catch(function (err) {
console.log(err) // eslint-disable-line no-console
callback()
})
} else {
callback()
}
}
} else if (
// Check for XHR2 support:
typeof XMLHttpRequest !== 'undefined' &&
typeof ProgressEvent !== 'undefined'
) {
loadImage.fetchBlob = function (url, callback, options) {
if (loadImage.hasMetaOption(options)) {
// eslint-disable-next-line no-param-reassign
options = options || {}
var req = new XMLHttpRequest()
req.open(options.method || 'GET', url)
if (options.headers) {
Object.keys(options.headers).forEach(function (key) {
req.setRequestHeader(key, options.headers[key])
})
}
req.withCredentials = options.credentials === 'include'
req.responseType = 'blob'
req.onload = function () {
callback(req.response)
}
req.onerror = req.onabort = req.ontimeout = function (e) {
console.log(e) // eslint-disable-line no-console
callback()
}
req.send(options.body)
} else {
callback()
}
}
}
})