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) }