Импорт библиотек с использованием синтаксиса «новая функция» - PullRequest
0 голосов
/ 03 августа 2020

В ответе API, с которым я выполняю интеграцию, я получаю код JS внутри JSON, который мне нужно выполнить во время выполнения. Для этого я обычно использую оператор new Function(). Хотя в большинстве случаев это работает нормально, есть и другие случаи, которые содержат ссылки на внешние библиотеки, такие как moment или loda sh. Вот пример такой JS строки:

{
...

  "calculateValue": "value = moment().diff(moment(row.DateOfBirth), 'years');"

...
}

Итак, я создаю функцию, выполняя new Function('row', 'value = moment().diff(moment(row.DateOfBirth), 'years');'), а затем выполняю ее. Однако я получаю сообщение об ошибке [ReferenceError: moment is not defined]

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

Есть ли способ импортировать внешние библиотеки с использованием синтаксиса «new Function» или «eval»?

Пожалуйста, имейте в виду, что я получаю эти JS строки динамически, запрашивая данные из сервер не может их записать.

...