File tree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,7 @@ export declare interface Options {
94
94
} ;
95
95
serializer ?: SerializerFunction ;
96
96
version ?: string ;
97
+ errorHeaderWhitelist ?: string [ ] ;
97
98
}
98
99
99
100
export declare class Request {
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ class API {
26
26
this . _callbackName = props && props . callback ? props . callback . trim ( ) : 'callback'
27
27
this . _mimeTypes = props && props . mimeTypes && typeof props . mimeTypes === 'object' ? props . mimeTypes : { }
28
28
this . _serializer = props && props . serializer && typeof props . serializer === 'function' ? props . serializer : JSON . stringify
29
+ this . _errorHeaderWhitelist = props && ( props . errorHeaderWhitelist || [ ] ) . map ( header => header . toLowerCase ( ) )
29
30
30
31
// Set sampling info
31
32
this . _sampleCounts = { }
@@ -253,8 +254,17 @@ class API {
253
254
// Error messages should never be base64 encoded
254
255
response . _isBase64 = false
255
256
256
- // Strip the headers (TODO: find a better way to handle this)
257
- response . _headers = { }
257
+ // Strip the headers, keep whitelist
258
+ const strippedHeaders = Object . entries ( response . _headers ) . reduce ( ( acc , [ headerName , value ] ) => {
259
+ if ( ! this . _errorHeaderWhitelist . includes ( headerName . toLowerCase ( ) ) ) return acc
260
+
261
+ return {
262
+ ...acc ,
263
+ [ headerName ] : value
264
+ }
265
+ } , { } )
266
+
267
+ response . _headers = strippedHeaders
258
268
259
269
let message
260
270
You can’t perform that action at this time.
0 commit comments