mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 09:07:09 +00:00
Add utility to convert QC definitions tree into a flat list
This commit is contained in:
27
lib/www/server/lib/utils/flattenQCDefinitions.js
Normal file
27
lib/www/server/lib/utils/flattenQCDefinitions.js
Normal 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;
|
||||
@@ -2,5 +2,6 @@
|
||||
module.exports = {
|
||||
geometryAsString: require('./geometryAsString'),
|
||||
dms: require('./dms'),
|
||||
replaceMarkers: require('./replaceMarkers')
|
||||
replaceMarkers: require('./replaceMarkers'),
|
||||
flattenQCDefinitions: require('./flattenQCDefinitions')
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user