in src/utils/astUtilityFunctions.ts [151:181]
export function getStateInfo(
node: ASTNode,
): { stateName: string; stateType: string | undefined; queryLanguage: QueryLanguages | undefined } | undefined {
const parent = node.parent
if (isPropertyNode(node) && parent && isChildOfStates(node.parent)) {
let stateType: string | undefined
let queryLanguage: QueryLanguages | undefined = undefined
if (node.valueNode && isObjectNode(node.valueNode)) {
const typeProperty = node.valueNode.properties.find((property) => property.keyNode.value === 'Type')
const queryLanguageValue = node.valueNode.properties
.find((property) => property.keyNode.value === 'QueryLanguage')
?.valueNode?.value?.toString()
stateType = typeProperty?.valueNode?.value?.toString() ?? undefined
if (queryLanguageValue === QueryLanguages.JSONata) {
queryLanguage = QueryLanguages.JSONata
} else if (queryLanguageValue === QueryLanguages.JSONPath) {
queryLanguage = QueryLanguages.JSONPath
}
}
return {
stateName: node.keyNode.value,
stateType,
queryLanguage,
}
} else if (!parent) {
return undefined
}
return getStateInfo(node.parent)
}