Middleware framework based on Async Generator & TypeScript, inspired by Koa 2.
import OnionStack from 'onion-stack';
const list = [ ];
const stack = new OnionStack(
function*() {
list.push(1);
yield;
list.push(2);
yield;
list.push(3);
},
async function*() {
await delay(0.1);
list.push(4);
yield;
list.push(5);
},
function() {
list.push(6);
}
);
stack.execute().then(() => console.log( list )); // [1, 4, 6, 5, 2]