diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..c39dfcd7
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/shelf.iml b/.idea/shelf.iml
new file mode 100644
index 00000000..02bd9dfb
--- /dev/null
+++ b/.idea/shelf.iml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..94a25f7f
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/dartlang_org.dart b/example/dartlang_org.dart
new file mode 100644
index 00000000..436d6650
--- /dev/null
+++ b/example/dartlang_org.dart
@@ -0,0 +1,26 @@
+import 'dart:io';
+import 'package:angel_framework/angel_framework.dart';
+import 'package:angel_shelf/angel_shelf.dart';
+import 'package:shelf_proxy/shelf_proxy.dart';
+
+main() async {
+ var app = new Angel();
+
+ // `shelf` request handler
+ var shelfHandler = proxyHandler('https://www.dartlang.org');
+
+ // Use `embedShelf` to adapt a `shelf` handler for use within Angel.
+ var angelHandler = embedShelf(shelfHandler);
+
+ // A normal Angel route.
+ app.get('/angel', (req, ResponseContext res) {
+ res.write('Hooray for `package:angel_shelf`!');
+ res.end(); // End execution of handlers, so we don't proxy to dartlang.org when we don't need to.
+ });
+
+ // Proxy any other request through to dartlang.org
+ app.after.add(angelHandler);
+
+ var server = await app.startServer(InternetAddress.LOOPBACK_IP_V4, 8080);
+ print('Proxying at http://${server.address.host}:${server.port}');
+}
diff --git a/lib/src/convert.dart b/lib/src/convert.dart
index 22a7ebf1..810555f6 100644
--- a/lib/src/convert.dart
+++ b/lib/src/convert.dart
@@ -60,6 +60,7 @@ Future mergeShelfResponse(
angelResponse.headers.addAll(shelfResponse.headers);
angelResponse.statusCode = shelfResponse.statusCode;
angelResponse.properties['shelf_context'] = shelfResponse.context;
+ angelResponse.properties['shelf_response'] = shelfResponse;
await shelfResponse.read().forEach(angelResponse.buffer.add);
angelResponse.end();
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 8b5ea860..84c7c7c7 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: angel_shelf
description: Shelf interop with Angel.
-version: 1.1.0
+version: 1.1.1
author: Tobe O
homepage: https://github.com/angel-dart/shelf
environment:
@@ -11,4 +11,5 @@ dependencies:
dev_dependencies:
angel_diagnostics: ^1.0.0
angel_test: ^1.0.0
+ shelf_proxy: ^0.1.0
test: ^0.12.0
\ No newline at end of file