UNPKG

@intuitionrobotics/file-upload

Version:

File Uploader - Express & Typescript based backend framework

49 lines (48 loc) 1.9 kB
import { Module } from "@intuitionrobotics/ts-common"; import { BaseHttpModule_Class, BaseHttpRequest } from "@intuitionrobotics/thunderstorm"; import { BaseUploaderFile, DB_Temp_File, Request_Uploader, TempSecureUrl } from "../../shared/types"; export declare enum FileStatus { ObtainingUrl = "ObtainingUrl", UrlObtained = "UrlObtained", UploadingFile = "UploadingFile", PostProcessing = "PostProcessing", Completed = "Completed", Error = "Error" } export type FileInfo = { status: FileStatus; messageStatus?: string; progress?: number; name: string; request?: BaseHttpRequest<any>; file?: any; fileName?: string; tempDoc?: DB_Temp_File; statusCallBack: (feId: string, status: FileStatus) => void; }; export type FilesToUpload = Request_Uploader & { file: any; onFileStatusChanged: (feId: string, status: FileStatus) => void; }; type Config = { uploadQueueParallelCount?: number; }; export declare abstract class BaseUploaderModule_Class<HttpModule extends BaseHttpModule_Class, CustomConfig extends object = {}> extends Module<Config & CustomConfig> { protected files: { [id: string]: FileInfo; }; private readonly uploadQueue; private httpModule; protected constructor(httpModule: HttpModule, moduleName: string); init(): void; protected abstract subscribeToPush(toSubscribe: TempSecureUrl[]): Promise<void>; getFileInfo<K extends keyof FileInfo>(id: string, key: K): FileInfo[K] | undefined; getFullFileInfo(id: string): FileInfo | undefined; protected setFileInfo<K extends keyof FileInfo>(id: string, key: K, value: FileInfo[K]): void; uploadImpl(files: FilesToUpload[], _bucketName?: string, _pathPrefix?: string): BaseUploaderFile[]; private getUrlEndpoint; private getUrlEndpointWithBucketName; private uploadFiles; private uploadFile; } export {};