All files / commands update-prefixes.ts

90% Statements 9/10
100% Branches 0/0
100% Functions 2/2
90% Lines 9/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30          1x     1x   1x         1x   1x 1x   1x 1x   1x            
import * as vscode from 'vscode';
import { container } from 'tsyringe';
import { ServiceToken } from '@src/services/tokens';
import { IPrefixDownloaderService } from '@src/services/document';
 
export const updatePrefixes = {
	id: 'mentor.command.updatePrefixes',
	handler: async () => {
		const prefixDownloader = container.resolve<IPrefixDownloaderService>(ServiceToken.PrefixDownloaderService);
 
		vscode.window.withProgress({
			location: vscode.ProgressLocation.Window,
			title: `Downloading prefixes from ${prefixDownloader.endpointUrl}...`,
			cancellable: false
		}, async (progress) => {
			progress.report({ increment: 0 });
 
			try {
				const result = await prefixDownloader.fetchPrefixes();
 
				const extensionContext = container.resolve<vscode.ExtensionContext>(ServiceToken.ExtensionContext);
				extensionContext.globalState.update('defaultPrefixes', result);
 
				progress.report({ increment: 100 });
			} catch (error: any) {
				vscode.window.showErrorMessage(`Failed to download prefixes: ${error.message}`);
			}
		});
	}
}