Skip to content

Commit

Permalink
fix: multi-headers
Browse files Browse the repository at this point in the history
  • Loading branch information
estrattonbailey committed Jan 22, 2022
1 parent 1b2cdbd commit 0d77419
Show file tree
Hide file tree
Showing 9 changed files with 21 additions and 7 deletions.
6 changes: 6 additions & 0 deletions .changeset/wet-garlics-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'presta': patch
'@presta/utils': patch
---

Fix multi-header setting, move default HTML response to utils
3 changes: 1 addition & 2 deletions packages/presta/lib/serve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ import mime from 'mime-types'
import toRegExp from 'regexparam'
import status from 'statuses'
import { WebSocketServer } from 'ws'
import { timer, requestToEvent, requireFresh, sendServerlessResponse } from '@presta/utils'
import { timer, requestToEvent, requireFresh, sendServerlessResponse, createDefaultHtmlResponse } from '@presta/utils'

import * as logger from './log'
import { createDefaultHtmlResponse } from './createDefaultHtmlResponse'
import { createLiveReloadScript } from './utils'
import { Handler, Event, Response, Context } from './lambda'
import { Config } from './config'
Expand Down
1 change: 1 addition & 0 deletions packages/presta/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"route-sort": "^1.0.0",
"sade": "^1.7.3",
"sirv": "^1.0.7",
"statues": "^1.0.0-alpha1",
"statuses": "^2.0.1",
"tiny-glob": "^0.2.9",
"watch-dependency-graph": "^3.0.1",
Expand Down
2 changes: 2 additions & 0 deletions packages/utils/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ sendServerlessResponse.js
sendServerlessResponse.d.ts
timer.js
timer.d.ts
createDefaultHtmlResponse.js
createDefaultHtmlResponse.d.ts
1 change: 1 addition & 0 deletions packages/utils/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export { requireFresh } from './requireFresh'
export { hashContent } from './hashContent'
export { sendServerlessResponse } from './sendServerlessResponse'
export { timer } from './timer'
export { createDefaultHtmlResponse } from './createDefaultHtmlResponse'
11 changes: 7 additions & 4 deletions packages/utils/lib/sendServerlessResponse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ import { Response } from 'lambda-types'
export function sendServerlessResponse(res: http.ServerResponse, response: Response) {
// @see https://github.com/netlify/cli/blob/27bb7b9b30d465abe86f87f4274dd7a71b1b003b/src/utils/serve-functions.js#L73
if (response.multiValueHeaders) {
for (const key of Object.keys(response.multiValueHeaders)) {
res.setHeader(key, String(response.multiValueHeaders[key]))
for (const header of Object.keys(response.multiValueHeaders)) {
res.setHeader(
header,
response.multiValueHeaders[header].map((v) => String(v))
)
}
}

if (response.headers) {
for (const key of Object.keys(response.headers)) {
res.setHeader(key, String(response.headers[key]))
for (const header of Object.keys(response.headers)) {
res.setHeader(header, String(response.headers[header]))
}
}

Expand Down
3 changes: 2 additions & 1 deletion packages/utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
"dependencies": {
"mime-types": "^2.1.31",
"query-string": "^6.14.1",
"raw-body": "^2.4.1"
"raw-body": "^2.4.1",
"statuses": "^2.0.1"
},
"devDependencies": {
"lambda-types": "^1.0.0"
Expand Down
1 change: 1 addition & 0 deletions packages/utils/scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ require('esbuild').buildSync({
'lib/hashContent.ts',
'lib/sendServerlessResponse.ts',
'lib/timer.ts',
'lib/createDefaultHtmlResponse.ts',
],
outdir: path.join(__dirname, '..'),
bundle: true,
Expand Down

0 comments on commit 0d77419

Please sign in to comment.