async-steps

0.7.5 • Public • Published

NPM Version NPM Downloads Node.js Version stable NPM

Async-steps (0.7.5) BETA

Что это?

Async-steps - node.js библиотека для написания последовательных блоков инструкций.

Для чего?

Для различных систем мониторинга, парсинга или сборок.

Похожие проекты

  • 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]
      • {string} path - имя модуля или путь к директории с модулями
      • {boolean} [homeDir] - берет модуль с библиотеки, либо с текущей директории
      • {string} [prefix] - добавляет префикс к именам модулей

Middleware

  • Схема промежуточных функций (см).
    • dataGet - добавляет данные с определенного шага
    • timeout - задержка
    • module - запускает указанный модуль
    • after - функция, срабатывающая после завершения модуля
    • dataSet - сохраняет результат

API

asyncSteps

Функция, возвращающая экземпляр класса AsyncStepsEngine

  • import asyncSteps from 'async-steps'

Classes-controllers

AsyncStepsEngine

Расширенный AsyncStepsEngine

  • import AsyncStepsEngine from 'async-steps/dist/lib/AsyncStepsEngine'

Namespace

Класс контекста, расширенный Namespace

  • import Namespace from 'async-steps/dist/lib/Namespace'

Events

Класс событий, расширенный Events

  • import Events from 'async-steps/dist/lib/Events'

Modular

Класс, управляющий модулями

  • import Modular from 'async-steps/dist/lib/Modular'
  • Modular()
    • .modules - Возвращает модули

    • .add(name, fn[, prefix])

      • {string} name - уникальное имя модуля

      • {function} fn

      • {string} [prefix] - префикс модуля

    • .check(name[, prefix])

      • {string} name - имя модуля
      • {string} [prefix] - префикс модуля
    • .start(name[, prefix], params[, data], 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} [throwError] - функция, обрабатывающая исключения

Readme

Keywords

none

Package Sidebar

Install

npm i async-steps

Weekly Downloads

0

Version

0.7.5

License

none

Unpacked Size

32.6 kB

Total Files

17

Last publish

Collaborators

  • michaelbasov