Expose a getOrderedManagers() function for use elsewhere

pull/21833/head
Travis Ralston 2019-08-22 15:17:59 -06:00
parent 8493887ceb
commit 470295ad14
1 changed files with 18 additions and 12 deletions

View File

@ -144,10 +144,8 @@ export class IntegrationManagers {
return this._managers.length > 0;
}
getPrimaryManager(): IntegrationManagerInstance {
if (this.hasManager()) {
if (this._primaryManager) return this._primaryManager;
getOrderedManagers(): IntegrationManagerInstance[] {
const ordered = [];
for (const kind of KIND_PREFERENCE) {
const managers = this._managers.filter(m => m.kind === kind);
if (!managers || !managers.length) continue;
@ -157,9 +155,17 @@ export class IntegrationManagers {
managers.sort((a, b) => a.id.localeCompare(b.id));
}
this._primaryManager = managers[0];
return this._primaryManager;
ordered.push(...managers);
}
return ordered;
}
getPrimaryManager(): IntegrationManagerInstance {
if (this.hasManager()) {
if (this._primaryManager) return this._primaryManager;
this._primaryManager = this.getOrderedManagers()[0];
return this._primaryManager;
} else {
return null;
}