UNPKG

@mock-filelist/filelist

Version:

This package is a mock generator of FileList and File type object.

1 lines 9.9 kB
{"version":3,"sources":["../src/lib/types/helper.ts","../src/lib/local.ts","../src/lib/remote.ts","../src/lib/merge.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { LocalFileSource, RemoteFileSource } from './args';\n\n/* Build Helper Function */\nexport const buildFile = (file: File | undefined): File => {\n if (typeof file === 'undefined') {\n throw new Error('File is not defined.');\n }\n return file;\n};\n\nexport const buildFileList = (files: File[]): FileList => {\n const dataTransfer = new DataTransfer();\n for (const file of files) {\n dataTransfer.items.add(file);\n }\n return dataTransfer.files;\n};\n\n/* Local Class Helper Function */\nexport const localFileSourceConverter = (file: LocalFileSource): File => {\n const buffer = readFileSync(file.filePath);\n const blob = new Blob([buffer], { type: file.mimeType });\n return new File([blob], file.name, {\n type: file.mimeType,\n });\n};\n\n/* Remote Class Helper Function */\nexport const remoteFileSourceConverter = async (source: RemoteFileSource): Promise<File> => {\n const object = await fetch(source.url)\n .then((response) => {\n if (!response.ok) {\n throw new Error(\n `Failed to fetch url: ${source.url}, status: ${response.status}, statusText: ${response.statusText}.`\n );\n }\n return response.blob();\n })\n .then((blob) => {\n return new File([blob], source.name, { type: source.mimeType });\n });\n return object;\n};\n","import { BlobFileSource, LocalFileSource } from './types/args';\nimport { LocalFileBuilderType, LocalFileListBuilderType } from './types/builder';\nimport { buildFile, buildFileList, localFileSourceConverter } from './types/helper';\n\nexport class LocalFileListBuilder implements LocalFileListBuilderType {\n private files: File[] = [];\n\n addBlob(blob: BlobFileSource): this {\n const object = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n this.files.push(object);\n return this;\n }\n\n addBlobs(blobs: BlobFileSource[]): this {\n for (const blob of blobs) {\n const object = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n this.files.push(object);\n }\n return this;\n }\n\n addFile(file: LocalFileSource): this {\n const object = localFileSourceConverter(file);\n this.files.push(object);\n return this;\n }\n\n addFiles(files: LocalFileSource[]): this {\n for (const file of files) {\n const object = localFileSourceConverter(file);\n this.files.push(object);\n }\n return this;\n }\n\n addFileObject(file: File): this {\n this.files.push(file);\n return this;\n }\n\n addFileObjects(files: Iterable<File>): this {\n for (const file of files) {\n this.files.push(file);\n }\n return this;\n }\n\n build(): FileList {\n return buildFileList(this.files);\n }\n\n buildFileArray(): File[] {\n return this.files;\n }\n}\n\nexport class LocalFileBuilder implements LocalFileBuilderType {\n private file: File | undefined;\n constructor() {\n this.file = undefined;\n }\n\n addBlob(blob: BlobFileSource): this {\n this.file = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n return this;\n }\n\n addFile(file: LocalFileSource): this {\n this.file = localFileSourceConverter(file);\n return this;\n }\n\n addFileObject(file: File): this {\n this.file = file;\n return this;\n }\n\n build(): File {\n return buildFile(this.file);\n }\n}\n","import { BlobFileSource, RemoteFileSource } from './types/args';\nimport { RemoteFileBuilderType, RemoteFileListBuilderType } from './types/builder';\nimport { buildFile, buildFileList, remoteFileSourceConverter } from './types/helper';\n\n/* Remote Class */\nexport class RemoteFileListBuilder implements RemoteFileListBuilderType {\n private files: File[] = [];\n\n addBlob(blob: BlobFileSource): this {\n const object = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n this.files.push(object);\n return this;\n }\n\n addBlobs(blobs: BlobFileSource[]): this {\n for (const blob of blobs) {\n const object = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n this.files.push(object);\n }\n return this;\n }\n\n async addFile(file: RemoteFileSource): Promise<this> {\n const object = await remoteFileSourceConverter(file);\n this.files.push(object);\n return this;\n }\n\n async addFiles(files: RemoteFileSource[]): Promise<this> {\n for (const file of files) {\n const object = await remoteFileSourceConverter(file);\n this.files.push(object);\n }\n return this;\n }\n\n addFileObject(file: File): this {\n this.files.push(file);\n return this;\n }\n\n addFileObjects(files: Iterable<File>): this {\n for (const file of files) {\n this.files.push(file);\n }\n return this;\n }\n\n build(): FileList {\n return buildFileList(this.files);\n }\n\n buildFileArray(): File[] {\n return this.files;\n }\n}\n\nexport class RemoteFileBuilder implements RemoteFileBuilderType {\n private file: File | undefined;\n constructor() {\n this.file = undefined;\n }\n\n addBlob(blob: BlobFileSource): this {\n this.file = new File([blob.blob], blob.name, {\n type: blob.mimeType,\n });\n return this;\n }\n\n async addFile(file: RemoteFileSource): Promise<this> {\n this.file = await remoteFileSourceConverter(file);\n return this;\n }\n\n addFileObject(file: File): this {\n this.file = file;\n return this;\n }\n\n build(): File {\n return buildFile(this.file);\n }\n}\n","import { MergeFileListBuilderType } from './types/builder';\nimport { buildFileList } from './types/helper';\n\nexport class MergeFileListBuilder implements MergeFileListBuilderType {\n private files: File[] = [];\n\n addFileObjects(files: Iterable<File>): this {\n for (const file of files) {\n this.files.push(file);\n }\n return this;\n }\n\n build(): FileList {\n return buildFileList(this.files);\n }\n\n buildFileArray(): File[] {\n return this.files;\n }\n}\n"],"mappings":"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","names":[]}