UNPKG

betajs-browser

Version:

BetaJS-Browser is a client-side JavaScript framework for Browser-specific methods.

54 lines (50 loc) 1.9 kB
Scoped.define("module:Blobs", [ "base:Promise" ], function(Promise) { return { createBlobByArrayBufferView: function(arrayBuffer, offset, size, type) { try { return new(window.Blob)([new DataView(arrayBuffer, offset, size)], { type: type }); } catch (err) { try { return new(window.Blob)([new Uint8Array(arrayBuffer, offset, size)], { type: type }); } catch (err2) { var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; var bb = new BlobBuilder(); bb.append(arrayBuffer.slice(offset, offset + size)); return bb.getBlob(type); } } }, loadFileIntoArrayBuffer: function(file) { var promise = Promise.create(); try { var fileReader = new FileReader(); fileReader.onloadend = function(ev) { promise.asyncSuccess(ev.target.result); }; fileReader.readAsArrayBuffer(file.files ? file.files[0] : file); } catch (err) { promise.asyncError(err); } return promise; }, loadFileIntoString: function(file) { var promise = Promise.create(); try { var fileReader = new FileReader(); fileReader.onloadend = function(ev) { promise.asyncSuccess(ev.target.result); }; fileReader.readAsText(file.files ? file.files[0] : file); } catch (err) { promise.asyncError(err); } return promise; } }; });