Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/extensionResourceLoader/common/extensionResourceLoaderService.ts
3294 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 { URI } from '../../../base/common/uri.js';
7
import { InstantiationType, registerSingleton } from '../../instantiation/common/extensions.js';
8
import { IFileService } from '../../files/common/files.js';
9
import { IProductService } from '../../product/common/productService.js';
10
import { asTextOrError, IRequestService } from '../../request/common/request.js';
11
import { IStorageService } from '../../storage/common/storage.js';
12
import { IEnvironmentService } from '../../environment/common/environment.js';
13
import { IConfigurationService } from '../../configuration/common/configuration.js';
14
import { CancellationToken } from '../../../base/common/cancellation.js';
15
import { AbstractExtensionResourceLoaderService, IExtensionResourceLoaderService } from './extensionResourceLoader.js';
16
import { IExtensionGalleryManifestService } from '../../extensionManagement/common/extensionGalleryManifest.js';
17
import { ILogService } from '../../log/common/log.js';
18
19
export class ExtensionResourceLoaderService extends AbstractExtensionResourceLoaderService {
20
21
constructor(
22
@IFileService fileService: IFileService,
23
@IStorageService storageService: IStorageService,
24
@IProductService productService: IProductService,
25
@IEnvironmentService environmentService: IEnvironmentService,
26
@IConfigurationService configurationService: IConfigurationService,
27
@IExtensionGalleryManifestService extensionGalleryManifestService: IExtensionGalleryManifestService,
28
@IRequestService private readonly _requestService: IRequestService,
29
@ILogService logService: ILogService,
30
) {
31
super(fileService, storageService, productService, environmentService, configurationService, extensionGalleryManifestService, logService);
32
}
33
34
async readExtensionResource(uri: URI): Promise<string> {
35
if (await this.isExtensionGalleryResource(uri)) {
36
const headers = await this.getExtensionGalleryRequestHeaders();
37
const requestContext = await this._requestService.request({ url: uri.toString(), headers }, CancellationToken.None);
38
return (await asTextOrError(requestContext)) || '';
39
}
40
const result = await this._fileService.readFile(uri);
41
return result.value.toString();
42
}
43
44
}
45
46
registerSingleton(IExtensionResourceLoaderService, ExtensionResourceLoaderService, InstantiationType.Delayed);
47
48