w3c-blob
Version:
w3c dom blob api in node and browser
27 lines (22 loc) • 723 B
JavaScript
module.exports = Blob
var Buffer = require('buffer').Buffer
, str = {}.toString.call.bind({}.toString)
function Blob(parts, properties) {
properties = properties || {}
this.type = properties.type || ''
var size = 0
for(var i = 0, len = parts.length; i < len; ++i) {
size += typeof parts[i] === 'string' ? Buffer.byteLength(parts[i]) :
str(parts[i]).indexOf('ArrayBuffer') > -1 ? parts[i].byteLength :
parts[i].buffer ? parts[i].buffer.byteLength :
parts[i].length
}
this.size = size
}
var cons = Blob
, proto = cons.prototype
proto.slice = function(start, end) {
var b = new Blob([], {type: this.type})
b.size = (end || this.size) - (start || 0)
return b
}