1.1.1 • Published 1 year ago

@spirex/js-boot v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Инициализатор JavaScript приложений

GitHub License npm version TypeScript

ИСТОРИЯ ИЗМЕНЕНИЙДОКУМЕНТАЦИЯ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!');

По умолчанию все задачи обязательны к выполнению. Поэтому если одна из задач завершится с ошибок, процесс инициализации будет прерван и будет брошено исключение об ошибке.