UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

77 lines (75 loc) 3.05 kB
/*--------------------------------------------------------------------------------------------- * 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 '@sussudio/base/common/event.mjs'; import { Disposable, IDisposable } from '@sussudio/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 '@sussudio/base/common/uri.mjs'; import { CancellationToken } from '@sussudio/base/common/cancellation.mjs'; import { ReadableStreamEvents } from '@sussudio/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; }