UNPKG

@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
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'>;