@@ -4,7 +4,7 @@ import { DataExtensionsEditorCommands } from "../common/commands";
44import { CliVersionConstraint , CodeQLCliServer } from "../codeql-cli/cli" ;
55import { QueryRunner } from "../query-server" ;
66import { DatabaseManager } from "../databases/local-databases" ;
7- import { ensureDir , writeFile } from "fs-extra" ;
7+ import { ensureDir } from "fs-extra" ;
88import { join } from "path" ;
99import { App } from "../common/app" ;
1010import { withProgress } from "../common/vscode/progress" ;
@@ -14,13 +14,12 @@ import {
1414 showAndLogExceptionWithTelemetry ,
1515} from "../common/logging" ;
1616import { dir } from "tmp-promise" ;
17- import { dump as dumpYaml } from "js-yaml" ;
1817import { fetchExternalApiQueries } from "./queries" ;
1918import { telemetryListener } from "../common/vscode/telemetry" ;
2019import { redactableError } from "../common/errors" ;
2120import { extLogger } from "../common/logging/vscode" ;
2221import { isQueryLanguage } from "../common/query-language" ;
23- import { Mode } from "./shared/mode " ;
22+ import { setUpPack } from "./external-api-usage-query " ;
2423
2524const SUPPORTED_LANGUAGES : string [ ] = [ "java" , "csharp" ] ;
2625
@@ -110,9 +109,6 @@ export class DataExtensionsEditorModule {
110109 return ;
111110 }
112111
113- // Create new temporary directory for query files and pack dependencies
114- const queryDir = ( await dir ( { unsafeCleanup : true } ) ) . path ;
115-
116112 if ( ! isQueryLanguage ( db . language ) ) {
117113 void showAndLogExceptionWithTelemetry (
118114 extLogger ,
@@ -132,36 +128,9 @@ export class DataExtensionsEditorModule {
132128 return ;
133129 }
134130
135- Object . values ( Mode ) . map ( async ( mode ) => {
136- const queryFile = join (
137- queryDir ,
138- `FetchExternalApis${
139- mode . charAt ( 0 ) . toUpperCase ( ) + mode . slice ( 1 )
140- } Mode.ql`,
141- ) ;
142- await writeFile ( queryFile , query [ `${ mode } ModeQuery` ] , "utf8" ) ;
143- } ) ;
144-
145- if ( query . dependencies ) {
146- for ( const [ filename , contents ] of Object . entries (
147- query . dependencies ,
148- ) ) {
149- const dependencyFile = join ( queryDir , filename ) ;
150- await writeFile ( dependencyFile , contents , "utf8" ) ;
151- }
152- }
153-
154- const syntheticQueryPack = {
155- name : "codeql/external-api-usage" ,
156- version : "0.0.0" ,
157- dependencies : {
158- [ `codeql/${ db . language } -all` ] : "*" ,
159- } ,
160- } ;
161-
162- const qlpackFile = join ( queryDir , "codeql-pack.yml" ) ;
163- await writeFile ( qlpackFile , dumpYaml ( syntheticQueryPack ) , "utf8" ) ;
164-
131+ // Create new temporary directory for query files and pack dependencies
132+ const queryDir = ( await dir ( { unsafeCleanup : true } ) ) . path ;
133+ await setUpPack ( queryDir , query , db . language ) ;
165134 await this . cliServer . packInstall ( queryDir ) ;
166135
167136 const view = new DataExtensionsEditorView (
0 commit comments