0.7.5 • Published 6 years ago

async-steps v0.7.5

Weekly downloads
23
License
-
Repository
github
Last release
6 years ago

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'

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 - функция, обрабатывающая исключения
0.7.5

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.1.3

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.2

7 years ago

0.0.122

7 years ago

0.0.121

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.1

7 years ago

0.0.0

7 years ago

1.0.0

7 years ago