@@ -3,6 +3,7 @@ import { PromiseQueue } from "./promise-queue";
3
3
4
4
export interface ProgressiveUploadCommonOptions {
5
5
preventEmptyParts ?: boolean ;
6
+ mergeSmallPartsBeforeUpload ?: boolean ;
6
7
}
7
8
8
9
export interface ProgressiveUploaderOptionsWithUploadToken extends ProgressiveUploadCommonOptions , CommonOptions , WithUploadToken { }
@@ -26,20 +27,22 @@ export class ProgressiveUploader extends AbstractUploader<ProgressiveProgressEve
26
27
private queue = new PromiseQueue ( ) ;
27
28
private preventEmptyParts : boolean ;
28
29
private fileName : string ;
30
+ private mergeSmallPartsBeforeUpload : boolean ;
29
31
30
32
constructor ( options : ProgressiveUploaderOptionsWithAccessToken | ProgressiveUploaderOptionsWithUploadToken | ProgressiveUploaderOptionsWithApiKey ) {
31
33
super ( options ) ;
32
34
this . preventEmptyParts = options . preventEmptyParts || false ;
33
35
this . fileName = options . videoName || 'file' ;
36
+ this . mergeSmallPartsBeforeUpload = options . mergeSmallPartsBeforeUpload ?? true ;
34
37
}
35
38
36
39
public uploadPart ( file : Blob ) : Promise < void > {
37
40
this . currentPartBlobsSize += file . size ;
38
41
this . currentPartBlobs . push ( file ) ;
39
42
40
43
if ( ( this . preventEmptyParts && ( this . currentPartBlobsSize - file . size >= MIN_CHUNK_SIZE ) )
41
- || ( ! this . preventEmptyParts && ( this . currentPartBlobsSize >= MIN_CHUNK_SIZE ) ) ) {
42
-
44
+ || ( ! this . preventEmptyParts && ( this . currentPartBlobsSize >= MIN_CHUNK_SIZE ) )
45
+ || ( ! this . mergeSmallPartsBeforeUpload ) ) {
43
46
let toSend : any [ ] ;
44
47
if ( this . preventEmptyParts ) {
45
48
toSend = this . currentPartBlobs . slice ( 0 , - 1 ) ;
0 commit comments