UNPKG

chrome-devtools-frontend

Version:
121 lines (94 loc) 3.13 kB
// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import type * as Common from '../../core/common/common.js'; import * as i18n from '../../core/i18n/i18n.js'; import type * as TextUtils from '../text_utils/text_utils.js'; const UIStrings = { /** * @description Assertion error message when failing to load a file. */ unableToReadFilesWithThis: '`PlatformFileSystem` cannot read files.', }; const str_ = i18n.i18n.registerUIStrings('models/persistence/PlatformFileSystem.ts', UIStrings); const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_); export class PlatformFileSystem { private readonly pathInternal: string; private readonly typeInternal: string; constructor(path: string, type: string) { this.pathInternal = path; this.typeInternal = type; } getMetadata(_path: string): Promise<{modificationTime: Date, size: number}|null> { return Promise.resolve(null); } initialFilePaths(): string[] { return []; } initialGitFolders(): string[] { return []; } path(): string { return this.pathInternal; } embedderPath(): string { throw new Error('Not implemented'); } type(): string { // TODO(kozyatinskiy): remove type, overrides should implement this interface. return this.typeInternal; } async createFile(_path: string, _name: string|null): Promise<string|null> { return Promise.resolve(null); } deleteFile(_path: string): Promise<boolean> { return Promise.resolve(false); } requestFileBlob(_path: string): Promise<Blob|null> { return Promise.resolve(null as Blob | null); } async requestFileContent(_path: string): Promise<TextUtils.ContentProvider.DeferredContent> { return {content: null, error: i18nString(UIStrings.unableToReadFilesWithThis), isEncoded: false}; } setFileContent(_path: string, _content: string, _isBase64: boolean): void { throw new Error('Not implemented'); } renameFile(_path: string, _newName: string, callback: (arg0: boolean, arg1?: string|undefined) => void): void { callback(false); } addExcludedFolder(_path: string): void { } removeExcludedFolder(_path: string): void { } fileSystemRemoved(): void { } isFileExcluded(_folderPath: string): boolean { return false; } excludedFolders(): Set<string> { return new Set(); } searchInPath(_query: string, _progress: Common.Progress.Progress): Promise<string[]> { return Promise.resolve([]); } indexContent(progress: Common.Progress.Progress): void { queueMicrotask(() => { progress.done(); }); } mimeFromPath(_path: string): string { throw new Error('Not implemented'); } canExcludeFolder(_path: string): boolean { return false; } contentType(_path: string): Common.ResourceType.ResourceType { throw new Error('Not implemented'); } tooltipForURL(_url: string): string { throw new Error('Not implemented'); } supportsAutomapping(): boolean { throw new Error('Not implemented'); } }