diff options
Diffstat (limited to 'www/external/screwdriver.js')
| -rw-r--r-- | www/external/screwdriver.js | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/www/external/screwdriver.js b/www/external/screwdriver.js deleted file mode 100644 index c6733776..00000000 --- a/www/external/screwdriver.js +++ /dev/null @@ -1,151 +0,0 @@ -;(function() { - - if(typeof Blob === 'undefined') - return console.warn('Screw-FileReader is only meant to work in those' + - 'engine who already has some basic support for blob') - - var blob = Blob.prototype - var fullStreamSupport = false - var basicStreamSupport = false - var fetchTransform = false - var URL = window.URL || window.webkitURL - - function promisify(obj) { - return new Promise(function(resolve, reject) { - obj.onload = - obj.onerror = function(evt) { - obj.onload = - obj.onerror = null - - evt.type === 'load' - ? resolve(obj.result || obj) - : reject(obj.error) - } - }) - } - - function toImage(url) { - var img = new Image - img.src = url - return promisify(img) - } - - try { - new ReadableStream({}) - basicStreamSupport = true - } catch (e) {} - - try { - new ReadableStream({type: 'bytes'}) - fullStreamSupport = true - } catch (e) {} - - try { - (new Response(new Blob)).getReader() - fetchTransform = true - } catch (e) {} - - if(!blob.arrayBuffer) { - blob.arrayBuffer = function arrayBuffer() { - var fr = new FileReader - fr.readAsArrayBuffer(this) - return promisify(fr) - } - } - - if(!blob.text) { - blob.text = function text() { - var fr = new FileReader - fr.readAsText(this) - return promisify(fr) - } - } - - if(!blob.dataURL) { - blob.dataURL = function dataURL() { - var fr = new FileReader - fr.readAsDataURL(this) - return promisify(fr) - } - } - - if(!blob.url) { - blob.url = function url() { - return URL ? URL.createObjectURL(this) : null - } - } - - if(!blob.json) { - blob.json = function json() { - return this.text().then(JSON.parse) - } - } - - if(!blob.image) { - blob.image = function image() { - return Promise.resolve(this.url() || this.dataURL()).then(toImage) - } - } - - if(!blob.stream) { - blob.stream = - - fullStreamSupport ? function stream() { - var position = 0 - var blob = this - - return new ReadableStream({ - type: 'bytes', - autoAllocateChunkSize: 524288, - - pull: function (controller) { - var v = controller.byobRequest.view - var chunk = blob.slice(position, position + v.byteLength) - return chunk.arrayBuffer() - .then(function (buffer) { - let uint8array = new Uint8Array(buffer) - let bytesRead = uint8array.byteLength - - position += bytesRead - v.set(uint8array) - controller.byobRequest.respond(bytesRead) - - if(position >= blob.size) - controller.close() - }) - } - }) - }: - - // basic stream support - basicStreamSupport ? function stream(blob){ - var position = 0 - var blob = this - - return new ReadableStream({ - pull: function (controller) { - var chunk = blob.slice(position, position + 524288) - - return chunk.arrayBuffer().then(function (buffer) { - position += buffer.byteLength - let uint8array = new Uint8Array(buffer) - controller.enqueue(uint8array) - - if(position == blob.size) - controller.close() - }) - } - }) - }: - - // fetchTransform - fetchTransform ? function stream() { - return (new Response(this)).body - }: - - function stream() { - throw new Error('Include https://github.com/creatorrr/web-streams-polyfill') - } - } - -}()); |
