Add utility to convert QC definitions tree into a flat list

This commit is contained in:
D. Berge
2022-03-09 17:32:23 +01:00
parent 14a2f57c8d
commit d90acb1aeb
2 changed files with 29 additions and 1 deletions

View File

@@ -0,0 +1,27 @@
/** Convert QC definitions tree into a flat list.
*/
function flattenQCDefinitions(items, keywords=[], labels=[], disabled=false) {
const result = [];
if (items) {
for (const item of items) {
if (!item.children) {
result.push({
...item,
iterate: (item.iterate ?? "shots"),
labels: labels.concat(item.labels??[]),
disabled: (item.disabled ?? disabled)
});
} else {
const k = [...keywords, item.name];
const l = [...labels, ...(item.labels??[])];
const d = item.disabled ?? disabled
result.push(...flattenQCDefinitions(item.children, k, l, d))
}
}
}
return result;
}
module.exports = flattenQCDefinitions;

View File

@@ -2,5 +2,6 @@
module.exports = {
geometryAsString: require('./geometryAsString'),
dms: require('./dms'),
replaceMarkers: require('./replaceMarkers')
replaceMarkers: require('./replaceMarkers'),
flattenQCDefinitions: require('./flattenQCDefinitions')
};