TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Обновления Wiren Board

25 Aug, 17:14

Telegram'da ochish Ulashish Shikoyat qilish

Prev Next
Бета-тест обновления wb-rules

Оказалось, что очень просто поменять наш древний движок Duktape на другой движок такого же класса (маленький и встраиваемый) - QuickJS.

Это сразу открывает все новые модные фичи JS, которые там появились за последние 15 лет, в т.ч. async/await. Потом мы туда ещё и typescript прикрутили, чтобы два раза не вставать.

Главное
✅ вместо (или вместе) с defineRule можно пользоваться стандартными async/await идиомами:
defineRule('follow', {
whenChanged: 'ui/follow',
then: async () => {
const val = await changed('relay/channel1');
log(`канал переключился в ${val}`);
},
});

✅ можно писать линейный код вместо адских колбеков:
for (;;)
dev["buzzer/enabled"] = true;
await sleep(10);
dev["buzzer/enabled"] = false;
await sleep(1000);
}
причём это работает даже на верхнем уровне, так что если вы не любите колбеки и асинхронность, то можете писать супер-циклы, как в старых добрых ПЛК.

✅ новые модные возможности языка: стрелочные функции, классы, форматирование строк и так далее. Поддерживается почти весь ES2026 и TypeScript 7.

Заодно есть
✅ красивые ошибки и раскраска в редакторе;
✅ полноценная проверка типов в том числе для dev["dev/ctrl"] - т.е. для каждого канала оно знает и проверяет тип;
✅ проверка типов работает в "старом" JS - как ворнинги;
✅ читаемые ошибки в логах и консоли;
✅ всякие вкусности, типа детектирования бесконечных циклов, зависания правил и прочее.

Попробовать:
echo "deb https://deb.wirenboard.com/all experimental.quickjs2 main" > /etc/apt/sources.list.d/quickjs2-testing.list

apt update
apt install wb-rules/experimental.quickjs2 wb-mqtt-homeui/experimental.quickjs2
документация - в PR

Откатить:
rm /etc/apt/sources.list.d/quickjs2-testing.list
apt update
apt install wb-tsgo- wb-rules/testing wb-mqtt-homeui/testing # или stable

Дисклеймер: это бета-тест, что-то может работать плохо, не рекомендуем использовать в продакшне.

Обсуждение в специальной группе.

1.7k 0 18 20 54
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot