tgoop.com/smelukov_dev/102
Last Update:
А вот и фича которую я обещал анонсировать в подкасте, но на всякий случай продублирую здесь.
Теперь можно создавать кастомные отчёты и пробрасывать прямо в UI.
Прямо сейчас примеры можно посмотреть на https://statoscope.tech (выбрать демо-статы и сверху справа будет выпадашка “Custom Reports”
А посмотреть пример использования можно здесь.
В чем смысл: вы можете передать в конфиг плагина массив из кастомных отчетов, которые будут проброшены в UI-отчёт.
Каждый элемент массива это объект с несколькими полями:
- id - идентификатор отчета
- name - отображаемое имя
- data - данные с которыми будет работать отчёт. Это могут быть как заранее известные данные, так и функция, которая куда-то за этими данными идёт и возвращает промис
- view - вью на DiscoveryJS (можно использовать композицию из готовых компонентов)
Во view можно передать как JSON, так и строку.
И если с JSON все понятно, то вот со строкой интересно.
Пока у вас простой отчёт, вы можете обойтись JSON-ом, а когда вам понадобится более сложный интерактивный отчёт (с обработкой кнопок и других событий), то сразу встанет вопрос - а как собственно передать код функций-обработчиков в виде JSON? Ответ - никак 🙂
Вместо этого, во view можно передать строку, которую Statoscope UI заэвалит (eval) и которая в результате должна вернуть DiscoveryJS view.
Например:{
id: “foo-report”,
view: fs.readFileSync(“my-report.js”, “utf8”)
}
Тут конечно встаёт вопрос безопасности, потому что этот код будет выполняться на браузере у клиента, а нам не всегда хочется чтобы в нашем браузере выполнялся какой-то непонятный произвольный код, особенно если он получен непонятно от кого (вам ведь могут просто прислать HTML-отчёт статоскопа, мол, «посмотри пожалуйста».
Я решил, что в тех случаях, когда в качестве view передаётся строка, перед отображением отчета отображается предупреждение-вопрос, мол, "Вью этого отчета - это скрипт. Вы доверяете источнику отчета и согласны выполнить этот скрипт?"
Посмотрите пример.
Всё это счастье работает на все том же механизме расширения статов и под кастомные репорты есть свое расширение.
BY Сергей Мелюков

Share with your friend now:
tgoop.com/smelukov_dev/102