js-uploader
Version:
A JavaScript library for file upload
57 lines (56 loc) • 1.81 kB
TypeScript
import { ID, UploaderOptions, UploadFile, UploadTask } from '../interface';
import { FileDragger, FilePicker } from './modules';
import { Observable } from 'rxjs';
import Base from './Base';
export declare class Uploader extends Base {
readonly id?: ID;
readonly options: UploaderOptions;
readonly taskQueue: UploadTask[];
readonly filePickers: FilePicker[];
readonly fileDraggers: FileDragger[];
private taskHandlerMap;
private upload$;
private subscription;
private uploadSubscription;
private taskSubject;
private action;
private pause$;
private clear$;
constructor(options?: UploaderOptions);
static create(options?: UploaderOptions): Uploader;
private mergeOptions;
private validateOptions;
upload(task?: UploadTask, action?: 'resume' | 'retry'): void;
private checkComplete;
private executeForResult;
resume(task?: UploadTask): void;
retry(task?: UploadTask): void;
pause(task?: UploadTask): void;
cancel(task?: UploadTask): Promise<void | UploadTask>;
clear(): Promise<void>;
cancelFile(item: {
task: UploadTask;
files: UploadFile[];
}): void;
isUploading(): boolean;
hasError(): boolean;
getErrorTasks(): UploadTask[];
isComplete(): boolean;
destory(): void;
private removeTask;
private rebindTaskHandlerEvent;
private getTaskHandler;
private freeHandler;
private putNextTask;
private taskHandlerEventCallback;
private changeUploadTaskStatus;
private restoreTask;
initFilePickersAndDraggers(): void;
private initEventHandler;
add(files: File[]): Observable<{
files: File[];
tasks: UploadTask[];
}>;
addFilesAsync(...files: Array<File>): Promise<UploadTask[]>;
private generateTask;
}