git: use simpler versioning scheme

This commit is contained in:
Joao Moreno
2018-08-22 15:09:11 +02:00
parent f9982d29d4
commit 78d61d55f4
7 changed files with 23 additions and 114 deletions

View File

@@ -7,8 +7,19 @@
import { Model } from '../model';
import { GitExtension, Repository, API } from './git';
import { getAPI, deprecated } from './api';
import { ApiRepository } from './api1';
import { ApiRepository, ApiImpl } from './api1';
export function deprecated(target: any, key: string, descriptor: any): void {
if (typeof descriptor.value !== 'function') {
throw new Error('not supported');
}
const fn = descriptor.value;
descriptor.value = function () {
console.warn(`Git extension API method '${key}' is deprecated.`);
return fn.apply(this, arguments);
};
}
class NoModelGitExtension implements GitExtension {
@@ -41,8 +52,12 @@ class GitExtensionImpl implements GitExtension {
return this._model.repositories.map(repository => new ApiRepository(repository));
}
getAPI(range: string): API {
return getAPI(this._model, range);
getAPI(version: number): API {
if (version !== 1) {
throw new Error(`No API version ${version} found.`);
}
return new ApiImpl(this._model);
}
}