Оновлення цілком присвячене покращенню системи модулів. Що таке модулі? Модулі дозволяють розширювати функціонал BAS. Кожен модуль містить набір дій, наприклад, є модуль для роботи з регулярними виразами, списками, і т. д.
Також модулі дозволяють впроваджувати код у рушій BAS і в рушій браузера.
Яким чином модульну систему було покращено? Додано можливість створювати власні модулі. Після оновлення BAS дозволяє перетворити проект з набором функцій на модуль. Вибрані функції будуть перетворені на нові дії. Усі описи, які ви ввели при створенні функції, будуть перенесені в користувацький інтерфейс нового модуля. За допомогою нового діалогу ви можете задати опис нового модуля і вибрати іконку, версію, і т. д. Проект, який був використаний для створення модуля, можна використовувати повторно, наприклад, для оновлення модуля, оскільки він зберігає всі введені налаштування. Різні функції з одного модуля можуть викликати одна одну.
Для створення нового модуля зайдіть у менеджер модулів і натисніть на кнопку "Створити новий модуль". Можливість встановлювати свої або чужі модулі. BAS дозволяє встановлювати необмежену кількість модулів тим самим розширюючи функціонал. Встановлення відбувається для поточного екземпляра BAS, це означає, що нові модулі стануть доступні в будь-якому проекті над яким ви працюєте. Користувачі можуть обмінюватися модулями, для цього, потрібно створити модуль використовуючи кнопку "Створити новий модуль", потім передати файл отриманий у результаті іншому користувачу. Зробити це не важко, оскільки модуль є zip архівом. Потім його можна встановити використовуючи кнопку "Встановити модуль".
Використання модулів у скомпільованих застосунках. Тепер нові модулі можна використовувати не лише в екземплярі BAS, де вони були встановлені, але і в скомпільованому застосунку. Для цього немає необхідності виконувати якісь додаткові дії. BAS автоматично перенесе потрібну інформацію в проект. Передача проектів з модулями. Розгляньмо такий приклад, ви передаєте проект іншому розробнику для редагування, у вас модулі встановлені, у нього - ні. У цьому випадку, він як і раніше зможе запускати проект і навіть редагувати ті дії, яких у нього по суті немає. Досягається це за рахунок механізму "зовнішніх модулів". Після зміни проекту зовнішні модулі зникнуть. Допускається передача проектів необмежену кількість разів. BAS завантажує лише ті модулі, які використовуються в проекті. Ви можете встановлювати десятки модулів, якщо при цьому використовуватися будуть не всі, то BAS не буде "роздувати" поточний проект невикористовуваними модулями. Софт буде автоматично аналізувати проект і просто не підключати зайве. Це не стосується режиму запису, тому що в ньому проект змінюється і потенційно будь-який встановлений модуль може бути використаний. Наявний функціонал BAS може бути змінено. Тепер можна змінювати функціонал що міститься в нативних модулях. Для цього необхідно:
C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\modules у папку .C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\customУсі зміни збережуться в скомпільованому застосунку і при передачі проекту.
Тут може знадобитися документація по структурі модулів, яку написав наш користувач @Oyasumi-Punpun
Відео цього процесу можна знайти тут
Замінити можна будь-які типи файлів, не лише скрипти. Наприклад, можливо замінити базу в якій міститься інформація про ip адреси. Node.js можна використовувати в модулях. Існує можливість використовувати не лише стандартні дії BAS, але і код на Node.js, включно з пакетами з NPM. BAS буде автоматично розв'язувати конфлікти для різних версій NPM модулів на користь нових версій. Це дає можливість створювати обгортки для NPM модулів у вигляді модулів BAS з користувацьким інтерфейсом. Наприклад, в навчальному відео ми почали створювати таку обгортку для FTP клієнта.
Код модуля можна викликати з Node.js. Модулі додають нові дії, які по суті є BAS функціями і вони підкоряються абсолютно тим самим правилам, що і звичайні BAS функції. Наприклад, їх можна викликати з Node.js використовуючи метод BAS_FUNCTION. Назва функції визначається як назва модуля + нижнє підкреслення + назва дії. Наприклад, якщо назва модуля - TestModule, а назва дії TestAction, то назва функції буде TestModule_TestAction.
Відео з таймкодом
Інтерфейс менеджера модулів було доопрацьовано. З'явився пошук, розділення на нативні і користувацькі модулі, можливість видаляти користувацькі модулі. Код було доопрацьовано, так щоб маніпуляції з модульною системою не призводили до збоїв у режимі запису.
Встановлення модулів у ручному режимі. Щоб встановити модуль без використання інсталятора, необхідно скопіювати його вміст у папку
C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\custom\
Таким чином, структура файлів має бути такою:
custom\НАЗВА МОДУЛЯ\manifest.json і інші файли модуля Це особливо актуально для модулів створених до апдейту.
Хотілося б зазначити, що замість перенесення в папку modules, тепер потрібно переносити в папку custom.
Нові модулі рекомендується встановлювати через кнопку "Встановити модуль". Додаткова інформація. Документація по структурі модулів https://cheshirecaat.github.io/BAS.Modules/
Відеоогляд модульної системи
Обмін модулями. Щоб поділитися своїми модулями зі спільнотою, залиште повідомлення в цій гілці https://community.bablosoft.com/category/45/делитесь-модулями.
Обов'язково прочитайте про формат повідомлення в прикріпленій темі.
Якщо користувачі будуть активно створювати модулі, то для них буде створено спеціальний реєстр, на кшталт NPM.