func inputTypesForNode()

in dev/import-beats/streams_config_parser.go [41:69]


func inputTypesForNode(node parse.Node) []string {
	textNode, isTextNode := node.(*parse.TextNode)
	if isTextNode {
		inputType, ok := extractInputTypeFromTextNode(textNode)
		if ok {
			return []string{inputType}
		}
		return nil
	}

	listNode, isListNode := node.(*parse.ListNode)
	if isListNode {
		return inputTypesForListNode(listNode)
	}

	ifNode, isIfNode := node.(*parse.IfNode)
	if isIfNode {
		var inputTypes []string

		if ifNode.List != nil {
			inputTypes = append(inputTypes, inputTypesForListNode(ifNode.List)...)
		}
		if ifNode.ElseList != nil {
			inputTypes = append(inputTypes, inputTypesForListNode(ifNode.ElseList)...)
		}
		return inputTypes
	}
	return nil
}