function resolveVariableValue(node, variables) {
    try {
        if (node.type === 'ObjectExpression') {
            let v = {};
            if (Array.isArray(node.properties)) {
                for (let idx = 0; idx < node.properties.length; ++idx) {
                    let item = node.properties[idx];
                    let value = resolveVariableValue(item.value);
                    let name = item.key.name;
                    v[name] = value;
                }
            }
            return v;
        } else if (node.type === 'BinaryExpression') {
            let left = resolveVariableValue(node.left, variables);
            let right = resolveVariableValue(node.right, variables);
            return left + right;
        } else if (node.type === 'Literal') {
            if (typeof node.value === 'string') {
                return `${node.value}`;
            } else if (typeof node.value === 'number') {
                return node.value;
            }
        } else if (node.type === 'Identifier') {
            return variables[node.name];
        } else {
            return '';
        }
    } catch (err) {
        return '';
    }
}
Resolve the value of a specific variable.
@param {*} node
@param {Array} variables variables that can be in the node.
@returns