@@ -10,17 +10,12 @@ import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders";
1010import { load as loadYaml } from "js-yaml" ;
1111import { CodeQLCliServer } from "../codeql-cli/cli" ;
1212import { pathsEqual } from "../common/files" ;
13- import {
14- convertFromLegacyModeledMethods ,
15- convertFromLegacyModeledMethodsFiles ,
16- convertToLegacyModeledMethods ,
17- } from "./modeled-methods-legacy" ;
1813
1914export async function saveModeledMethods (
2015 extensionPack : ExtensionPack ,
2116 language : string ,
2217 methods : Method [ ] ,
23- modeledMethods : Record < string , ModeledMethod > ,
18+ modeledMethods : Record < string , ModeledMethod [ ] > ,
2419 mode : Mode ,
2520 cliServer : CodeQLCliServer ,
2621 logger : NotificationLogger ,
@@ -34,8 +29,8 @@ export async function saveModeledMethods(
3429 const yamls = createDataExtensionYamls (
3530 language ,
3631 methods ,
37- convertFromLegacyModeledMethods ( modeledMethods ) ,
38- convertFromLegacyModeledMethodsFiles ( existingModeledMethods ) ,
32+ modeledMethods ,
33+ existingModeledMethods ,
3934 mode ,
4035 ) ;
4136
@@ -50,12 +45,12 @@ async function loadModeledMethodFiles(
5045 extensionPack : ExtensionPack ,
5146 cliServer : CodeQLCliServer ,
5247 logger : NotificationLogger ,
53- ) : Promise < Record < string , Record < string , ModeledMethod > > > {
48+ ) : Promise < Record < string , Record < string , ModeledMethod [ ] > > > {
5449 const modelFiles = await listModelFiles ( extensionPack . path , cliServer ) ;
5550
5651 const modeledMethodsByFile : Record <
5752 string ,
58- Record < string , ModeledMethod >
53+ Record < string , ModeledMethod [ ] >
5954 > = { } ;
6055
6156 for ( const modelFile of modelFiles ) {
@@ -73,8 +68,7 @@ async function loadModeledMethodFiles(
7368 ) ;
7469 continue ;
7570 }
76- modeledMethodsByFile [ modelFile ] =
77- convertToLegacyModeledMethods ( modeledMethods ) ;
71+ modeledMethodsByFile [ modelFile ] = modeledMethods ;
7872 }
7973
8074 return modeledMethodsByFile ;
@@ -84,8 +78,8 @@ export async function loadModeledMethods(
8478 extensionPack : ExtensionPack ,
8579 cliServer : CodeQLCliServer ,
8680 logger : NotificationLogger ,
87- ) : Promise < Record < string , ModeledMethod > > {
88- const existingModeledMethods : Record < string , ModeledMethod > = { } ;
81+ ) : Promise < Record < string , ModeledMethod [ ] > > {
82+ const existingModeledMethods : Record < string , ModeledMethod [ ] > = { } ;
8983
9084 const modeledMethodsByFile = await loadModeledMethodFiles (
9185 extensionPack ,
@@ -94,7 +88,11 @@ export async function loadModeledMethods(
9488 ) ;
9589 for ( const modeledMethods of Object . values ( modeledMethodsByFile ) ) {
9690 for ( const [ key , value ] of Object . entries ( modeledMethods ) ) {
97- existingModeledMethods [ key ] = value ;
91+ if ( ! ( key in existingModeledMethods ) ) {
92+ existingModeledMethods [ key ] = [ ] ;
93+ }
94+
95+ existingModeledMethods [ key ] . push ( ...value ) ;
9896 }
9997 }
10098
0 commit comments