@intuitionrobotics/file-upload
Version:
File Uploader - Express & Typescript based backend framework
45 lines (44 loc) • 1.5 kB
TypeScript
import { ApiWithBody } from "@intuitionrobotics/thunderstorm";
import { DB_Object } from "@intuitionrobotics/firebase";
import { AuditBy, ObjectTS } from "@intuitionrobotics/ts-common";
import { MessageType } from "@intuitionrobotics/push-pub-sub";
export declare const fileUploadedKey = "file-uploaded";
export type Payload_FileUploaded = {
message: string;
result: string;
cause?: any;
};
export type Push_FileUploaded = MessageType<"file-uploaded", {
feId: string;
}, Payload_FileUploaded>;
export declare enum UploadResult {
Success = "Success",
Failure = "Failure"
}
export type Request_Uploader = {
name: string;
mimeType: string;
key?: string;
public?: boolean;
metadata?: ObjectTS;
};
export type BaseUploaderFile = Request_Uploader & {
feId: string;
};
export type DB_Temp_File = DB_Object & BaseUploaderFile & Required<Pick<BaseUploaderFile, "key">> & {
path: string;
_audit: AuditBy;
bucketName: string;
};
export type Request_GetUploadUrl = BaseUploaderFile[];
export type TempSecureUrl = {
secureUrl: string;
tempDoc: DB_Temp_File;
};
export type Body_GetUploadUrlWithBucketName = {
files: BaseUploaderFile[];
bucketName: string;
pathPrefix?: string;
};
export type Api_GetUploadUrl = ApiWithBody<"/v1/upload/get-url", BaseUploaderFile[], TempSecureUrl[]>;
export type Api_GetUploadUrlWithBucketName = ApiWithBody<"/v1/upload/get-url-with-bucket-name", Body_GetUploadUrlWithBucketName, TempSecureUrl[]>;