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]