@akanass/rx-file-upload
Version:
Library to upload a file in the browser and send it fully or in several chunks to the server.
25 lines (24 loc) • 1.17 kB
TypeScript
import { AjaxConfig, AjaxError, AjaxResponse } from 'rxjs/ajax';
import { Observable } from 'rxjs';
export interface RxFileUpload {
progress$: Observable<RxFileUploadProgressData>;
upload<T>(oneFileOrMultipleFiles: File | File[], additionalFormData?: RxFileUploadAdditionalFormData): Observable<RxFileUploadResponse<T>>;
}
export declare type RxFileUploadConfig = Omit<AjaxConfig, 'body' | 'async' | 'createXHR' | 'progressSubscriber' | 'includeUploadProgress' | 'includeDownloadProgress'> & {
chunkSize?: number;
addChecksum?: boolean;
useChunks?: boolean;
disableProgressCompletion?: boolean;
};
export declare type RxFileUploadAdditionalFormData = {
readonly fieldName: string;
readonly data: any;
};
export declare type RxFileUploadProgressData = {
readonly progress: number;
readonly fileIndex?: number;
};
export declare type RxFileUploadResponse<T> = Omit<AjaxResponse<T>, 'responseType' | 'loaded' | 'total' | 'originalEvent' | 'xhr' | 'request' | 'type'> & {
readonly fileIndex?: number;
};
export declare type RxFileUploadError = Omit<AjaxError, 'xhr' | 'message' | 'name' | 'responseType' | 'request' | 'stack'>;