|
|
|
|
@ -10,26 +10,16 @@ export default class ChunkedBlob {
|
|
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
|
this.size = 0
|
|
|
|
|
this.ranks = [[]]
|
|
|
|
|
this.ranks = []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
add(b) {
|
|
|
|
|
this.size += blobLength(b)
|
|
|
|
|
this.ranks[0].push(b)
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < this.ranks.length; i++) {
|
|
|
|
|
let rank = this.ranks[i]
|
|
|
|
|
if (rank.length === rankSize) {
|
|
|
|
|
this.ranks[i + 1] = this.ranks[i + 1] || []
|
|
|
|
|
this.ranks[i + 1].push(new Blob(rank))
|
|
|
|
|
this.ranks[i] = []
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.ranks.push(b)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toBlob() {
|
|
|
|
|
let allRanks = [].concat(...this.ranks)
|
|
|
|
|
return new Blob(allRanks)
|
|
|
|
|
return new Blob(this.ranks)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|