Skip to content

Commit f4da522

Browse files
koesie10norascheuch
authored andcommitted
wip: data extensions editor without ql submodule
1 parent 6dfe173 commit f4da522

File tree

3 files changed

+35
-21
lines changed

3 files changed

+35
-21
lines changed

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-module.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,44 @@ export class DataExtensionsEditorModule {
9999
return;
100100
}
101101

102+
// TODO: Copy the files to a temporary directory and install pack dependencies
103+
104+
const queryDir = (await dir({ unsafeCleanup: true })).path;
105+
106+
// TODO: Write both the application mode and framework mode query
107+
const queryFile = join(queryDir, "FetchExternalApis.ql");
108+
await writeFile(queryFile, query[queryName], "utf8");
109+
110+
if (query.dependencies) {
111+
for (const [filename, contents] of Object.entries(
112+
query.dependencies,
113+
)) {
114+
const dependencyFile = join(queryDir, filename);
115+
await writeFile(dependencyFile, contents, "utf8");
116+
}
117+
}
118+
119+
const syntheticQueryPack = {
120+
name: "codeql/external-api-usage",
121+
version: "0.0.0",
122+
dependencies: {
123+
[`codeql/${databaseItem.language}-all`]: "*",
124+
},
125+
};
126+
127+
const qlpackFile = join(queryDir, "codeql-pack.yml");
128+
await writeFile(qlpackFile, dumpYaml(syntheticQueryPack), "utf8");
129+
130+
// TODO: install pack dependencies in temporary file (`codeql pack install`)
131+
102132
const view = new DataExtensionsEditorView(
103133
this.ctx,
104134
this.app,
105135
this.databaseManager,
106136
this.cliServer,
107137
this.queryRunner,
108138
this.queryStorageDir,
139+
queryDir,
109140
db,
110141
modelFile,
111142
);

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
7171
private readonly cliServer: CodeQLCliServer,
7272
private readonly queryRunner: QueryRunner,
7373
private readonly queryStorageDir: string,
74+
private readonly queryDir: string,
7475
private readonly databaseItem: DatabaseItem,
7576
private readonly extensionPack: ExtensionPack,
7677
private mode: Mode = Mode.Application,

extensions/ql-vscode/src/data-extensions-editor/external-api-usage-query.ts

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export async function runQuery(
3535
databaseItem,
3636
queryStorageDir,
3737
progress,
38+
queryDir,
3839
token,
3940
}: RunQueryOptions,
4041
): Promise<CoreCompletedQuery | undefined> {
@@ -63,27 +64,7 @@ export async function runQuery(
6364
return;
6465
}
6566

66-
const queryDir = (await dir({ unsafeCleanup: true })).path;
67-
const queryFile = join(queryDir, "FetchExternalApis.ql");
68-
await writeFile(queryFile, query[queryName], "utf8");
69-
70-
if (query.dependencies) {
71-
for (const [filename, contents] of Object.entries(query.dependencies)) {
72-
const dependencyFile = join(queryDir, filename);
73-
await writeFile(dependencyFile, contents, "utf8");
74-
}
75-
}
76-
77-
const syntheticQueryPack = {
78-
name: "codeql/external-api-usage",
79-
version: "0.0.0",
80-
dependencies: {
81-
[`codeql/${databaseItem.language}-all`]: "*",
82-
},
83-
};
84-
85-
const qlpackFile = join(queryDir, "codeql-pack.yml");
86-
await writeFile(qlpackFile, dumpYaml(syntheticQueryPack), "utf8");
67+
// TODO: install dependencies
8768

8869
const additionalPacks = getOnDiskWorkspaceFolders();
8970
const extensionPacks = Object.keys(
@@ -93,6 +74,7 @@ export async function runQuery(
9374
const queryRun = queryRunner.createQueryRun(
9475
databaseItem.databaseUri.fsPath,
9576
{
77+
// TODO: select correct query file based on the `queryName` and `queryDir`
9678
queryPath: queryFile,
9779
quickEvalPosition: undefined,
9880
quickEvalCountOnly: false,

0 commit comments

Comments
 (0)