59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
export interface FileSystemGetFileOptions {
|
|
create?: boolean
|
|
}
|
|
|
|
interface FileSystemCreateWritableOptions {
|
|
keepExistingData?: boolean
|
|
}
|
|
|
|
interface FileSystemRemoveOptions {
|
|
recursive?: boolean
|
|
}
|
|
|
|
interface FileSystemFileHandle {
|
|
getFile(): Promise<File>;
|
|
|
|
createWritable(options?: FileSystemCreateWritableOptions): Promise<FileSystemWritableFileStream>
|
|
}
|
|
|
|
enum WriteCommandType {
|
|
write = "write",
|
|
seek = "seek",
|
|
truncate = "truncate",
|
|
}
|
|
|
|
interface WriteParams {
|
|
type: WriteCommandType
|
|
size?: number
|
|
position?: number
|
|
data: BufferSource | Blob | string
|
|
}
|
|
|
|
type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams
|
|
|
|
interface FileSystemWritableFileStream extends WritableStream {
|
|
write(data: FileSystemWriteChunkType): Promise<undefined>
|
|
|
|
seek(position: number): Promise<undefined>
|
|
|
|
truncate(size: number): Promise<undefined>
|
|
|
|
close(): Promise<undefined> // should be implemented in WritableStream
|
|
}
|
|
|
|
|
|
export declare interface FileSystemDirectoryHandle {
|
|
getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>
|
|
|
|
removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<undefined>
|
|
|
|
}
|
|
|
|
declare global {
|
|
interface Window {
|
|
|
|
showDirectoryPicker?(): Promise<FileSystemDirectoryHandle>
|
|
}
|
|
}
|
|
|