Я пытаюсь использовать safeEval в приложении, где у меня есть объект со списком функций.
const Object = {
Bot: {
send: (inputText) => {
return inputText;
},
sleep: (inputText) => new Promise((resolve, reject) => {
try {
setTimeout(() => resolve('Timeout!'), inputText * 1000);
} catch(error) {
reject();
}
}),
translate: async (inputText) => new Promise((resolve, reject) => {
try {
resolve("translation: " + inputText);
} catch(error) {
reject();
}
})
}
};
И ядинамически генерируемый объект кода.
const input = `{ bot: Bot.send(${message}) }`;
С простым строковым объектом, например:
const inputString = `{ bot: Bot.send('hola') }`;
Я не получаю никаких ошибок. Функция возвращает:
{ bot: 'hola'}
Но при динамическом генерировании строки sade-eval выдает ошибку, строка не определяется.
Функция:
console.log(saveEval( input, Object));