Path: blob/main/extensions/copilot/src/platform/chat/common/blockedExtensionService.ts
13401 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 { createServiceIdentifier } from '../../../util/common/services';67export const IBlockedExtensionService = createServiceIdentifier<IBlockedExtensionService>('IBlockedExtensionService');89export interface IBlockedExtensionService {10readonly _serviceBrand: undefined;1112reportBlockedExtension(extensionId: string, timeout: number): void;13isExtensionBlocked(extensionId: string): boolean;14}1516export class BlockedExtensionService implements IBlockedExtensionService {17readonly _serviceBrand: undefined;18private blockedExtensions: Map<string, any> = new Map();1920reportBlockedExtension(extensionId: string, timeout: number): void {21if (this.blockedExtensions.has(extensionId)) {22clearTimeout(this.blockedExtensions.get(extensionId)!);23}2425const timer = setTimeout(() => {26this.blockedExtensions.delete(extensionId);27}, timeout * 1000);28this.blockedExtensions.set(extensionId, timer);29}3031isExtensionBlocked(extensionId: string): boolean {32return this.blockedExtensions.has(extensionId);33}34}353637