From a8cf77ec7c8dd8b86aed2f37d4226e6e36c3b4f5 Mon Sep 17 00:00:00 2001
From: Matthias Neeracher <microtherion@gmail.com>
Date: Tue, 11 Feb 2020 08:04:31 +0100
Subject: [PATCH] Flatten futures

---
 Sources/GzipMiddleware/GzipMiddleware.swift | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/Sources/GzipMiddleware/GzipMiddleware.swift b/Sources/GzipMiddleware/GzipMiddleware.swift
index f1aed5a..1e09fac 100644
--- a/Sources/GzipMiddleware/GzipMiddleware.swift
+++ b/Sources/GzipMiddleware/GzipMiddleware.swift
@@ -51,14 +51,15 @@ public struct GzipServerMiddleware: Middleware, ServiceType {
                             return stream.write(.chunk(buffer))
                         }
                     })
-                write.always {
+                _ = write.flatMap {
                     buffer.clear()
                     buffer.write(integer: crc32, endianness: .little)
                     buffer.write(integer: UInt32(data.count), endianness: .little)
-                    stream.write(.chunk(buffer)).always {
-                        _ = stream.write(.end)
-                    }
-                }
+                    return stream.write(.chunk(buffer))
+                }.flatMap {
+                    return stream.write(.end)
+                }.transform(to: ())
+
                 let httpResponse = HTTPResponse(status: response.http.status, headers: headers, body: stream)
                 return request.response(http: httpResponse)
             }