From 3f4ed4878797030df4a724fcfbd591a171eaab8f Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 10 Apr 2024 15:08:35 +0200 Subject: [PATCH] Trim whitespace and slashes in pack names --- .../src/model-editor/extension-pack-name.ts | 11 +++++++++++ .../model-editor/extension-pack-name.test.ts | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/extensions/ql-vscode/src/model-editor/extension-pack-name.ts b/extensions/ql-vscode/src/model-editor/extension-pack-name.ts index 3234f254b..b9e972be0 100644 --- a/extensions/ql-vscode/src/model-editor/extension-pack-name.ts +++ b/extensions/ql-vscode/src/model-editor/extension-pack-name.ts @@ -17,6 +17,17 @@ export function formatPackName(packName: ExtensionPackName): string { export function sanitizePackName(userPackName: string): ExtensionPackName { let packName = userPackName; + + packName = packName.trim(); + + while (packName.startsWith("/")) { + packName = packName.slice(1); + } + + while (packName.endsWith("/")) { + packName = packName.slice(0, -1); + } + if (!packName.includes("/")) { packName = `pack/${packName}`; } diff --git a/extensions/ql-vscode/test/unit-tests/model-editor/extension-pack-name.test.ts b/extensions/ql-vscode/test/unit-tests/model-editor/extension-pack-name.test.ts index 3d42dc69e..589ef8fb0 100644 --- a/extensions/ql-vscode/test/unit-tests/model-editor/extension-pack-name.test.ts +++ b/extensions/ql-vscode/test/unit-tests/model-editor/extension-pack-name.test.ts @@ -58,6 +58,18 @@ describe("sanitizePackName", () => { name: "a/b--d--e-d-csharp", expected: "a/b-d-e-d-csharp", }, + { + name: "/github/vscode-codeql", + expected: "github/vscode-codeql", + }, + { + name: "github/vscode-codeql/", + expected: "github/vscode-codeql", + }, + { + name: "///github/vscode-codeql///", + expected: "github/vscode-codeql", + }, ]; test.each(testCases)(