From 7e1d0e50ae088a5d9fdd6ebca7b71de85fc8c579 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 9 Oct 2024 16:04:58 +0200 Subject: [PATCH 1/2] Do not treat `[topoaa.mol1]` as a module --- CHANGELOG.md | 6 ++++++ packages/core/package.json | 2 +- packages/core/src/toml.test.ts | 17 +++++++++++++++++ packages/core/src/toml.ts | 5 ++++- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4d50f9..6802605 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## @i-vresse/wb-core 3.2.3 - 2024-10-09 + +### Fixed + +- Do not treat `[topoaa.mol1]` as a module + ## @i-vresse/wb-core 3.2.2 - 2024-10-09 ### Added diff --git a/packages/core/package.json b/packages/core/package.json index 9d114a4..ce036ae 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@i-vresse/wb-core", - "version": "3.2.2", + "version": "3.2.3", "description": "React components to construct a workflow builder application", "keywords": [ "react", diff --git a/packages/core/src/toml.test.ts b/packages/core/src/toml.test.ts index 3f54cad..9b2234c 100644 --- a/packages/core/src/toml.test.ts +++ b/packages/core/src/toml.test.ts @@ -1112,4 +1112,21 @@ describe('lines2node()', () => { const expected = [-1, -1, -1, -1, -1, 0, 0, 1] expect(lookup).toEqual(expected) }) + + it('given 2 sections', () => { + const workflow = [ + '', + 'molecules = [', + ']', + '', + '[section1]', + '', + '[section1.mol1]' + ].join('\n') + + const lookup = lines2node(workflow) + + const expected = [-1, -1, -1, -1, -1, 0, 0, 0] + expect(lookup).toEqual(expected) + }) }) diff --git a/packages/core/src/toml.ts b/packages/core/src/toml.ts index 16e8800..60b6007 100644 --- a/packages/core/src/toml.ts +++ b/packages/core/src/toml.ts @@ -309,6 +309,8 @@ export function dedupWorkflow (inp: string): string { * For each line in the text, return the node index. * -1 for global parameters. * + * Ignores table with dots in the name. + * * @param text The TOML text * @returns */ @@ -320,7 +322,8 @@ export function lines2node (text: string): number[] { const isTable = /^\[/ for (let i = 0; i < lines.length; i++) { const line = lines[i] - if (isTable.test(line)) { + if (isTable.test(line) && !line.includes('.') + ) { nodeIndex++ } nodeLines.push(nodeIndex) From 04fd2ad6e355f4116b62a2c15b6841ee683d824b Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Wed, 9 Oct 2024 16:10:05 +0200 Subject: [PATCH 2/2] No need for regex --- packages/core/src/toml.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/core/src/toml.ts b/packages/core/src/toml.ts index 60b6007..0d15a76 100644 --- a/packages/core/src/toml.ts +++ b/packages/core/src/toml.ts @@ -319,11 +319,9 @@ export function lines2node (text: string): number[] { // highlighter linenumber starts with 1 so add offset const nodeLines: number[] = [-1] let nodeIndex = -1 - const isTable = /^\[/ for (let i = 0; i < lines.length; i++) { const line = lines[i] - if (isTable.test(line) && !line.includes('.') - ) { + if (line.startsWith('[') && !line.includes('.')) { nodeIndex++ } nodeLines.push(nodeIndex)