Skip to content

Commit df5726c

Browse files
authored
fix: allow PUT method for preflight requests (#46)
Fixes #45
1 parent 9f44c41 commit df5726c

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

src/routes/root.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const DOWNLOADS_BASE = '/downloads/'
1414

1515
const { preflight } = cors({
1616
origin: '*',
17-
allowMethods: ['GET', 'POST', 'DELETE', 'OPTIONS'],
17+
allowMethods: ['GET', 'POST', 'DELETE', 'OPTIONS', 'PUT'],
1818
allowHeaders: ['Content-Type'],
1919
})
2020

@@ -25,7 +25,10 @@ const { preflight } = cors({
2525
*/
2626
function corsify(response: Response): Response {
2727
// Skip if CORS headers already present or if it's a WebSocket upgrade
28-
if (response.headers.get('access-control-allow-origin') || response.status === 101) {
28+
if (
29+
response.headers.get('access-control-allow-origin') ||
30+
response.status === 101
31+
) {
2932
return response
3033
}
3134
// Create new headers with CORS header added

test/cors.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ describe('CORS Headers', () => {
3636
expect(response.status).toBe(204)
3737
expect(response.headers.get('access-control-allow-origin')).toBe('*')
3838
expect(response.headers.get('access-control-allow-methods')).toBe(
39-
'GET,POST,DELETE,OPTIONS',
39+
'GET,POST,DELETE,OPTIONS,PUT',
4040
)
4141
expect(response.headers.get('access-control-allow-headers')).toBe(
4242
'Content-Type',
@@ -51,7 +51,7 @@ describe('CORS Headers', () => {
5151
expect(response.status).toBe(204)
5252
expect(response.headers.get('access-control-allow-origin')).toBe('*')
5353
expect(response.headers.get('access-control-allow-methods')).toBe(
54-
'GET,POST,DELETE,OPTIONS',
54+
'GET,POST,DELETE,OPTIONS,PUT',
5555
)
5656
})
5757

@@ -63,7 +63,7 @@ describe('CORS Headers', () => {
6363
expect(response.status).toBe(204)
6464
expect(response.headers.get('access-control-allow-origin')).toBe('*')
6565
expect(response.headers.get('access-control-allow-methods')).toBe(
66-
'GET,POST,DELETE,OPTIONS',
66+
'GET,POST,DELETE,OPTIONS,PUT',
6767
)
6868
})
6969

0 commit comments

Comments
 (0)