Инструменты для разработки интеграцийBETA
Для разработки пользовательских интеграций в Proceset используются специализированные инструменты.
Integration SDK
Библиотека, предоставляющая набор интерфейсов, типов и вспомогательных утилит для создания пользовательских интеграций в системе Proceset.
Используется для описания блоков, подключений и логики работы интеграции.
Установка Integration SDK
Для разработки пользовательских интеграций необходимо подключить Integration SDK в проект интеграции. SDK содержит типы, интерфейсы и вспомогательные утилиты, которые используются при описании блоков, подключений и логики выполнения.
Установить SDK можно с помощью одного из менеджеров пакетов:
npm install @infomaximum/integration-sdk
или
yarn add -D @infomaximum/integration-sdk
Всегда выбирайте и фиксируйте версию SDK, соответствующую версии Proceset, в которой будет использоваться интеграция. Использование несовместимой версии SDK может привести к ошибкам сборки или некорректной работе интеграции.
| Версия SDK | Версия Proceset |
|---|---|
2.3.0 | 2503 |
2.3.0 | 2504 |
3.0.0-2 | 2505 |
3.0.0-2 | 2506 |
3.1.1 | 2507 |
3.2.1 | 2508 |
3.2.1 | 2509 |
Package CLI
Инструмент командной строки, предоставляющий разработчикам набор команд для:
- Инициализации проекта интеграции
- Сборки пакетов
- Запуска проекта в режиме разработки
- Генерации шаблонного кода для виджетов, приложений и интеграций
Инициализация проекта
Для создания нового пакета с интеграцией выполните команду следующую команду:
npx @infomaximum/package-cli integration init my_integration
После выполнения этой команды будет создан шаблонный проект my_integration и инициализирован git-репозиторий.
Сборка проекта
Для сборки пакета интеграции выполните команду команду
yarn im-package-cli integration build
Для сборки скрипта интеграции выполните команду команду
yarn im-package-cli integration build --type=script
Для отслеживания изменений в файлах и пересборки скрипта интеграции выполните команду команду
yarn im-package-cli integration build --watch
Вывод всех доступных команд
Вы можете использовать флаг -h, чтобы просмотреть список всех доступных команд и их описаний:
yarn im-package-cli -h
| Команда | Описание |
|---|---|
yarn build | Выполняет сборку пакета с интеграцией. Полученный пакет можно загружать в маркетплейс |
yarn dev | Запускает сборку скрипта интеграции с последующим отслеживанием изменений в файлах и автоматической пересборкой |
yarn dev --copy | Запускает сборку скрипта интеграции с отслеживанием изменений и пересборкой. Дополнительно копирует актуальную версию скрипта в буфер обмена для вставки в редактор |
yarn im-package-cli -h | Отображает список всех доступных команд для работы с интеграцией |
yarn lint | Запускает проверку кода на синтаксические ошибки и ошибки типизации (TypeScript), а также выполняет анализ через ESLint |
yarn serve | Выполняет сборку и пересборку скрипта при изменении файлов, затем отправляет актуальную версию скрипта на сервер. Требует настройки переменных окружения в .env |
yarn test | Запускает тесты проекта с интеграцией (используется Vitest) |
Среда выполнения интеграций GraalJS
Код пользовательских интеграций выполняется в среде GraalJS. В таблице ниже приведена информация о доступных возможностях и ограничениях JavaScript и механизмов взаимодействия.
| Категория | Функционал | Статус | Комментарий специалиста |
|---|---|---|---|
Concurrency | SharedArrayBuffer | Доступно | Выделение разделяемой памяти разрешено для высокопроизводительных задач |
Concurrency | Atomics (Data) | Доступно | add, load, exchange, compareExchange работают корректно |
Concurrency | Atomics (Wait) | Блокировано | Atomics.wait выдает TypeError, защищая поток от зависания |
Core JS | Стандарты ES2023+ | Доступно | Object, Array, Math, JSON, Map, Set работают в полном объtме |
Encoding | TextEncoder/Decoder | Доступно | Полноценная поддержка преобразования строк в байты и обратно |
Interop | Java Access | Блокировано | Объекты Java, Packages присутствуют, но вызовы методов запрещены (Unsupported operation) |
Interop | Polyglot | Блокировано | Polyglot.eval и evalFile недоступны для запуска других языков (Python/R) |
Была ли статья полезна?