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 GreetingPipe { dynamic handle(String input, Function next) { return next('Hello, $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([ 'GreetingPipe', (String input, Function next) => next('$input!'), (String input, Function next) async { await Future.delayed(Duration(seconds: 1)); return next(input.toUpperCase()); }, ]).then((result) => 'Final result: $result'); res.write( result); // Outputs: "Final result: HELLO, WORLD!" (after 1 second) }); await http.startServer('localhost', 3000); print('Server started on http://localhost:3000'); }