UNPKG

cdk-asl-extractor

Version:

Convert your CDK state machine to an ASL file

35 lines (32 loc) 940 B
const fnJoin = (expression) => { const [delimiter, values] = expression; return values.join(delimiter, resolveExpressions(values)) } const fnGetAtt = (expression) => { return expression[1] && expression[1] === 'Arn' ? expression[0] : expression.join('', expression) } const resolveExpressions = (expressions) => { const intrinsicFunctions = [ { templateName: 'Ref', resolver: () => 'aws' }, { templateName: 'Fn::GetAtt', resolver: fnGetAtt }, { templateName: 'Fn::Join', resolver: fnJoin } ] return expressions.map((item, key) => { intrinsicFunctions.map((func) => { if (item.hasOwnProperty(func.templateName)) { expressions[key] = func.resolver(item[func.templateName]); } }) return expressions[key] }) } module.exports = { fnJoin, resolveExpressions }