Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
a8cf77ec7c | |||
d634e9c6ae |
@@ -11,7 +11,7 @@ let package = Package(
|
||||
.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),
|
||||
|
||||
// 🤐 Unzip archives
|
||||
.package(url: "https://github.com/microtherion/ZIPFoundation.git", .upToNextMajor(from: "0.9.8-µ"))
|
||||
.package(url: "https://github.com/microtherion/ZIPFoundation.git", .upToNextMajor(from: "0.9.9-µ2"))
|
||||
],
|
||||
targets: [
|
||||
.target(name: "GzipMiddleware", dependencies: ["Vapor", "ZIPFoundation"]),
|
||||
|
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user