async-steps.engine
v0.0.2
Published
[![NPM Version](https://img.shields.io/npm/v/async-steps.engine.svg?style=flat)](https://www.npmjs.com/package/async-steps.engine) [![NPM Downloads](https://img.shields.io/npm/dm/async-steps.engine.svg?style=flat)](https://www.npmjs.com/package/async-step
Downloads
3
Readme
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][, events])
.setParentsNamespace(parentsNamespace)
- {Array.<Namespace>} parentsNamespace
.createNamespace(indexStep)
- {number} indexStep
startStep(data, namespace)
- [data] - данные
- namespace - экземпляр класса Namespace
.run([data])
- {*} [data] - данные
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)
- {*} [data]
- {Array.<Namespace>} parentsNamespace
.on('initSteps', function(data, namespace))
.startStep([data, ]namespace)
- {*} [data]
- namespace - экземпляр класса Namespace
.on('startStep', function(data, namespace))
.endSteps([data, ]parentsNamespace)
- {*} [data]
- {Array.<Namespace>} 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)
- Примечание: Если результат шага неопределен, то результат не сохраняется