sussudio
Version:
An unofficial VS Code Internal API
42 lines (41 loc) • 3.04 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Event } from "../../../base/common/event.mjs";
import { Disposable, IDisposable } from "../../../base/common/lifecycle.mjs";
import { IFileSystemProviderWithFileReadWriteCapability, IFileChange, IWatchOptions, IStat, IFileOverwriteOptions, FileType, IFileWriteOptions, IFileDeleteOptions, IFileSystemProviderWithFileReadStreamCapability, IFileReadStreamOptions, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileFolderCopyCapability } from "../../files/common/files.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { CancellationToken } from "../../../base/common/cancellation.mjs";
import { ReadableStreamEvents } from "../../../base/common/stream.mjs";
import { ILogService } from "../../log/common/log.mjs";
/**
* This is a wrapper on top of the local filesystem provider which will
* - Convert the user data resources to file system scheme and vice-versa
* - Enforces atomic reads for user data
*/
export declare class FileUserDataProvider extends Disposable implements IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileFolderCopyCapability {
private readonly fileSystemScheme;
private readonly fileSystemProvider;
private readonly userDataScheme;
private readonly logService;
get capabilities(): number;
readonly onDidChangeCapabilities: Event<void>;
private readonly _onDidChangeFile;
readonly onDidChangeFile: Event<readonly IFileChange[]>;
private readonly watchResources;
constructor(fileSystemScheme: string, fileSystemProvider: IFileSystemProviderWithFileReadWriteCapability & (IFileSystemProviderWithFileReadStreamCapability | IFileSystemProviderWithFileAtomicReadCapability | IFileSystemProviderWithFileFolderCopyCapability), userDataScheme: string, logService: ILogService);
watch(resource: URI, opts: IWatchOptions): IDisposable;
stat(resource: URI): Promise<IStat>;
mkdir(resource: URI): Promise<void>;
rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
readFile(resource: URI): Promise<Uint8Array>;
readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array>;
readdir(resource: URI): Promise<[string, FileType][]>;
writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void>;
delete(resource: URI, opts: IFileDeleteOptions): Promise<void>;
copy(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void>;
private handleFileChanges;
private toFileSystemResource;
private toUserDataResource;
}