@theia/filesystem
Version:
Theia - FileSystem Extension
108 lines • 4.23 kB
TypeScript
import { FileChange, FileDeleteOptions, FileOverwriteOptions, FileSystemProviderCapabilities, FileSystemProviderWithFileReadWriteCapability, FileSystemProviderWithFileFolderCopyCapability, FileSystemProviderWithOpenReadWriteCloseCapability, FileType, FileWriteOptions, Stat, WatchOptions, FileOpenOptions, FileUpdateOptions, FileUpdateResult, type FileReadStreamOptions } from '../common/files';
import { Event, URI, Disposable, DisposableCollection, type CancellationToken } from '@theia/core';
import { EncodingService } from '@theia/core/lib/common/encoding-service';
import { TextDocumentContentChangeEvent } from '@theia/core/shared/vscode-languageserver-protocol';
import { OPFSInitialization } from './opfs-filesystem-initialization';
import { ReadableStreamEvents } from '@theia/core/lib/common/stream';
export declare class OPFSFileSystemProvider implements Disposable, FileSystemProviderWithFileReadWriteCapability, FileSystemProviderWithOpenReadWriteCloseCapability, FileSystemProviderWithFileFolderCopyCapability {
private readonly BUFFER_SIZE;
capabilities: FileSystemProviderCapabilities;
onDidChangeCapabilities: Event<void>;
private readonly onDidChangeFileEmitter;
readonly onDidChangeFile: Event<readonly FileChange[]>;
readonly onFileWatchError: Event<void>;
protected readonly initialization: OPFSInitialization;
protected readonly encodingService: EncodingService;
private fs;
private initialized;
protected readonly toDispose: DisposableCollection;
/**
* Initializes the OPFS file system provider
*/
protected init(): void;
/**
* Watches a resource for file system changes
*/
watch(resource: URI, opts: WatchOptions): Disposable;
/**
* Creates an index from the map of entries
*/
createIndex(entries: Map<URI, Uint8Array>): Promise<void>;
/**
* Retrieves the current file system index
*/
index(): Promise<Map<URI, Stat>>;
/**
* Clears the file system
*/
clear(): Promise<void>;
/**
* Checks if a resource exists
*/
exists(resource: URI): Promise<boolean>;
/**
* Gets file system statistics for a resource
*/
stat(resource: URI): Promise<Stat>;
/**
* Creates a directory
*/
mkdir(resource: URI): Promise<void>;
/**
* Reads directory contents
*/
readdir(resource: URI): Promise<[string, FileType][]>;
/**
* Deletes a resource
*/
delete(resource: URI, opts: FileDeleteOptions): Promise<void>;
/**
* Renames a resource from one location to another
*/
rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
/**
* Copies a resource from one location to another
*/
copy(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
/**
* Reads file content as binary data
*/
readFile(resource: URI): Promise<Uint8Array>;
/**
* Reads file content as a stream
*/
readFileStream(resource: URI, opts: FileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
/**
* Writes binary content to a file
*/
writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
/**
* Opens a file and returns a file descriptor
*/
open(resource: URI, opts: FileOpenOptions): Promise<number>;
/**
* Closes a file descriptor
*/
close(fd: number): Promise<void>;
/**
* Reads data from a file descriptor
*/
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
/**
* Writes data to a file descriptor
*/
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
/**
* Updates a text file with content changes
*/
updateFile(resource: URI, changes: TextDocumentContentChangeEvent[], opts: FileUpdateOptions): Promise<FileUpdateResult>;
/**
* Handles file system change events from BroadcastChannel
*/
private handleFileSystemChange;
/**
* Disposes the file system provider
*/
dispose(): void;
}
//# sourceMappingURL=opfs-filesystem-provider.d.ts.map