Path: blob/main/src/vs/platform/extensionResourceLoader/common/extensionResourceLoaderService.ts
3294 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { URI } from '../../../base/common/uri.js';6import { InstantiationType, registerSingleton } from '../../instantiation/common/extensions.js';7import { IFileService } from '../../files/common/files.js';8import { IProductService } from '../../product/common/productService.js';9import { asTextOrError, IRequestService } from '../../request/common/request.js';10import { IStorageService } from '../../storage/common/storage.js';11import { IEnvironmentService } from '../../environment/common/environment.js';12import { IConfigurationService } from '../../configuration/common/configuration.js';13import { CancellationToken } from '../../../base/common/cancellation.js';14import { AbstractExtensionResourceLoaderService, IExtensionResourceLoaderService } from './extensionResourceLoader.js';15import { IExtensionGalleryManifestService } from '../../extensionManagement/common/extensionGalleryManifest.js';16import { ILogService } from '../../log/common/log.js';1718export class ExtensionResourceLoaderService extends AbstractExtensionResourceLoaderService {1920constructor(21@IFileService fileService: IFileService,22@IStorageService storageService: IStorageService,23@IProductService productService: IProductService,24@IEnvironmentService environmentService: IEnvironmentService,25@IConfigurationService configurationService: IConfigurationService,26@IExtensionGalleryManifestService extensionGalleryManifestService: IExtensionGalleryManifestService,27@IRequestService private readonly _requestService: IRequestService,28@ILogService logService: ILogService,29) {30super(fileService, storageService, productService, environmentService, configurationService, extensionGalleryManifestService, logService);31}3233async readExtensionResource(uri: URI): Promise<string> {34if (await this.isExtensionGalleryResource(uri)) {35const headers = await this.getExtensionGalleryRequestHeaders();36const requestContext = await this._requestService.request({ url: uri.toString(), headers }, CancellationToken.None);37return (await asTextOrError(requestContext)) || '';38}39const result = await this._fileService.readFile(uri);40return result.value.toString();41}4243}4445registerSingleton(IExtensionResourceLoaderService, ExtensionResourceLoaderService, InstantiationType.Delayed);464748