Skip to main content

mergeBlocks

mergeBlocks(blockPattern: PatternBlocks<{}>) : PatternBlocks<{}>

mergeBlocks(blockPattern) combines the patterns and sub-patterns in blockPattern based on common roots. This can be useful if the pattern contains multiple sub-patterns that each specify part of the desired block properties. For example, consider the following pattern1:

pattern1 = ```
interface GigabitEthernet1/0/1
switchport mode access
hsrp 30
preempt
router bgp
interface GigabitEthernet1/0/1
description Important port
hsrp 30
priority 50

```;

The value of mergeBlocks(pattern1) will be the following pattern, pattern2, which has all sub-blocks of the interface combined into one block:

pattern2 = ```
interface GigabitEthernet1/0/1
switchport mode access
hsrp 30
preempt
priority 50
description Important port
router bgp
```;

Note that mergeBlocks(pattern) works at all nesting levels of a block pattern. In other words, it will merge blocks not just at the root level, but also will apply block merging for the merged subtrees of a block. This can be seen in the above example, where the multiple hsrp 30 have been merged together into a single block.