async-steps.engine v0.0.2
Async-steps.engine (0.0.2) BETA
Что это?
Async-steps.engine - реализация движка последовательных блоков иструкций.
Setup
- Npm:
npm install --save async-steps.engine
- Source git:
git clone https://github.com/Michael190996/async-steps.engine && \
cd async-steps.engine && \
npm i && \
npm run build # npm run prepublish
Example
import AsyncStepsEngine from 'async-steps.engine';
const steps = [{
name: 'test'
}];
const ase = new AsyncStepsEngine(steps);
ase.middleware.use(async(data, ns, next) => {
next(ns.step.name);
});
ase.run('data')
.then(response => console.info(response))
.catch(err => console.error(err));
API
Classes-controllers
AsyncStepsEngine
- import AsyncStepsEngine from 'async-steps.engine'
AsyncStepsEngine(steps, middleware)
Namespace
- import {Namespace} from 'async-steps.engine'
Namespace(stepIndex, steps, parentsNamespace, middleware, events)
- stepIndex - индекс текущей позиции шага в steps
- steps
- {Array.<Namespace>} parentsNamespace
- [events] - экземпляр класса Events
- [middleware] - экземпляр класса Middleware
.name - имя текущего модуля
.step - step - текущий шаг
.steps - steps
.parents - возвращает цепочку родителей - {Array.<Namespace>}
.stepIndex - индекс текущей позиции в steps
.stepDepth - позиция глубины вложенности в steps
.getScheme() - возвращает схему вызовов
.setBreak($break)
- {boolean} $break - Данный флаг означает, что на текущем шаге нужно прекратить итерацию по массиву steps
.setBreakAll($break)
- {boolean} $break - Данный флаг означает, что на текущем шаге нужно прекратить итерацию по массиву steps, в том числе и у родителей
.getBreak() - возвращает булевое значение
.child(steps) - метод возвращает новый экземпляр класса AsyncStepsEngine со заданной позицией
Middleware
- import {Middleware} from 'async-steps.engine' Класс, управляющий промежуточными результатами
Middleware()
.middlewares - Возвращает все middlewares
.use(fn)
- {function} fn
.compose() - compose
- Примечание: Если результат промежуточной функции неопределен, то результат не сохраняется
Events
- import {Events} from 'async-steps.engine' Класс событий, расширенный от нативного класса Events
Events()
- .initSteps(data, parentsNamespace)
.on('initSteps', function(data, namespace))
.startStep(data, namespace)
.on('startStep', function(data, namespace))
.endSteps(data, parentsNamespace)
.on('end', function(data, namespace))
.endStep(data, namespace)
- {*} data
- namespace - экземпляр класса Namespace
.on('endStep', function(data, namespace))
.error(error, namespace)
- {Error} error - ошибка
- namespace - экземпляр класса Namespace
- .on('error', function(error, namespace))
Params
steps
- {object[step]} steps
step
- {object} step
- {string} name - имя шага
- {boolean} sync - синхронность шага
- {function} throwError - функция, обрабатывающая исключения
- function throwError(error, namespace)
- {Error} error
- namespace - экземпляр класса Namespace
- результат функции при истинном значении записывается в data
- function throwError(error, namespace)
- Примечание: Если результат шага неопределен, то результат не сохраняется