@@ -5,15 +5,43 @@ import { CodeQLCliServer } from "../cli";
55import { QueryRunner } from "../queryRunner" ;
66import { DatabaseManager } from "../local-databases" ;
77import { extLogger } from "../common" ;
8+ import { ensureDir } from "fs-extra" ;
9+ import { join } from "path" ;
810
911export class DataExtensionsEditorModule {
10- public constructor (
12+ private readonly queryStorageDir : string ;
13+
14+ private constructor (
1115 private readonly ctx : ExtensionContext ,
1216 private readonly databaseManager : DatabaseManager ,
1317 private readonly cliServer : CodeQLCliServer ,
1418 private readonly queryRunner : QueryRunner ,
15- private readonly queryStorageDir : string ,
16- ) { }
19+ baseQueryStorageDir : string ,
20+ ) {
21+ this . queryStorageDir = join (
22+ baseQueryStorageDir ,
23+ "data-extensions-editor-results" ,
24+ ) ;
25+ }
26+
27+ public static async initialize (
28+ ctx : ExtensionContext ,
29+ databaseManager : DatabaseManager ,
30+ cliServer : CodeQLCliServer ,
31+ queryRunner : QueryRunner ,
32+ queryStorageDir : string ,
33+ ) : Promise < DataExtensionsEditorModule > {
34+ const dataExtensionsEditorModule = new DataExtensionsEditorModule (
35+ ctx ,
36+ databaseManager ,
37+ cliServer ,
38+ queryRunner ,
39+ queryStorageDir ,
40+ ) ;
41+
42+ await dataExtensionsEditorModule . initialize ( ) ;
43+ return dataExtensionsEditorModule ;
44+ }
1745
1846 public getCommands ( ) : DataExtensionsEditorCommands {
1947 return {
@@ -35,4 +63,8 @@ export class DataExtensionsEditorModule {
3563 } ,
3664 } ;
3765 }
66+
67+ private async initialize ( ) : Promise < void > {
68+ await ensureDir ( this . queryStorageDir ) ;
69+ }
3870}
0 commit comments