(node: Protocol)
| 328 | * @returns Map of componentName to array of instances |
| 329 | */ |
| 330 | export function extractComponentGroups(node: Protocol): Map<string, Protocol[]> { |
| 331 | if (!node || !node.children || node.children.length === 0) return new Map(); |
| 332 | const componentGroups = new Map<string, Protocol[]>(); |
| 333 | const validChildren = node.children.filter(c => c && c.data); |
| 334 | |
| 335 | validChildren.forEach(child => { |
| 336 | const name = child.data.componentName; |
| 337 | if (name) { |
| 338 | if (!componentGroups.has(name)) { |
| 339 | componentGroups.set(name, []); |
| 340 | } |
| 341 | componentGroups.get(name)!.push(child); |
| 342 | } |
| 343 | }); |
| 344 | |
| 345 | return componentGroups; |
| 346 | } |
| 347 | |
| 348 | /** |
| 349 | * Applies props and state to the protocol node |
no test coverage detected