File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -97,6 +97,7 @@ FilesSystem.fetch(
9797): Promise<FetchResult>
9898
9999type FetchResult = {
100+ getHeader: (header: string) => string | undefined;
100101 headers: { [key: string]: string };
101102 ok: boolean;
102103 redirected: boolean;
Original file line number Diff line number Diff line change @@ -215,10 +215,16 @@ export function App() {
215215 } )
216216 . then ( ( res ) => {
217217 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+ ) ;
222228 return prev . slice ( ) ;
223229 } ) ;
224230 return FileSystem . readFile ( Dirs . CacheDir + '/download.html' ) ;
Original file line number Diff line number Diff line change @@ -98,6 +98,7 @@ class FileSystemMock {
9898 this . filesystem . set ( init . path , `[Mock fetch data for '${ resource } ']` ) ;
9999 }
100100 return {
101+ getHeader : ( ) => undefined ,
101102 headers : { } ,
102103 ok : true ,
103104 redirected : false ,
Original file line number Diff line number Diff line change @@ -78,7 +78,12 @@ function registerFetchListener(
7878 reject ( new Error ( event . message ) ) ;
7979 } else if ( event . state === 'complete' ) {
8080 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+ }
8185 resolve ( {
86+ getHeader : ( header : string ) => headersLower . get ( header . toLowerCase ( ) ) ,
8287 headers : event . headers ,
8388 ok : event . ok ,
8489 redirected : event . redirected ,
Original file line number Diff line number Diff line change @@ -27,6 +27,11 @@ export type FetchInit = {
2727} ;
2828
2929export type FetchResult = {
30+ /**
31+ * Get an HTTP response header value. (Case insensitive matching.)
32+ */
33+ getHeader : ( header : string ) => string | undefined ;
34+
3035 /**
3136 * Response HTTP headers.
3237 */
@@ -61,7 +66,7 @@ export type FetchResult = {
6166export type FetchCompleteEvent = {
6267 requestId : number ;
6368 state : 'complete' ;
64- } & FetchResult ;
69+ } & Omit < FetchResult , 'getHeader' > ;
6570
6671export type FetchErrorEvent = {
6772 requestId : number ;
You can’t perform that action at this time.
0 commit comments