Wb-rules: модули/библиотеки

Привет.

В некоторых местах приходится переопределять дефолтные функции интерпретатора ES: характернейший пример - setTimeout, в колбек которой надо передавать параметры, а из коробки она это не умеет.
Обязательно ли в каждый скриптовый файл класть текст переопределения, или можно собрать их все в одном файле (на манер существующих модулей) и спокойно юзать в остальных?

Спасибо.

Добрый день. Для такого есть модули:
https://wirenboard.com/wiki/Движок_правил_wb-rules_2.0#.D0.9C.D0.BE.D0.B4.D1.83.D0.BB.D0.B8

Это я читал, понятное дело. Будет ли глобально переопределена функция, объявленная в модуле? Или ее таки надо вызывать как m.funcname()?

Глобально - скорее нет. Модуль именно экспортирует, Думаю в понедельник поэкспериментирую, проконсультируюсь - отвечу точно.

1 лайк

Вот тут есть немного про глобальные объявления. Можно попробовать переопределить функцию в global.__proto__, только надо сначала сохранить оттуда старое определение setTimeout, потому что оно перезатрётся.

Думал, ага.
Вопрос совместимости: не вылезут ли боком такие копания в потрохах при обновлении движка правил, который пока что ну очень бурно развивается. :wink:
Надо подумать о компромиссе. А EC6 слишком тяжел для нашей машинки, да?

Ну, могут такие копания выйти боком. Я бы по возможности всё же из нормального модуля дёргал кастомный setTimeout, не переопределяя родной.

ЕС6 подтянем, но, скорее всего, это уже будет nodejs с нашими библиотеками

1 лайк

Хех. Все дороги ведут в!
Ждем. Примерно когда планируете?

Портировать wb-rules на какой-нибудь v8 - это переписывать всё почти полностью :slight_smile:

Пока сложно сказать, нам серьёзно не хватает рук сейчас. Не в самое ближайшее время, я думаю.