A Process Controller Library.
- High-quality reusable code by steps.
- Maintainable decoupled process steps.
- Process steps runner with multiple granularity control.
- Composable
Separate combination of steps.
- Inheritable & extensible
Support for object-oriented programming.
- Customizable
At run time, the arguments of any step are passed, the steps execution sequence can be customized, and the combination of any child steps is made.
- Controllable
The execution granularity and position of the free control steps.
- Context by arguments
Merge the results of all step execution through context passing.
If you need to control every step of the process, it is a useful process middleware.
const createProcess = generate({
async before({
step,
context,
options,
}) {
console.log(step.name);
},
async after({
step,
context,
options,
}) {
console.log(step.name);
}
});
By sequence, it can be redefined the combined sequence steps for steps runner.
(async (context) => {
const process = createProcess(
Login,
Navigation,
Setting,
MakeCalls,
)
const instance = process(context);
await instance.execTo(Navigation);
await instance.execBefore(Setting.callingSetting);
await instance.exec();
})();
Steps Runner can be controlled the operation of the current sub steps by free.
Reset all steps ignore in the process and initialize process.
step
<function
>
Set skip some steps in the process.
- return <
Promise
>
Execute the process by set sequence and skip setting.
step
<function|class
>- return <
Promise
>
Execute steps until a step position.
step
<function|class
>- return <
Promise
>
Execute steps before a step position.