Skip to content

Instantly share code, notes, and snippets.

@hrdtbs
Last active October 25, 2021 13:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hrdtbs/946df85daed7d500b71d2301d9c34d5e to your computer and use it in GitHub Desktop.
Save hrdtbs/946df85daed7d500b71d2301d9c34d5e to your computer and use it in GitHub Desktop.
interface ChooseFileSystemEntriesOptionsAccepts {
description?: string;
mimeTypes?: string[];
extensions?: string[];
}
interface ChooseFileSystemEntriesOptions {
type?: 'openFile' | 'saveFile' | 'openDirectory';
multiple?: boolean;
accepts?: ChooseFileSystemEntriesOptionsAccepts[];
excludeAcceptAllOption?: boolean;
}
interface FileSystemHandlePermissionDescriptor {
writable?: boolean;
}
interface FileSystemCreateWriterOptions {
keepExistingData?: boolean;
}
interface FileSystemGetFileOptions {
create?: boolean;
}
interface FileSystemGetDirectoryOptions {
create?: boolean;
}
interface FileSystemRemoveOptions {
recursive?: boolean;
}
enum SystemDirectoryType {
'sandbox',
}
interface GetSystemDirectoryOptions {
type: SystemDirectoryType;
}
interface FileSystemWriter {
write(position: number, data: BufferSource | Blob | string): Promise<void>;
truncate(size: number): Promise<void>;
close(): Promise<void>;
}
interface FileSystemWriterConstructor {
new (): FileSystemWriter;
}
interface FileSystemHandle {
isFile: Readonly<boolean>;
isDirectory: Readonly<boolean>;
name: Readonly<string>;
queryPermission(
descriptor?: FileSystemHandlePermissionDescriptor,
): Promise<PermissionState>;
requestPermission(
descriptor?: FileSystemHandlePermissionDescriptor,
): Promise<PermissionState>;
}
interface FileSystemHandleConstructor {
new (): FileSystemHandle;
}
interface FileSystemFileHandle extends FileSystemHandle {
getFile(): Promise<File>;
createWriter(
options?: FileSystemCreateWriterOptions,
): Promise<FileSystemWriter>;
}
interface FileSystemFileHandleConstructor {
new (): FileSystemFileHandle;
}
interface FileSystemDirectoryHandle extends FileSystemHandle {
getFile(
name: string,
options?: FileSystemGetFileOptions,
): Promise<FileSystemFileHandle>;
getDirectory(
name: string,
options?: FileSystemGetDirectoryOptions,
): Promise<FileSystemDirectoryHandle>;
getEntries(): AsyncIterable<FileSystemFileHandle | FileSystemDirectoryHandle>;
removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;
}
interface FileSystemDirectoryHandleConstructor {
new (): FileSystemDirectoryHandle;
getSystemDirectory(
options: GetSystemDirectoryOptions,
): Promise<FileSystemDirectoryHandle>;
}
interface Window {
chooseFileSystemEntries(
options?: ChooseFileSystemEntriesOptions & { multiple?: false },
): Promise<FileSystemFileHandle>;
chooseFileSystemEntries(
options?: ChooseFileSystemEntriesOptions & { multiple: true },
): Promise<FileSystemFileHandle[]>;
FileSystemHandle: FileSystemHandleConstructor;
FileSystemFileHandle: FileSystemFileHandleConstructor;
FileSystemDirectoryHandle: FileSystemDirectoryHandleConstructor;
FileSystemWriter: FileSystemWriterConstructor;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment