@@ -4,9 +4,12 @@ import { extLogger } from "../common";
44import {
55 getRemoteRepositoryLists ,
66 getRemoteRepositoryListsPath ,
7+ isNewQueryRunExperienceEnabled ,
78} from "../config" ;
89import { OWNER_REGEX , REPO_REGEX } from "../pure/helpers-pure" ;
910import { UserCancellationException } from "../commandRunner" ;
11+ import { DbManager } from "../databases/db-manager" ;
12+ import { DbItemKind } from "../databases/db-item" ;
1013
1114export interface RepositorySelection {
1215 repositories ?: string [ ] ;
@@ -30,7 +33,33 @@ interface RepoList {
3033 * Gets the repositories or repository lists to run the query against.
3134 * @returns The user selection.
3235 */
33- export async function getRepositorySelection ( ) : Promise < RepositorySelection > {
36+ export async function getRepositorySelection (
37+ dbManager ?: DbManager ,
38+ ) : Promise < RepositorySelection > {
39+ if ( isNewQueryRunExperienceEnabled ( ) ) {
40+ const selectedDbItem = dbManager ?. getSelectedDbItem ( ) ;
41+ if ( selectedDbItem ) {
42+ switch ( selectedDbItem . kind ) {
43+ case DbItemKind . LocalDatabase || DbItemKind . LocalList :
44+ throw new Error ( "Local databases and lists are not supported yet." ) ;
45+ case DbItemKind . RemoteSystemDefinedList :
46+ return { repositoryLists : [ selectedDbItem . listName ] } ;
47+ case DbItemKind . RemoteUserDefinedList :
48+ return {
49+ repositories : selectedDbItem . repos . map ( ( repo ) => repo . repoFullName ) ,
50+ } ;
51+ case DbItemKind . RemoteOwner :
52+ return { owners : [ selectedDbItem . ownerName ] } ;
53+ case DbItemKind . RemoteRepo :
54+ return { repositories : [ selectedDbItem . repoFullName ] } ;
55+ }
56+ } else {
57+ throw new Error (
58+ "Please select a remote database to run the query against." ,
59+ ) ;
60+ }
61+ }
62+
3463 const quickPickItems = [
3564 createCustomRepoQuickPickItem ( ) ,
3665 createAllReposOfOwnerQuickPickItem ( ) ,
0 commit comments