Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/files/test/common/nullFileSystemProvider.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { CancellationToken } from '../../../../base/common/cancellation.js';
7
import { Emitter, Event } from '../../../../base/common/event.js';
8
import { Disposable, IDisposable } from '../../../../base/common/lifecycle.js';
9
import { ReadableStreamEvents } from '../../../../base/common/stream.js';
10
import { URI } from '../../../../base/common/uri.js';
11
import { IFileDeleteOptions, IFileOpenOptions, IFileOverwriteOptions, FileSystemProviderCapabilities, FileType, IFileWriteOptions, IFileChange, IFileSystemProvider, IStat, IWatchOptions, IFileReadStreamOptions } from '../../common/files.js';
12
13
export class NullFileSystemProvider implements IFileSystemProvider {
14
15
capabilities: FileSystemProviderCapabilities = FileSystemProviderCapabilities.Readonly;
16
17
private readonly _onDidChangeCapabilities = new Emitter<void>();
18
readonly onDidChangeCapabilities: Event<void> = this._onDidChangeCapabilities.event;
19
20
private readonly _onDidChangeFile = new Emitter<readonly IFileChange[]>();
21
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChangeFile.event;
22
23
constructor(private disposableFactory: () => IDisposable = () => Disposable.None) { }
24
25
emitFileChangeEvents(changes: IFileChange[]): void {
26
this._onDidChangeFile.fire(changes);
27
}
28
29
setCapabilities(capabilities: FileSystemProviderCapabilities): void {
30
this.capabilities = capabilities;
31
32
this._onDidChangeCapabilities.fire();
33
}
34
35
watch(resource: URI, opts: IWatchOptions): IDisposable { return this.disposableFactory(); }
36
async stat(resource: URI): Promise<IStat> { return undefined!; }
37
async mkdir(resource: URI): Promise<void> { return undefined; }
38
async readdir(resource: URI): Promise<[string, FileType][]> { return undefined!; }
39
async delete(resource: URI, opts: IFileDeleteOptions): Promise<void> { return undefined; }
40
async rename(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void> { return undefined; }
41
async copy(from: URI, to: URI, opts: IFileOverwriteOptions): Promise<void> { return undefined; }
42
async readFile(resource: URI): Promise<Uint8Array> { return undefined!; }
43
readFileStream(resource: URI, opts: IFileReadStreamOptions, token: CancellationToken): ReadableStreamEvents<Uint8Array> { return undefined!; }
44
async writeFile(resource: URI, content: Uint8Array, opts: IFileWriteOptions): Promise<void> { return undefined; }
45
async open(resource: URI, opts: IFileOpenOptions): Promise<number> { return undefined!; }
46
async close(fd: number): Promise<void> { return undefined; }
47
async read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return undefined!; }
48
async write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return undefined!; }
49
}
50
51