|
3 | 3 | * Licensed under the MIT License. See License.txt in the project root for license information.
|
4 | 4 | *--------------------------------------------------------------------------------------------*/
|
5 | 5 |
|
| 6 | +import { assertNever } from '../../../base/common/assert.js'; |
6 | 7 | import { Queue } from '../../../base/common/async.js';
|
7 | 8 | import { VSBuffer } from '../../../base/common/buffer.js';
|
8 | 9 | import { IStringDictionary } from '../../../base/common/collections.js';
|
@@ -51,7 +52,7 @@ export interface IMcpResourceScannerService {
|
51 | 52 | export class McpResourceScannerService extends Disposable implements IMcpResourceScannerService {
|
52 | 53 | readonly _serviceBrand: undefined;
|
53 | 54 |
|
54 |
| - private readonly resourcesAccessQueueMap = new ResourceMap<Queue<any>>(); |
| 55 | + private readonly resourcesAccessQueueMap = new ResourceMap<Queue<IScannedMcpServers>>(); |
55 | 56 |
|
56 | 57 | constructor(
|
57 | 58 | @IFileService private readonly fileService: IFileService,
|
@@ -93,7 +94,7 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
|
93 | 94 |
|
94 | 95 | private async withProfileMcpServers(mcpResource: URI, target?: McpResourceTarget, updateFn?: (data: IScannedMcpServers) => IScannedMcpServers): Promise<IScannedMcpServers> {
|
95 | 96 | return this.getResourceAccessQueue(mcpResource)
|
96 |
| - .queue(async () => { |
| 97 | + .queue(async (): Promise<IScannedMcpServers> => { |
97 | 98 | target = target ?? ConfigurationTarget.USER;
|
98 | 99 | let scannedMcpServers: IScannedMcpServers = {};
|
99 | 100 | try {
|
@@ -123,18 +124,14 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
|
123 | 124 | scannedMcpServers = updateFn(scannedMcpServers ?? {});
|
124 | 125 |
|
125 | 126 | if (target === ConfigurationTarget.USER) {
|
126 |
| - return this.writeScannedMcpServers(mcpResource, scannedMcpServers); |
127 |
| - } |
128 |
| - |
129 |
| - if (target === ConfigurationTarget.WORKSPACE_FOLDER) { |
130 |
| - return this.writeScannedMcpServersToWorkspaceFolder(mcpResource, scannedMcpServers); |
131 |
| - } |
132 |
| - |
133 |
| - if (target === ConfigurationTarget.WORKSPACE) { |
134 |
| - return this.writeScannedMcpServersToWorkspace(mcpResource, scannedMcpServers); |
| 127 | + await this.writeScannedMcpServers(mcpResource, scannedMcpServers); |
| 128 | + } else if (target === ConfigurationTarget.WORKSPACE_FOLDER) { |
| 129 | + await this.writeScannedMcpServersToWorkspaceFolder(mcpResource, scannedMcpServers); |
| 130 | + } else if (target === ConfigurationTarget.WORKSPACE) { |
| 131 | + await this.writeScannedMcpServersToWorkspace(mcpResource, scannedMcpServers); |
| 132 | + } else { |
| 133 | + assertNever(target, `Invalid Target: ${ConfigurationTargetToString(target)}`); |
135 | 134 | }
|
136 |
| - |
137 |
| - throw new Error(`Invalid Target: ${ConfigurationTargetToString(target)}`); |
138 | 135 | }
|
139 | 136 | return scannedMcpServers;
|
140 | 137 | });
|
@@ -222,10 +219,10 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
|
222 | 219 | return server;
|
223 | 220 | }
|
224 | 221 |
|
225 |
| - private getResourceAccessQueue(file: URI): Queue<any> { |
| 222 | + private getResourceAccessQueue(file: URI): Queue<IScannedMcpServers> { |
226 | 223 | let resourceQueue = this.resourcesAccessQueueMap.get(file);
|
227 | 224 | if (!resourceQueue) {
|
228 |
| - resourceQueue = new Queue<any>(); |
| 225 | + resourceQueue = new Queue<IScannedMcpServers>(); |
229 | 226 | this.resourcesAccessQueueMap.set(file, resourceQueue);
|
230 | 227 | }
|
231 | 228 | return resourceQueue;
|
|
0 commit comments