function getAllChildrenOfState()

in src/asl-utils/asl/asl.ts [127:154]


function getAllChildrenOfState(state: StateDefinition | Asl): StateId[] {
  const result: StateId[] = []

  if ('States' in state && state.States) {
    for (const childId of Object.keys(state.States)) {
      result.push(childId)
      const childState: StateDefinition = state.States[childId]
      result.push(...getAllChildrenOfState(childState))
    }
  }

  if ('Branches' in state && state.Branches) {
    // parallel
    for (const branch of state.Branches) {
      result.push(...getAllChildrenOfState(branch))
    }
  }

  if ('Iterator' in state && state.Iterator) {
    result.push(...getAllChildrenOfState(state.Iterator))
  }

  if ('ItemProcessor' in state && state.ItemProcessor) {
    result.push(...getAllChildrenOfState(state.ItemProcessor))
  }

  return result
}