MOBILE-2642 desktop: Fix write file in chunks

main
dpalou 2018-09-28 13:46:17 +02:00
parent 8f99fab2e4
commit 06bc1c1bfe
1 changed files with 15 additions and 6 deletions

View File

@ -592,13 +592,22 @@ export class FileWriterMock {
* @param {Buffer} data The data to write. * @param {Buffer} data The data to write.
*/ */
protected writeFile(data: Buffer): void { protected writeFile(data: Buffer): void {
this.fs.writeFile(this.localURL, data, (err) => { /* Create a write stream so we can specify where to start writing. Node's Writable stream doesn't allow specifying the
if (err) { position once it's been created, that's why we need to create it everytime write is called. */
this.onerror && this.onerror(err); const stream = this.fs.createWriteStream(this.localURL, {flags: 'r+', start: this.position});
} else {
this.onwrite && this.onwrite(); stream.on('error', (err) => {
} this.onerror && this.onerror(err);
});
stream.end(data, () => {
// Update the position.
this.position += data.length;
this.onwrite && this.onwrite();
this.onwriteend && this.onwriteend(); this.onwriteend && this.onwriteend();
stream.destroy();
}); });
this.onwritestart && this.onwritestart(); this.onwritestart && this.onwritestart();