@spirex/js-boot v1.1.1
Инициализатор JavaScript приложений
ИСТОРИЯ ИЗМЕНЕНИЙ ● ДОКУМЕНТАЦИЯ ● ENG
Описание
Эта небольшая библиотека помогает решить проблему инициализации приложений на JavaScript. Она может использоваться в любом JS проекте.
Библиотека предоставляет класс инициализатора, который позволяет разбить процесс инициализации на несколько этапов и выполнять их в зависимости от связанности с другими этапами.
Если какой-либо этап инициализации приостановлен на асинхронной задаче, инициализатор не ждет его завершения, а берется за выполнение следующего этапа, при условии, что связанные задачи этого этапа уже выполнены.
Установка
Последнюю версию библиотеки можно установить с помощью любого менеджера пакетов:
$ npm install @spirex/js-boot
# OR
$ yarn add @spirex/js-boot
# OR
$ bun i @spirex/js-bootБыстрый старт
1. Импорт класса инициализатора
Почти все операции выполняются с помощью класса Boot.
Поэтому его необходимо импортировать во все файлы,
где определяются задачи инициализации.
import { Boot } from '@spirex/js-boot';2. Создание задач инициализации
Для создания задач инициализации используется метод Boot.task().
В него передается функция, которая содержит исполняемый код задачи.
Функция может быть синхронной или асинхронной.
Имя задачи опционально, но поможет с логированием задач в консоль.
После функции можно передать массив с зависимостями. Это гарантирует, что задача начнет выполнение, как только все зависимости будут выполнены.
const taskA = Boot.task(async () => {
console.log('Run task A');
await someAsyncFunction();
});
const taskB = Boot.task(() => {
console.log('Run task B');
}, [ taskA ]); // Зависит от 'A'3. Создание инициализатора и добавление задач
В созданный инициализатор добавляются задачи с помощью метода add(..).
Задачи можно добавлять по одной или сразу несколько в виде массива.
const boot = new Boot()
.add([ taskA, taskB ])4. Выполнение инициализации
После того как инициализатор создан и в него добавлены все необходимые
задачи для работы приложения, можно запустить процесс инициализации.
Метод runAsync() вернет Promise, который завершится когда все задачи будут выполнены.
await boot.runAsync();
console.log('Done!');По умолчанию все задачи обязательны к выполнению. Поэтому если одна из задач завершится с ошибок, процесс инициализации будет прерван и будет брошено исключение об ошибке.