@@ -64,15 +64,14 @@ export class SkeletonQueryWizard {
6464 if ( skeletonPackAlreadyExists ) {
6565 // just create a new example query file in skeleton QL pack
6666 await this . createExampleFile ( ) ;
67- // select existing database for language
68- await this . selectExistingDatabase ( ) ;
6967 } else {
7068 // generate a new skeleton QL pack with query file
7169 await this . createQlPack ( ) ;
72- // download database based on language and select it
73- await this . downloadDatabase ( ) ;
7470 }
7571
72+ // select existing database for language or download a new one
73+ await this . selectOrDownloadDatabase ( ) ;
74+
7675 // open a query file
7776
7877 try {
@@ -216,41 +215,19 @@ export class SkeletonQueryWizard {
216215 ) ;
217216 }
218217
219- private async selectExistingDatabase ( ) {
220- if ( this . language === undefined ) {
221- throw new Error ( "Language is undefined" ) ;
222- }
223-
218+ private async selectOrDownloadDatabase ( ) {
224219 if ( this . qlPackStoragePath === undefined ) {
225220 throw new Error ( "QL Pack storage path is undefined" ) ;
226221 }
227222
228- const databaseNwo = QUERY_LANGUAGE_TO_DATABASE_REPO [ this . language ] ;
229-
230- const existingDatabaseItem = await this . findDatabaseItemByNwo (
231- this . language ,
232- databaseNwo ,
233- this . databaseManager . databaseItems ,
234- ) ;
223+ const existingDatabaseItem = await this . findExistingDatabaseItem ( ) ;
235224
236225 if ( existingDatabaseItem ) {
237226 // select the found database
238227 await this . databaseManager . setCurrentDatabaseItem ( existingDatabaseItem ) ;
239228 } else {
240- const sameLanguageDatabaseItem = await this . findDatabaseItemByLanguage (
241- this . language ,
242- this . databaseManager . databaseItems ,
243- ) ;
244-
245- if ( sameLanguageDatabaseItem ) {
246- // select the found database
247- await this . databaseManager . setCurrentDatabaseItem (
248- sameLanguageDatabaseItem ,
249- ) ;
250- } else {
251- // download new database and select it
252- await this . downloadDatabase ( ) ;
253- }
229+ // download new database and select it
230+ await this . downloadDatabase ( ) ;
254231 }
255232 }
256233
@@ -286,4 +263,27 @@ export class SkeletonQueryWizard {
286263 }
287264 return dbs [ 0 ] ;
288265 }
266+
267+ private async findExistingDatabaseItem ( ) {
268+ if ( this . language === undefined ) {
269+ throw new Error ( "Language is undefined" ) ;
270+ }
271+
272+ const defaultDatabaseNwo = QUERY_LANGUAGE_TO_DATABASE_REPO [ this . language ] ;
273+
274+ const defaultDatabaseItem = await this . findDatabaseItemByNwo (
275+ this . language ,
276+ defaultDatabaseNwo ,
277+ this . databaseManager . databaseItems ,
278+ ) ;
279+
280+ if ( defaultDatabaseItem !== undefined ) {
281+ return defaultDatabaseItem ;
282+ }
283+
284+ return await this . findDatabaseItemByLanguage (
285+ this . language ,
286+ this . databaseManager . databaseItems ,
287+ ) ;
288+ }
289289}
0 commit comments