# acyclic-steps

> ## Example

Latest version **1.0.0** (published 2020-08-31) · ISC license · 0 weekly downloads

## Install

```sh
npm install acyclic-steps
pnpm add acyclic-steps
yarn add acyclic-steps
bun add acyclic-steps
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2020-08-31 |
| First published | 2020-08-31 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 37.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | MeePwn |
| Maintainers | chunnan |

## Links

- npm: https://www.npmjs.com/package/acyclic-steps
- Repository: https://github.com/maybewaityou/acyclic-steps
- Homepage: https://github.com/maybewaityou/acyclic-steps#readme
- Issues: https://github.com/maybewaityou/acyclic-steps/issues
- npm.io page: https://npm.io/package/acyclic-steps

## Recent versions

- 1.0.0 (latest) — 2020-08-31

## README

# acyclic-steps

## Example

```JavaScript
  // 1. 定义执行步骤
  const step = Step.define('step 1').build(() => 'data');
  const step2 = Step.define('step 2').build(() => 'data2');
  const step3 = Step.define('step 3').build(() => 'data3');
  const step4 = Step.define('step 4').build(() => 'data4');
  const step5 = Step.define('step 5').build(() => 'data5');
  const step6 = Step.define('step 6').build(() => 'data6');
  const step7 = Step.define('step 7').build(() => 'data7');
  const step8 = Step.define('step 8').build(() => 'data8');
  const step9 = Step.define('step 9').build(() => 'data9');
  const step10 = Step.define('step 10').build(() => 'data10');
  const step11 = Step.define('step 11').build(() => 'data11');
  // 2. 添加步骤依赖, 形成 "基础流" 或 "支流"
  const basic = Step.define('basic flow')
    .dep(step)
    .dep(step2)
    .dep(step3)
    .dep(step4)
    .dep(step5)
    .dep(step6)
    .dep(step7)
    .dep(step8)
    .dep(step9)
    .deps([step10, step11])
    .build((v, v2, v3, v4, v5, v6, v7, v8, v9, v10) => `${v} ${v2} ${v3} ${v4} ${v5} ${v6} ${v7} ${v8} ${v9} ${v10}`);

  const r = new Runner();
  // 可以重写 step2 的执行结果
  r.override(step2, 'test replace');

  try {
    // 3. 执行步骤, 执行逻辑流
    const result = await r.run(basic);
    console.log(result);
  } catch (e) {
    // 4. 处理异常流
    console.log(e);
  }
```

---
_Source: https://npm.io/package/acyclic-steps · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
