@mock-filelist/filelist
Version:
This package is a mock generator of FileList and File type object.
101 lines (95 loc) • 3.2 kB
TypeScript
type FileSourceBase = {
mimeType: string;
name: string;
};
type BlobFileSource = FileSourceBase & {
blob: Blob;
};
type LocalFileSource = FileSourceBase & {
filePath: string;
};
type RemoteFileSource = FileSourceBase & {
url: string;
};
interface LocalFileListBuilderType {
addBlob(file: BlobFileSource): this;
addBlobs(files: BlobFileSource[]): this;
addFile(file: LocalFileSource): this;
addFiles(files: LocalFileSource[]): this;
addFileObject(file: File): this;
addFileObjects(files: File[]): this;
build(): FileList;
buildFileArray(): File[];
}
interface RemoteFileListBuilderType {
addBlob(file: BlobFileSource): this;
addBlobs(files: BlobFileSource[]): this;
addFile(file: RemoteFileSource): Promise<this>;
addFiles(files: RemoteFileSource[]): Promise<this>;
addFileObject(file: File): this;
addFileObjects(files: File[]): this;
build(): FileList;
buildFileArray(): File[];
}
interface LocalFileBuilderType {
addBlob(file: BlobFileSource): this;
addFile(file: LocalFileSource): this;
addFileObject(file: File): this;
build(): File;
}
interface RemoteFileBuilderType {
addBlob(file: BlobFileSource): this;
addFile(file: RemoteFileSource): Promise<this>;
addFileObject(file: File): this;
build(): File;
}
interface MergeFileListBuilderType {
addFileObjects(files: Iterable<File>): this;
build(): FileList;
buildFileArray(): File[];
}
declare class LocalFileListBuilder implements LocalFileListBuilderType {
private files;
addBlob(blob: BlobFileSource): this;
addBlobs(blobs: BlobFileSource[]): this;
addFile(file: LocalFileSource): this;
addFiles(files: LocalFileSource[]): this;
addFileObject(file: File): this;
addFileObjects(files: Iterable<File>): this;
build(): FileList;
buildFileArray(): File[];
}
declare class LocalFileBuilder implements LocalFileBuilderType {
private file;
constructor();
addBlob(blob: BlobFileSource): this;
addFile(file: LocalFileSource): this;
addFileObject(file: File): this;
build(): File;
}
declare class RemoteFileListBuilder implements RemoteFileListBuilderType {
private files;
addBlob(blob: BlobFileSource): this;
addBlobs(blobs: BlobFileSource[]): this;
addFile(file: RemoteFileSource): Promise<this>;
addFiles(files: RemoteFileSource[]): Promise<this>;
addFileObject(file: File): this;
addFileObjects(files: Iterable<File>): this;
build(): FileList;
buildFileArray(): File[];
}
declare class RemoteFileBuilder implements RemoteFileBuilderType {
private file;
constructor();
addBlob(blob: BlobFileSource): this;
addFile(file: RemoteFileSource): Promise<this>;
addFileObject(file: File): this;
build(): File;
}
declare class MergeFileListBuilder implements MergeFileListBuilderType {
private files;
addFileObjects(files: Iterable<File>): this;
build(): FileList;
buildFileArray(): File[];
}
export { type BlobFileSource, type FileSourceBase, LocalFileBuilder, LocalFileListBuilder, type LocalFileSource, MergeFileListBuilder, RemoteFileBuilder, RemoteFileListBuilder, type RemoteFileSource };