Path: blob/main/src/vs/workbench/contrib/extensions/browser/webRecommendations.ts
3296 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 { ExtensionRecommendations, ExtensionRecommendation } from './extensionRecommendations.js';6import { IProductService } from '../../../../platform/product/common/productService.js';7import { ExtensionRecommendationReason } from '../../../services/extensionRecommendations/common/extensionRecommendations.js';8import { localize } from '../../../../nls.js';9import { IExtensionManagementServerService } from '../../../services/extensionManagement/common/extensionManagement.js';1011export class WebRecommendations extends ExtensionRecommendations {1213private _recommendations: ExtensionRecommendation[] = [];14get recommendations(): ReadonlyArray<ExtensionRecommendation> { return this._recommendations; }1516constructor(17@IProductService private readonly productService: IProductService,18@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService,19) {20super();21}2223protected async doActivate(): Promise<void> {24const isOnlyWeb = this.extensionManagementServerService.webExtensionManagementServer && !this.extensionManagementServerService.localExtensionManagementServer && !this.extensionManagementServerService.remoteExtensionManagementServer;25if (isOnlyWeb && Array.isArray(this.productService.webExtensionTips)) {26this._recommendations = this.productService.webExtensionTips.map((extensionId): ExtensionRecommendation => ({27extension: extensionId.toLowerCase(),28reason: {29reasonId: ExtensionRecommendationReason.Application,30reasonText: localize('reason', "This extension is recommended for {0} for the Web", this.productService.nameLong)31}32}));33}34}35}36373839