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]