From 669f4a6430c20b15bd09662c76c43297399b4c8f Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Mon, 19 Jun 2023 14:15:31 +0200 Subject: [PATCH] Add .model suffix to model filenames --- .../src/data-extensions-editor/yaml.ts | 8 +++++-- .../data-extensions-editor/yaml.test.ts | 22 +++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/extensions/ql-vscode/src/data-extensions-editor/yaml.ts b/extensions/ql-vscode/src/data-extensions-editor/yaml.ts index 1c3568890..46fda8310 100644 --- a/extensions/ql-vscode/src/data-extensions-editor/yaml.ts +++ b/extensions/ql-vscode/src/data-extensions-editor/yaml.ts @@ -124,7 +124,11 @@ export function createDataExtensionYamlsPerLibrary( const semverRegex = /[v=\s]*([0-9]+)\.([0-9]+)\.([0-9]+)(?:-?((?:[0-9]+|\d*[a-zA-Z-][a-zA-Z0-9-]*)(?:\.(?:[0-9]+|\d*[a-zA-Z-][a-zA-Z0-9-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?/; -export function createFilenameForLibrary(library: string, prefix = "models/") { +export function createFilenameForLibrary( + library: string, + prefix = "models/", + suffix = ".model", +) { let libraryName = basename(library); const extension = extname(libraryName); libraryName = libraryName.slice(0, -extension.length); @@ -153,7 +157,7 @@ export function createFilenameForLibrary(library: string, prefix = "models/") { // Remove any duplicate dots libraryName = libraryName.replaceAll(/\.{2,}/g, "."); - return `${prefix}${libraryName}.yml`; + return `${prefix}${libraryName}${suffix}.yml`; } export function loadDataExtensionYaml( diff --git a/extensions/ql-vscode/test/unit-tests/data-extensions-editor/yaml.test.ts b/extensions/ql-vscode/test/unit-tests/data-extensions-editor/yaml.test.ts index 5282d5424..b4e4996f7 100644 --- a/extensions/ql-vscode/test/unit-tests/data-extensions-editor/yaml.test.ts +++ b/extensions/ql-vscode/test/unit-tests/data-extensions-editor/yaml.test.ts @@ -292,7 +292,7 @@ describe("createDataExtensionYamlsPerLibrary", () => { ); expect(yaml).toEqual({ - "models/sql2o.yml": `extensions: + "models/sql2o.model.yml": `extensions: - addsTo: pack: codeql/java-all extensible: sourceModel @@ -315,7 +315,7 @@ describe("createDataExtensionYamlsPerLibrary", () => { extensible: neutralModel data: [] `, - "models/spring-boot.yml": `extensions: + "models/spring-boot.model.yml": `extensions: - addsTo: pack: codeql/java-all extensible: sourceModel @@ -402,38 +402,38 @@ describe("loadDataExtensionYaml", () => { describe("createFilenameForLibrary", () => { const testCases = [ - { library: "sql2o.jar", filename: "models/sql2o.yml" }, + { library: "sql2o.jar", filename: "models/sql2o.model.yml" }, { library: "sql2o-1.6.0.jar", - filename: "models/sql2o.yml", + filename: "models/sql2o.model.yml", }, { library: "spring-boot-3.0.2.jar", - filename: "models/spring-boot.yml", + filename: "models/spring-boot.model.yml", }, { library: "spring-boot-v3.0.2.jar", - filename: "models/spring-boot.yml", + filename: "models/spring-boot.model.yml", }, { library: "spring-boot-3.0.2-alpha1.jar", - filename: "models/spring-boot.yml", + filename: "models/spring-boot.model.yml", }, { library: "spring-boot-3.0.2beta2.jar", - filename: "models/spring-boot.yml", + filename: "models/spring-boot.model.yml", }, { library: "rt.jar", - filename: "models/rt.yml", + filename: "models/rt.model.yml", }, { library: "System.Runtime.dll", - filename: "models/system.runtime.yml", + filename: "models/system.runtime.model.yml", }, { library: "System.Runtime.1.5.0.dll", - filename: "models/system.runtime.yml", + filename: "models/system.runtime.model.yml", }, ];