Skip to content

Commit a153125

Browse files
authored
fix(server): prevent reference issues in ResponseHeadersPlugin (#693)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved handling of response headers to prevent unintended modifications and ensure data integrity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 197a894 commit a153125

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

packages/server/src/plugins/response-headers.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { StandardHandlerOptions, StandardHandlerPlugin } from '../adapters/standard'
2+
import { clone } from '@orpc/shared'
23

34
export interface ResponseHeadersPluginContext {
45
resHeaders?: Headers
@@ -29,7 +30,7 @@ export class ResponseHeadersPlugin<T extends ResponseHeadersPluginContext> imple
2930
return result
3031
}
3132

32-
const responseHeaders = result.response.headers
33+
const responseHeaders = clone(result.response.headers)
3334

3435
for (const [key, value] of resHeaders) {
3536
if (Array.isArray(responseHeaders[key])) {
@@ -43,7 +44,13 @@ export class ResponseHeadersPlugin<T extends ResponseHeadersPluginContext> imple
4344
}
4445
}
4546

46-
return result
47+
return {
48+
...result,
49+
response: {
50+
...result.response,
51+
headers: responseHeaders,
52+
},
53+
}
4754
})
4855
}
4956
}

0 commit comments

Comments
 (0)