Импорт функций
Узнайте, как импортировать функции из других плагинов, написанных на разных языках, и использовать их в своем собственном.
В Plugify языковой модуль JavaScript позволяет импортировать и использовать функции из плагинов, написанных на других языках. Это достигается за счет синтетических модулей, генерируемых во время выполнения, которые обеспечивают бесшовное взаимодействие между плагинами. Кроме того, файлы типов (.d.ts
) могут использоваться для предоставления информации о типах TypeScript для улучшения опыта разработки в IDE, таких как VSCode.
Это руководство объясняет, как импортировать функции в JavaScript и как использовать файлы типов для разработки.
Обзор
При импорте функций из другого плагина в JavaScript:
- Модули, генерируемые во время выполнения: Plugify динамически генерирует синтетические модули во время выполнения, позволяя вам импортировать и вызывать функции из других плагинов напрямую.
- Файлы типов для разработки: Файлы типов (
.d.ts
) предоставляют информацию о типах TypeScript для JavaScript API. Эти файлы не требуются для выполнения во время выполнения, но полезны для разработки. - Прямые вызовы функций: Функции вызываются напрямую с использованием импортированных синтетических модулей.
Импорт функций в JavaScript
Импорт синтетических модулей
Чтобы импортировать функции из другого плагина, используйте систему импорта Plugify для загрузки синтетического модуля для целевого плагина.
plugify
: Основной модуль Plugify, предоставляющий служебные классы, такие какVector2
,Vector3
и т.д.plugin_from_another_language
: Синтетический модуль для целевого плагина. Замените это на имя плагина, из которого вы хотите импортировать функции.
Вызов импортированных функций
После импорта синтетического модуля вы можете вызывать его функции напрямую.
Пример 1: Вызов простой функции
ParamCallback
: Это пример функции, экспортируемой целевым плагином. Замените его на фактическое имя функции.- Параметры: Передайте необходимые параметры, как определено в сигнатуре функции.
Пример 2: Вызов функции с параметром-обратным вызовом
Если импортируемая функция требует обратный вызов в качестве параметра, вы можете определить обратный вызов в JavaScript и передать его функции. Вот пример:
CallFuncCallback
: Это пример функции, которая принимает обратный вызов в качестве параметра.mockFunc
: Это функция обратного вызова, определенная в JavaScript. Она изменяет параметры, переданные по ссылке, и возвращает их в массиве.- Возвращаемые значения: Функция обратного вызова возвращает
null
(для типа возвращаемого значения void) и измененные параметры.
Использование файлов типов для разработки
Файлы типов (.d.ts
) не требуются для выполнения во время выполнения, но настоятельно рекомендуются для разработки. Они предоставляют информацию о типах TypeScript, что облегчает понимание доступных функций и их параметров.
Генерация файлов типов
Plugify предоставляет скрипт generator.js
для автоматической генерации файлов типов для импортируемых плагинов.
Найдите скрипт генератора:
- Скрипт
generator.py
находится в папкеgenerator
языкового модуля JavaScript.
Запустите скрипт генератора:
- Откройте терминал или командную строку и перейдите в папку, содержащую
generator.js
. - Запустите скрипт с помощью следующей команды:
путь_к_плагину.pplugin
: Путь к файлу манифеста плагина (.pplugin
), из которого вы хотите импортировать функции.выходная_папка
: Каталог, в котором будет сохранен сгенерированный файл типов.
Пример:
Сгенерированный файл типов:
- Скрипт сгенерирует файл типов (например,
MyPlugin.d.ts
) в указанной выходной папке. - Пример содержимого файла типов:
Использование файлов типов в вашей IDE:
- Поместите сгенерированный файл типов (
.d.ts
) в каталог вашего проекта (но не в папку с плагинами). - IDE, такие как VSCode, будут использовать файл типов для предоставления подсказок по типам и автодополнения.
Поддержка VSCode:
- VSCode автоматически обнаруживает файлы типов в вашем проекте. Убедитесь, что папка
types
(или папка, содержащая ваши файлы.d.ts
) включена в ваш файлtsconfig.json
илиjsconfig.json
. - Пример конфигурации
tsconfig.json
:
Примечания
- Файлы типов необязательны: Файлы типов предназначены только для разработки и не должны включаться в папку выполнения вашего плагина.
- Эффективность во время выполнения: Поскольку JavaScript является динамически типизированным, вызовы функций разрешаются во время выполнения без необходимости предварительно скомпилированных заголовков или определений типов.
Следуя этому руководству, вы можете легко импортировать и использовать функции из других плагинов в вашем плагине на JavaScript, используя при этом файлы типов для лучшего опыта разработки.