async-steps v0.7.5
Async-steps (0.7.5) BETA
Что это?
Async-steps - node.js библиотека для написания последовательных блоков инструкций.
- Система написана на базе async-step.engine
- Для чего
- Похожие проекты
- Фичи и особенности
- Установка
- Инструкция по использованию
- Примеры
- Раздел asyncsteps в package.json
- Middleware
- API
Для чего?
Для различных систем мониторинга, парсинга или сборок.
Похожие проекты
- Grunt/gulp
- Puppet
- Ansible
Фичи и особенности
- Расширяемость - Модули изолированы от внешних фунций, что позволяет удобно расширять и дополнять систему.
- Гибкость в ассинхронности/синхронности - Все модули могут вызываться как последовательно, так и синхронно, простым флагом sync.
Установка
- Npm:
npm install --save async-steps
- Source git:
git clone https://github.com/Michael190996/async-steps && \
cd async-steps && \
npm i && \
npm run build # npm run prepublish
Инструкция по использованию
Расширяемость
Добавить модули можно в разделе asyncsteps файла package.json
"asyncsteps": {
"pathsToModules": [{
"prefix": "default",
"homeDir": false,
"path": "async-steps.modules-as"
}]
}
Импортируется деволтный массив объектов
export default [{
name: имя модуля,
fn: функция модуля
}]
Вызов модулей
import asyncSteps from 'async-steps';
const steps = [{
module: 'test'
}];
const as = asyncSteps(steps, /* configAsyncSteps */);
as.run()
.then(response => console.info(response))
.catch(err => console.error(err))
Примеры
Все в одном
import asyncSteps from 'async-steps';
const as = asyncSteps([{
module: 'test'
}]);
as.modular.add('test', (params, data, ns) => {
console.log(params, data, ns);
});
as.events.on('initSteps', (data, parentsNS) => {
console.log(data, parentsNS);
});
as.run('data')
.then(response => console.info(response))
.catch(err => console.error(err))
Раздел asyncsteps в package.json
- asyncsteps
- {object[]} pathsToModules
Middleware
- Схема промежуточных функций (см).
- dataGet - добавляет данные с определенного шага
- timeout - задержка
- module - запускает указанный модуль
- after - функция, срабатывающая после завершения модуля
- dataSet - сохраняет результат
API
asyncSteps
Функция, возвращающая экземпляр класса AsyncStepsEngine
- import asyncSteps from 'async-steps'
- asyncSteps(steps, configAsyncSteps)
Classes-controllers
AsyncStepsEngine
Расширенный AsyncStepsEngine
- import AsyncStepsEngine from 'async-steps/dist/lib/AsyncStepsEngine'
AsyncStepsEngine(steps, vars, middleware)
Namespace
Класс контекста, расширенный Namespace
- import Namespace from 'async-steps/dist/lib/Namespace'
Namespace(stepIndex, steps, parentsNamespace, modular, middleware, vars, events)
- stepIndex - индекс текущей позиции шага в steps
- steps
- {Array.<Namespace>} parentsNamespace
- [modular] - экземпляр класса Modular
- [events] - экземпляр класса Events
- [middleware] - экземпляр класса Middleware
- [vars] - экземпляр класса Vars
Events
Класс событий, расширенный Events
- import Events from 'async-steps/dist/lib/Events'
Events()
.startWare(nameWare, data, namespace) {
- {string} nameWare
- {*} data
- namespace - экземпляр класса Namespace
- .on('startWare', function(data, namespace))
.endWare(nameWare, data, namespace)
- {string} nameWare
- {*} data
- namespace - экземпляр класса Namespace
- .on('endWare', function(data, namespace))
Modular
Класс, управляющий модулями
- import Modular from 'async-steps/dist/lib/Modular'
Modular()
.modules - Возвращает модули
.add(name, fn, prefix)
- {string} name - уникальное имя модуля
{function} fn
- function(params, namespace)
- {object} params - параметры соответствующего модуля
- {*} data - данные
- namespace - экземпляр класса Namespace
- function(params, namespace)
{string} prefix - префикс модуля
.check(name, prefix)
- {string} name - имя модуля
- {string} prefix - префикс модуля
.start(name, prefix, params, data, namespace)
- {string} name - имя модуля
- {string} prefix - префикс модуля
- {object} params - параметры модуля
- {*} data - данные
- namespace - экземпляр класса Namespace
Vars
Класс переменных
- import Vars from 'async-steps/dist/lib/Vars'
Vars()
.add(key, value)
- {string} key
- {*} value
.remove(key)
- {string} key
.get(key)
- {string} key
.check(key)
- {string} key
Params
steps
- {object[step]} steps
step
- {object} step (см).
- {string} module - вызывает модуль
- {string} name=default - имя шага
- {string} prefix=default - префикс модуля
- {number} timeout - задержка перед модулем
- {string} data - данные соответствующего шага
- {boolean} sync=false - синхронность шага
- {function} after - функция, срабатывающая после модуля
- function after(data, namespace)
- результат функции при истинном значении записывается в data
- {function} throwError - функция, обрабатывающая исключения
- function throwError(error, namespace)
- {Error} error
- namespace - экземпляр класса Namespace
- результат функции при истинном значении записывается в data
- function throwError(error, namespace)