File tree Expand file tree Collapse file tree 5 files changed +23
-5
lines changed Expand file tree Collapse file tree 5 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -97,6 +97,7 @@ FilesSystem.fetch(
97
97
): Promise<FetchResult>
98
98
99
99
type FetchResult = {
100
+ getHeader: (header: string) => string | undefined;
100
101
headers: { [key: string]: string };
101
102
ok: boolean;
102
103
redirected: boolean;
Original file line number Diff line number Diff line change @@ -215,10 +215,16 @@ export function App() {
215
215
} )
216
216
. then ( ( res ) => {
217
217
setInfo ( ( prev ) => {
218
- prev . push ( {
219
- key : 'fetch(https://example.com)' ,
220
- value : JSON . stringify ( res ) ,
221
- } ) ;
218
+ prev . push (
219
+ {
220
+ key : 'fetch(https://example.com)' ,
221
+ value : JSON . stringify ( res ) ,
222
+ } ,
223
+ {
224
+ key : 'getHeader(cOntEnt-tYPe)' ,
225
+ value : res . getHeader ( 'cOntEnt-tYPe' ) ?? 'undefined' ,
226
+ }
227
+ ) ;
222
228
return prev . slice ( ) ;
223
229
} ) ;
224
230
return FileSystem . readFile ( Dirs . CacheDir + '/download.html' ) ;
Original file line number Diff line number Diff line change @@ -98,6 +98,7 @@ class FileSystemMock {
98
98
this . filesystem . set ( init . path , `[Mock fetch data for '${ resource } ']` ) ;
99
99
}
100
100
return {
101
+ getHeader : ( ) => undefined ,
101
102
headers : { } ,
102
103
ok : true ,
103
104
redirected : false ,
Original file line number Diff line number Diff line change @@ -78,7 +78,12 @@ function registerFetchListener(
78
78
reject ( new Error ( event . message ) ) ;
79
79
} else if ( event . state === 'complete' ) {
80
80
listener . remove ( ) ;
81
+ const headersLower = new Map < string , string > ( ) ;
82
+ for ( const [ key , value ] of Object . entries ( event . headers ) ) {
83
+ headersLower . set ( key . toLowerCase ( ) , value ) ;
84
+ }
81
85
resolve ( {
86
+ getHeader : ( header : string ) => headersLower . get ( header . toLowerCase ( ) ) ,
82
87
headers : event . headers ,
83
88
ok : event . ok ,
84
89
redirected : event . redirected ,
Original file line number Diff line number Diff line change @@ -27,6 +27,11 @@ export type FetchInit = {
27
27
} ;
28
28
29
29
export type FetchResult = {
30
+ /**
31
+ * Get an HTTP response header value. (Case insensitive matching.)
32
+ */
33
+ getHeader : ( header : string ) => string | undefined ;
34
+
30
35
/**
31
36
* Response HTTP headers.
32
37
*/
@@ -61,7 +66,7 @@ export type FetchResult = {
61
66
export type FetchCompleteEvent = {
62
67
requestId : number ;
63
68
state : 'complete' ;
64
- } & FetchResult ;
69
+ } & Omit < FetchResult , 'getHeader' > ;
65
70
66
71
export type FetchErrorEvent = {
67
72
requestId : number ;
You can’t perform that action at this time.
0 commit comments