From bcda6938cf3fa606224ae87ab3062b26cf368453 Mon Sep 17 00:00:00 2001 From: Marcelo Lv Cabral Date: Fri, 1 Dec 2023 13:22:43 -0700 Subject: [PATCH] fix(lib): Component XML path parsing was failing on edge case (#37) * fix(lib): Component XML path parsing was failing on edge case * Fixed search string to match what `fast-glob` supports --- .gitignore | 1 + src/componentprocessor/index.ts | 11 ++++++++--- test/componentprocessor/componentprocessor.test.js | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7315844c6..6e693aaff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ +.vscode/settings.json lib/ types/ node_modules/ diff --git a/src/componentprocessor/index.ts b/src/componentprocessor/index.ts index e332cdad3..1919e5228 100644 --- a/src/componentprocessor/index.ts +++ b/src/componentprocessor/index.ts @@ -87,7 +87,10 @@ export async function getComponentDefinitionMap( additionalDirs: string[] = [], libraryName: string | undefined ) { - let searchString = `{components,${additionalDirs.join(",")}}`; + let searchString = "{components, }"; + if (additionalDirs.length) { + searchString = `{components,${additionalDirs.join(",")}}`; + } const componentsPattern = path.join(rootDir, searchString, "**", "*.xml"); const xmlFiles: string[] = fg.sync(componentsPattern, {}); @@ -108,11 +111,13 @@ async function processXmlTree( // create map of just ComponentDefinition objects nodeDefs.map((item) => { if (item.isFulfilled && !item.isRejected) { - let name = item.value!.name!.toLowerCase(); + let name = item.value?.name?.toLowerCase(); if (libraryName) { name = `${libraryName.toLowerCase()}:${name}`; } - nodeDefMap.set(name, item.value!); + if (name) { + nodeDefMap.set(name, item.value!); + } } }); diff --git a/test/componentprocessor/componentprocessor.test.js b/test/componentprocessor/componentprocessor.test.js index 72812f86f..b4344cff7 100644 --- a/test/componentprocessor/componentprocessor.test.js +++ b/test/componentprocessor/componentprocessor.test.js @@ -35,7 +35,7 @@ describe("component parsing support", () => { it("only searches components if no custom directories", async () => { fg.sync.mockImplementation((pattern, options) => { - expect(pattern.includes("{components,}")).toBeTruthy(); + expect(pattern.includes("{components, }")).toBeTruthy(); return []; });