( loopBlockId: string, blocks: Record<string, BlockState> )
| 73 | * @returns Loop object for execution engine or undefined if not a valid loop |
| 74 | */ |
| 75 | export function convertLoopBlockToLoop( |
| 76 | loopBlockId: string, |
| 77 | blocks: Record<string, BlockState> |
| 78 | ): Loop | undefined { |
| 79 | const loopBlock = blocks[loopBlockId] |
| 80 | if (!loopBlock || loopBlock.type !== 'loop') return undefined |
| 81 | |
| 82 | const loopType = loopBlock.data?.loopType || 'for' |
| 83 | |
| 84 | const loop: Loop = { |
| 85 | id: loopBlockId, |
| 86 | nodes: findChildNodes(loopBlockId, blocks), |
| 87 | iterations: loopBlock.data?.count || DEFAULT_LOOP_ITERATIONS, |
| 88 | loopType, |
| 89 | enabled: loopBlock.enabled, |
| 90 | } |
| 91 | |
| 92 | loop.forEachItems = loopBlock.data?.collection || '' |
| 93 | loop.whileCondition = loopBlock.data?.whileCondition || '' |
| 94 | loop.doWhileCondition = loopBlock.data?.doWhileCondition || '' |
| 95 | |
| 96 | return loop |
| 97 | } |
| 98 | |
| 99 | /** |
| 100 | * Convert UI parallel block to executor Parallel format |
no test coverage detected