From 734d5f8547091236ab1ed5416db6becdea187787 Mon Sep 17 00:00:00 2001 From: thosakwe Date: Wed, 26 Apr 2017 18:39:47 -0400 Subject: [PATCH] GZIP on streamToIO --- README.md | 2 +- lib/src/virtual_directory.dart | 12 +++++++++--- pubspec.yaml | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 958d9892..02c1c600 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # angel_static -[![version 1.1.4](https://img.shields.io/badge/pub-1.1.4-brightgreen.svg)](https://pub.dartlang.org/packages/angel_static) +[![version 1.1.4+1](https://img.shields.io/badge/pub-1.1.4+1-brightgreen.svg)](https://pub.dartlang.org/packages/angel_static) [![build status](https://travis-ci.org/angel-dart/static.svg?branch=master)](https://travis-ci.org/angel-dart/static) Static server middleware for Angel. diff --git a/lib/src/virtual_directory.dart b/lib/src/virtual_directory.dart index 22d3a0cd..f1e717b4 100644 --- a/lib/src/virtual_directory.dart +++ b/lib/src/virtual_directory.dart @@ -122,9 +122,15 @@ class VirtualDirectory implements AngelPlugin { res.headers[HttpHeaders.CONTENT_TYPE] = lookupMimeType(file.path); - if (streamToIO == true) - await res.streamFile(file); - else + if (streamToIO == true) { + res + ..io.headers.set(HttpHeaders.CONTENT_TYPE, lookupMimeType(file.path)) + ..io.headers.set(HttpHeaders.CONTENT_ENCODING, 'gzip') + ..end() + ..willCloseItself = true; + + await file.openRead().transform(GZIP.encoder).pipe(res.io); + } else await res.sendFile(file); return false; } diff --git a/pubspec.yaml b/pubspec.yaml index 6f19d2c0..6805d32d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,7 @@ environment: sdk: ">=1.19.0" homepage: https://github.com/angel-dart/angel_static author: thosakwe -version: 1.1.4 +version: 1.1.4+1 dependencies: angel_framework: ^1.0.0-dev intl: ">=0.0.0 <1.0.0"