Skip to content

Commit ee056ce

Browse files
committed
Create method to expose selected DbItem
1 parent 994ebaa commit ee056ce

2 files changed

Lines changed: 43 additions & 1 deletion

File tree

extensions/ql-vscode/src/databases/db-item.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,35 @@ const SelectableDbItemKinds = [
124124
DbItemKind.RemoteOwner,
125125
DbItemKind.RemoteRepo,
126126
];
127+
128+
export function getSelectedDbItem(dbItems: DbItem[]): DbItem | undefined {
129+
for (const dbItem of dbItems) {
130+
if (
131+
dbItem.kind === DbItemKind.RootRemote ||
132+
dbItem.kind === DbItemKind.RootLocal
133+
) {
134+
for (const child of dbItem.children) {
135+
switch (child.kind) {
136+
case DbItemKind.LocalList:
137+
for (const database of child.databases) {
138+
if (database.selected) {
139+
return database;
140+
}
141+
}
142+
break;
143+
case DbItemKind.RemoteUserDefinedList:
144+
for (const repo of child.repos) {
145+
if (repo.selected) {
146+
return repo;
147+
}
148+
}
149+
break;
150+
default:
151+
if (child.selected) {
152+
return child;
153+
}
154+
}
155+
}
156+
}
157+
}
158+
}

extensions/ql-vscode/src/databases/db-manager.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { App } from "../common/app";
22
import { AppEvent, AppEventEmitter } from "../common/events";
33
import { ValueResult } from "../common/value-result";
44
import { DbConfigStore } from "./config/db-config-store";
5-
import { DbItem } from "./db-item";
5+
import { DbItem, getSelectedDbItem } from "./db-item";
66
import { createLocalTree, createRemoteTree } from "./db-tree-creator";
77

88
export class DbManager {
@@ -18,6 +18,16 @@ export class DbManager {
1818
});
1919
}
2020

21+
public selectedDbItem(): DbItem | undefined {
22+
const dbItems = this.getDbItems();
23+
24+
if (dbItems.isFailure) {
25+
return undefined;
26+
}
27+
28+
return getSelectedDbItem(dbItems.value);
29+
}
30+
2131
public getDbItems(): ValueResult<DbItem[]> {
2232
const configResult = this.dbConfigStore.getConfig();
2333
if (configResult.isFailure) {

0 commit comments

Comments
 (0)