Skip to content

Commit b53c151

Browse files
authored
Merge pull request #18 from swift-server/nio-http-types
Migrate to NIOExtras HTTP Types Conversion
2 parents 0ae9850 + 092e8ce commit b53c151

File tree

2 files changed

+6
-52
lines changed

2 files changed

+6
-52
lines changed

Package.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,17 @@ let package = Package(
2626
dependencies: [
2727
.package(url: "https://github.com/apple/swift-openapi-runtime.git", from: "1.0.0"),
2828
.package(url: "https://github.com/vapor/vapor.git", from: "4.91.1"),
29-
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.2.0")
29+
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.2.0"),
30+
.package(url: "https://github.com/apple/swift-nio-extras", from: "1.22.0"),
3031
],
3132
targets: [
3233
.target(
3334
name: "OpenAPIVapor",
3435
dependencies: [
3536
.product(name: "Vapor", package: "vapor"),
3637
.product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
37-
.product(name: "Atomics", package: "swift-atomics")
38+
.product(name: "Atomics", package: "swift-atomics"),
39+
.product(name: "NIOHTTPTypesHTTP1", package: "swift-nio-extras"),
3840
],
3941
swiftSettings: swiftSettings
4042
),

Sources/OpenAPIVapor/VaporTransport.swift

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import HTTPTypes
1818
import Vapor
1919
import NIOFoundationCompat
2020
import Atomics
21+
import NIOHTTPTypesHTTP1
2122

2223
public final class VaporTransport {
2324

@@ -84,7 +85,7 @@ extension [Vapor.PathComponent] {
8485

8586
extension HTTPTypes.HTTPRequest {
8687
init(_ vaporRequest: Vapor.Request) throws {
87-
let headerFields: HTTPTypes.HTTPFields = .init(vaporRequest.headers)
88+
let headerFields: HTTPTypes.HTTPFields = .init(vaporRequest.headers, splitCookie: true)
8889
let method = try HTTPTypes.HTTPRequest.Method(vaporRequest.method)
8990
let queries = vaporRequest.url.query.map { "?\($0)" } ?? ""
9091
self.init(
@@ -181,52 +182,3 @@ extension Vapor.Response.Body {
181182
}
182183
}
183184
}
184-
185-
extension HTTPTypes.HTTPFields {
186-
init(_ headers: NIOHTTP1.HTTPHeaders) {
187-
self.init(headers.compactMap { name, value in
188-
guard let name = HTTPField.Name(name) else {
189-
return nil
190-
}
191-
return HTTPField(name: name, value: value)
192-
})
193-
}
194-
}
195-
196-
extension NIOHTTP1.HTTPHeaders {
197-
init(_ headers: HTTPTypes.HTTPFields) {
198-
self.init(headers.map { ($0.name.rawName, $0.value) })
199-
}
200-
}
201-
202-
extension HTTPTypes.HTTPRequest.Method {
203-
init(_ method: NIOHTTP1.HTTPMethod) throws {
204-
switch method {
205-
case .GET: self = .get
206-
case .PUT: self = .put
207-
case .POST: self = .post
208-
case .DELETE: self = .delete
209-
case .OPTIONS: self = .options
210-
case .HEAD: self = .head
211-
case .PATCH: self = .patch
212-
case .TRACE: self = .trace
213-
default: throw VaporTransportError.unsupportedHTTPMethod(method.rawValue)
214-
}
215-
}
216-
}
217-
218-
extension NIOHTTP1.HTTPMethod {
219-
init(_ method: HTTPTypes.HTTPRequest.Method) {
220-
switch method {
221-
case .get: self = .GET
222-
case .put: self = .PUT
223-
case .post: self = .POST
224-
case .delete: self = .DELETE
225-
case .options: self = .OPTIONS
226-
case .head: self = .HEAD
227-
case .patch: self = .PATCH
228-
case .trace: self = .TRACE
229-
default: self = .RAW(value: method.rawValue)
230-
}
231-
}
232-
}

0 commit comments

Comments
 (0)