45 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import type { FilePropertyBag } from "./builtin-types.mjs"; | ||
|  | type BlobLikePart = string | ArrayBuffer | ArrayBufferView | BlobLike | DataView; | ||
|  | /** | ||
|  |  * Intended to match DOM Blob, node-fetch Blob, node:buffer Blob, etc. | ||
|  |  * Don't add arrayBuffer here, node-fetch doesn't have it | ||
|  |  */ | ||
|  | interface BlobLike { | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */ | ||
|  |     readonly size: number; | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */ | ||
|  |     readonly type: string; | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */ | ||
|  |     text(): Promise<string>; | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */ | ||
|  |     slice(start?: number, end?: number): BlobLike; | ||
|  | } | ||
|  | /** | ||
|  |  * Intended to match DOM File, node:buffer File, undici File, etc. | ||
|  |  */ | ||
|  | interface FileLike extends BlobLike { | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */ | ||
|  |     readonly lastModified: number; | ||
|  |     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */ | ||
|  |     readonly name?: string | undefined; | ||
|  | } | ||
|  | /** | ||
|  |  * Intended to match DOM Response, node-fetch Response, undici Response, etc. | ||
|  |  */ | ||
|  | export interface ResponseLike { | ||
|  |     url: string; | ||
|  |     blob(): Promise<BlobLike>; | ||
|  | } | ||
|  | export type ToFileInput = FileLike | ResponseLike | Exclude<BlobLikePart, string> | AsyncIterable<BlobLikePart>; | ||
|  | /** | ||
|  |  * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats | ||
|  |  * @param value the raw content of the file.  Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s | ||
|  |  * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible | ||
|  |  * @param {Object=} options additional properties | ||
|  |  * @param {string=} options.type the MIME type of the content | ||
|  |  * @param {number=} options.lastModified the last modified timestamp | ||
|  |  * @returns a {@link File} with the given properties | ||
|  |  */ | ||
|  | export declare function toFile(value: ToFileInput | PromiseLike<ToFileInput>, name?: string | null | undefined, options?: FilePropertyBag | undefined): Promise<File>; | ||
|  | export {}; | ||
|  | //# sourceMappingURL=to-file.d.mts.map
 |