Skip to content

Commit 99ebd0b

Browse files
committed
feat: hide errors when they arise from government schema being rubbish
1 parent 1db02dd commit 99ebd0b

File tree

2 files changed

+40
-5
lines changed

2 files changed

+40
-5
lines changed

renderer.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,33 @@ ipcRenderer.on("xml-validation-errors", (event, results) => {
5656
const list = document.createElement("ul");
5757
div.appendChild(list);
5858

59+
// TODO: this is janky af
60+
let listCount = 0;
61+
let skipNext = false;
62+
5963
results.errors.forEach((error) => {
60-
const item = document.createElement("li");
61-
item.textContent = error;
62-
list.appendChild(item);
64+
if (error.trim() != "^") {
65+
switch (skipNext) {
66+
case true:
67+
skipNext = false;
68+
listCount = 0;
69+
break;
70+
case false:
71+
listCount++;
72+
if (error.includes("is not absolute")) {
73+
skipNext = true;
74+
} else {
75+
const item = document.createElement("li");
76+
item.textContent = `${error.type}: ${error}`;
77+
if (listCount % 2 === 0) {
78+
item.style.fontStyle = "italic";
79+
item.style.listStyle = "none";
80+
}
81+
list.appendChild(item);
82+
}
83+
break;
84+
}
85+
}
6386
});
6487

6588
logToMain("xml validation completed");

xmlValidator.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,25 @@ const { xml, xsd } = workerData;
99

1010
try {
1111
let result = xmllint.validateXML({ xml, schema: xsd });
12-
log.info("result in worker ", result);
12+
13+
log.info("Validation Results");
14+
if (result.errors && result.errors.length > 0) {
15+
log.error("Validation errors occurred");
16+
log.error(result.errors);
17+
} else {
18+
log.info("Validation successful");
19+
log.info(result);
20+
}
1321

1422
parentPort.postMessage({
1523
valid: !result.errors || result.errors.length === 0,
1624
errors: result.errors,
1725
});
26+
1827
log.info("error not occuring in post messages");
1928
} catch (error) {
20-
parentPort.postMessage({ valid: false, errors: [error.message] });
29+
parentPort.postMessage({
30+
valid: false,
31+
errors: [error.message],
32+
});
2133
}

0 commit comments

Comments
 (0)