asksuite-core
Version:
22 lines (15 loc) • 758 B
JavaScript
const evaluate = require('static-eval');
const parse = require('esprima').parse;
const evaluator = {};
evaluator.evaluateDialog = function(src, data) {
let evaluation = null;
try {
const ast = parse(src).body[0].expression;
evaluation = evaluate(ast, data);
// eslint-disable-next-line no-empty
} catch (e) {}
return evaluation ? evaluation : src;
};
// !user.clickReserva ? 'pousada-do-engenho.reserva' : user.reserva ? 'pousada-do-engenho.reserva.sim' : 'pousada-do-engenho.reserva.nao'
// console.log(evaluator.evaluateDialog("!user.clickReserva ? 'pousada-do-engenho.reserva' : user.clickReserva ? 'pousada-do-engenho.reserva.sim' : 'pousada-do-engenho.reserva.nao'", {user: {clickReserva: true}}));
module.exports = evaluator;