#pragma once #include #include namespace Scripting { class ScriptRuntime { public: enum class Result { // Скрипт выполнился до конца. outResult — пустая строка или бизнес-ошибка // (то, что вернёт `run()` из JS как строку). EventHandler трактует строку // как ошибку задачи; пусто — как success. Completed, // Не удалось загрузить/распарсить/выполнить скрипт (JS-ошибка, не business). // В outResult — диагностика. Caller обязан сделать fallback на C++. EngineError, // Скрипт не разрешён к запуску (флаг выключен / нет файла / нет SHA). // outResult — причина. Caller делает fallback. Disabled }; // Синхронно запускает скрипт / в свежем QJSEngine. // Должен вызываться из того же потока, где будет использоваться (worker-поток // EventHandler'а — там разрешён блокирующий sleep и DAO). // // params видны JS как host.params.. static Result run(const QString &bank, const QString &scriptName, const QVariantMap ¶ms, QString *outResult); }; } // namespace Scripting