export function getListOfStateNamesFromStateNode()

in src/utils/astUtilityFunctions.ts [109:123]


export function getListOfStateNamesFromStateNode(node: PropertyASTNode, ignoreColonOffset: boolean = false): string[] {
    const nodeName = node.keyNode.value

    if (nodeName === 'States') {
        // The first object node will contain property nodes containing state names
        const objNode = node.children.find(isObjectNode)

        return objNode?.children
        // Filter out property nodes that do not have colonOffset. They are invalid.
        .filter(childNode => isPropertyNode(childNode) && childNode.colonOffset && (ignoreColonOffset || (!ignoreColonOffset && childNode.colonOffset >= 0)))
        .map(propNode => (propNode as PropertyASTNode).keyNode.value) ?? []
    } else {
        throw new Error('Not a state name property node')
    }
}