import 'package:angel3_framework/angel3_framework.dart'; import 'package:angel3_framework/http.dart'; import 'package:angel3_container/mirrors.dart'; import 'package:angel3_pipeline/pipeline.dart'; class AsyncGreetingPipe { Future handle(String input, Function next) async { await Future.delayed(Duration(seconds: 1)); return next('Hello, $input'); } } class AsyncExclamationPipe { Future handle(String input, Function next) async { await Future.delayed(Duration(seconds: 1)); return next('$input!'); } } void main() async { var app = Angel(reflector: MirrorsReflector()); var http = AngelHttp(app); app.container.registerSingleton((c) => Pipeline(c)); app.get('/', (req, res) async { var pipeline = app.container.make(); var result = await pipeline .send('World') .through(['AsyncGreetingPipe', 'AsyncExclamationPipe']).then( (result) => result.toUpperCase()); res.write(result); // Outputs: "HELLO, WORLD!" (after 2 seconds) }); await http.startServer('localhost', 3000); print('Server started on http://localhost:3000'); }