@baseplate-dev/sync
Version:
Library for syncing Baseplate descriptions
26 lines • 947 B
JavaScript
/**
* Recursively goes through generator children and extracts them into a flat list
*
* @param entry Generator entry
* @returns Flat list of generator entry and its children
*/
function flattenGeneratorEntries(entry) {
const childEntries = entry.children.flatMap((child) => flattenGeneratorEntries(child));
return [entry, ...childEntries];
}
/**
* Recursively goes through generator task entries and extracts them into a flat list
*
* @param entry Generator entry
* @returns Flat list of generator entry and its children
*/
export function flattenGeneratorTaskEntriesAndPhases(entry) {
const entries = flattenGeneratorEntries(entry);
const taskEntries = entries.flatMap((e) => e.tasks);
const phases = entries.flatMap((e) => [
...e.preRegisteredPhases,
...e.tasks.map((t) => t.task.phase).filter((x) => x !== undefined),
]);
return { taskEntries, phases };
}
//# sourceMappingURL=utils.js.map