Skip to main content

export / import

Вызов функций чужого плагина. Плагины изолированы: глобальные переменные одного не видны другому.
Прокси резолвит функцию на каждом вызове, поэтому в руках не останется указателя на код исчезнувшего плагина. Ошибка внутри экспорта не роняет вызывающего: она заворачивается в [export плагин.имя] .... Экспорты снимаются вместе с плагином, поэтому lua_reload <plugin> не натыкается на «export уже зарегистрирован». Кто что публикует — консольная команда lua_exports.

export

Публикует функцию плагина наружу.

Аргументы

Возвращает

Ничего.

Опции

import

Возвращает прокси к экспортам плагина; жёсткая зависимость.

Аргументы

Возвращает

Бросает ошибку, если плагина нет: зависимость падает при загрузке, а не через час на nil-вызове.
Плагины грузятся по алфавиту, поэтому import на этапе загрузки видит только тех, кто отсортирован раньше. Если порядок неудобен, бери зависимость лениво — внутри обработчика — или через optional.

optional

То же, что import, но nil вместо ошибки; мягкая зависимость.

Аргументы

Возвращает

Пример