Динамически генерируемый строковый объект для передачи в функцию save-eval, выдающий Error: ReferenceError: не определено - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь использовать safeEval в приложении, где у меня есть объект со списком функций.

  • Bot.js
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));
...