UNPKG

ng-afelio

Version:
36 lines (35 loc) 1.4 kB
"use strict"; 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;