@caidrive/shared
Version:
caidrive.shared.components
62 lines (61 loc) • 2.03 kB
TypeScript
/**
*
*/
/**
*
*/
interface FileJSON extends Pick<StorageFile, "size" | "filepath" | "originalFilename" | "mimetype" | "hash" | "newFilename"> {
length: number;
mimetype: string | null;
mtime: Date | null;
}
export interface StorageFile {
/**
* The size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'`
* event), this property says how many bytes of the file have been written to disk yet.
*/
size: number;
/**
* The path this file is being written to. You can modify this in the `'fileBegin'` event in case
* you are unhappy with the way formidable generates a temporary path for your files.
*/
filepath: string;
/**
* The name this file had according to the uploading client.
*/
originalFilename: string | null;
/**
* Calculated based on options provided
*/
newFilename: string;
/**
* The mime type of this file, according to the uploading client.
*/
mimetype: string | null;
/**
* A Date object (or `null`) containing the time this file was last written to. Mostly here for
* compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/).
*/
mtime?: Date | null | undefined;
hashAlgorithm: false | "sha1" | "md5" | "sha256";
/**
* If `options.hashAlgorithm` calculation was set, you can read the hex digest out of this var
* (at the end it will be a string).
*/
hash?: string | null;
/**
* This method returns a JSON-representation of the file, allowing you to JSON.stringify() the
* file which is useful for logging and responding to requests.
*
* @link https://github.com/node-formidable/formidable#filetojson
*/
toJSON(): FileJSON;
toString(): string;
}
export type ParsedFiles<U extends string = string> = {
readonly [Prop in U]?: StorageFile[];
};
export type ParsedFields<T extends string = string> = {
readonly [Prop in T]?: string[];
};
export {};