ng-afelio
Version:
Extended Angular CLI
36 lines (35 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PluginConnector = void 0;
class PluginConnector {
constructor(url, token) {
this.url = url;
this.token = token;
}
async getCompatiblePlugins(ngAfelioVersion) {
let releases = await this.getReleases();
releases = this.filterByNgAfelioVersion(releases, ngAfelioVersion);
let pluginNames = releases.map(r => r.config.name);
return Array.from(new Set(pluginNames));
}
filterByNgAfelioVersion(releases, ngAfelioVersion) {
return releases.filter(r => {
const askedMinVersion = r.config.ngAfelioMin;
const askedMaxVersion = r.config.ngAfelioMax;
const currentVersion = ngAfelioVersion.split('-')[0];
const minCheck = this.compareVersions(currentVersion, askedMinVersion) >= 0;
const maxCheck = this.compareVersions(currentVersion, askedMaxVersion) <= 0;
return minCheck && maxCheck;
});
}
filterByName(releases, name) {
return releases.filter(r => {
const pluginName = r.config.name;
return name === pluginName;
});
}
compareVersions(versionA, versionB) {
return versionA.localeCompare(versionB, undefined, { numeric: true, sensitivity: 'base' });
}
}
exports.PluginConnector = PluginConnector;