summaryrefslogtreecommitdiff
path: root/www/external/screwdriver.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/external/screwdriver.js')
-rw-r--r--www/external/screwdriver.js151
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')
- }
- }
-
-}());