Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/git-base/src/api/api1.ts
3320 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 { Disposable, commands } from 'vscode';
7
import { Model } from '../model';
8
import { getRemoteSourceActions, pickRemoteSource } from '../remoteSource';
9
import { GitBaseExtensionImpl } from './extension';
10
import { API, PickRemoteSourceOptions, PickRemoteSourceResult, RemoteSourceAction, RemoteSourceProvider } from './git-base';
11
12
export class ApiImpl implements API {
13
14
constructor(private _model: Model) { }
15
16
pickRemoteSource(options: PickRemoteSourceOptions): Promise<PickRemoteSourceResult | string | undefined> {
17
return pickRemoteSource(this._model, options as any);
18
}
19
20
getRemoteSourceActions(url: string): Promise<RemoteSourceAction[]> {
21
return getRemoteSourceActions(this._model, url);
22
}
23
24
registerRemoteSourceProvider(provider: RemoteSourceProvider): Disposable {
25
return this._model.registerRemoteSourceProvider(provider);
26
}
27
}
28
29
export function registerAPICommands(extension: GitBaseExtensionImpl): Disposable {
30
const disposables: Disposable[] = [];
31
32
disposables.push(commands.registerCommand('git-base.api.getRemoteSources', (opts?: PickRemoteSourceOptions) => {
33
if (!extension.model) {
34
return;
35
}
36
37
return pickRemoteSource(extension.model, opts as any);
38
}));
39
40
return Disposable.from(...disposables);
41
}
42
43