From b2ed3f7a17c00742287bd8914fd5abb2b9c19c8f Mon Sep 17 00:00:00 2001 From: MarsLuay <70299537+MarsLuay@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:25:11 +0000 Subject: [PATCH] refactor: flatten nested logic in findXmlElementRanges --- src/docxTableCellFontSizePreserver.ts | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/docxTableCellFontSizePreserver.ts b/src/docxTableCellFontSizePreserver.ts index 52219df..95a1209 100644 --- a/src/docxTableCellFontSizePreserver.ts +++ b/src/docxTableCellFontSizePreserver.ts @@ -74,30 +74,30 @@ function findXmlElementRanges(xml: string, elementName: string): XmlRange[] { } const tag = readXmlTag(xml, tagStart); - if (!tag) { - index = tagStart + 1; + if (!tag || tag.name !== elementName) { + index = tag ? tag.close + 1 : tagStart + 1; continue; } - if (tag.name === elementName) { - if (tag.isClosing) { - if (depth > 0) { - depth -= 1; - if (depth === 0 && rangeStart >= 0) { - const end = tag.close + 1; - ranges.push({ start: rangeStart, end, xml: xml.slice(rangeStart, end) }); - rangeStart = -1; - } - } - } else if (!tag.isSelfClosing) { - if (depth === 0) { - rangeStart = tagStart; + index = tag.close + 1; + + if (tag.isClosing) { + if (depth > 0) { + depth -= 1; + if (depth === 0 && rangeStart >= 0) { + ranges.push({ start: rangeStart, end: index, xml: xml.slice(rangeStart, index) }); + rangeStart = -1; } - depth += 1; } + continue; } - index = tag.close + 1; + if (!tag.isSelfClosing) { + if (depth === 0) { + rangeStart = tagStart; + } + depth += 1; + } } return ranges;