Skip to content

Commit a823e82

Browse files
committed
Fix vercel encoding
1 parent f34ef3a commit a823e82

3 files changed

Lines changed: 13 additions & 10 deletions

File tree

Plugins/VercelPackager/Server/server.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,8 @@ const server = http.createServer(async (req, res) => {
5454
const body = await readBody(req)
5555
const _res = await invoke({ method, path, headers, body })
5656
const _body = JSON.parse(await readBody(_res))
57-
const encoding = _body.isBase64Encoded ? 'base64' : 'utf8'
5857
res.writeHead(_body.statusCode, _body.headers)
59-
res.end(Buffer.from(_body.body || '', encoding))
58+
res.end(Buffer.from(_body.body || '', _body.encoding || 'utf8'))
6059
} catch (err) {
6160
console.error(err)
6261
res.writeHead(500, {})

Sources/Vercel/Response.swift

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66
//
77

88
public struct Response: Codable, Sendable {
9+
public enum Encoding: String, Codable, Sendable {
10+
case base64
11+
}
12+
913
public var statusCode: HTTPResponseStatus
1014
public var headers: HTTPHeaders?
1115
public var body: String?
12-
public var isBase64Encoded: Bool?
16+
public var encoding: Encoding?
1317
public var cookies: [String]?
1418

1519
public var didSend: Bool {
@@ -20,28 +24,28 @@ public struct Response: Codable, Sendable {
2024
statusCode: HTTPResponseStatus = .ok,
2125
headers: HTTPHeaders? = nil,
2226
body: String? = nil,
23-
isBase64Encoded: Bool? = nil,
27+
encoding: Encoding? = nil,
2428
cookies: [String]? = nil
2529
) {
2630
self.statusCode = statusCode
2731
self.headers = headers
2832
self.body = body
29-
self.isBase64Encoded = isBase64Encoded
33+
self.encoding = encoding
3034
self.cookies = cookies
3135
}
3236

3337
public func with(
3438
statusCode: HTTPResponseStatus? = nil,
3539
headers: HTTPHeaders? = nil,
3640
body: String? = nil,
37-
isBase64Encoded: Bool? = nil,
41+
encoding: Encoding? = nil,
3842
cookies: [String]? = nil
3943
) -> Self {
4044
return .init(
4145
statusCode: statusCode ?? self.statusCode,
4246
headers: headers ?? self.headers,
4347
body: body ?? self.body,
44-
isBase64Encoded: isBase64Encoded ?? self.isBase64Encoded,
48+
encoding: encoding ?? self.encoding,
4549
cookies: cookies ?? self.cookies
4650
)
4751
}
@@ -124,11 +128,11 @@ extension Response {
124128
}
125129

126130
public func send(_ data: Data) -> Self {
127-
return with(body: data.base64EncodedString(), isBase64Encoded: true)
131+
return with(body: data.base64EncodedString(), encoding: .base64)
128132
}
129133

130134
public func send(_ bytes: [UInt8]) -> Self {
131-
return with(body: Data(bytes).base64EncodedString(), isBase64Encoded: true)
135+
return with(body: Data(bytes).base64EncodedString(), encoding: .base64)
132136
}
133137

134138
public func send<T>(

Sources/VercelVapor/VaporHandler.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ extension Vercel.Response {
105105
statusCode: statusCode,
106106
headers: headers,
107107
body: bytes?.base64String(),
108-
isBase64Encoded: true
108+
encoding: bytes.map { _ in .base64 }
109109
)
110110
}
111111

0 commit comments

Comments
 (0)