55const fileType = require ( 'file-type' )
66const mimeTypes = require ( 'mime-types' )
77const stream = require ( 'stream' )
8- const nodeToWebStream = require ( 'readable- stream-node- to-web ' )
8+ const toBlob = require ( 'stream-to-blob ' )
99
1010const resolver = require ( './resolver' )
1111const pathUtils = require ( './utils/path' )
@@ -68,7 +68,7 @@ const response = (ipfsNode, ipfsPath) => {
6868
6969 readableStream . once ( 'error' , ( error ) => {
7070 if ( error ) {
71- resolve ( new Response ( error . toString ( ) , header ( 500 , 'Service Worker Error ' ) ) )
71+ resolve ( new Response ( error . toString ( ) , header ( 500 , 'Error fetching the file ' ) ) )
7272 }
7373 } )
7474
@@ -79,19 +79,30 @@ const response = (ipfsNode, ipfsPath) => {
7979 if ( filetypeChecked ) {
8080 return
8181 }
82+
8283 filetypeChecked = true
8384 // return Response with mime type
8485 const fileSignature = fileType ( chunk )
8586 const mimeType = mimeTypes . lookup ( fileSignature ? fileSignature . ext : null )
8687
87- if ( mimeType ) {
88- resolve (
89- new Response ( typeof ReadableStream === 'function' ? nodeToWebStream ( responseStream ) : responseStream ,
90- header ( 200 , 'OK' , { 'Content-Type' : mimeTypes . contentType ( mimeType ) } ) )
91- )
88+ if ( typeof Blob === 'undefined' ) {
89+ if ( mimeType ) {
90+ resolve ( new Response ( responseStream , header ( 200 , 'OK' , { 'Content-Type' : mimeTypes . contentType ( mimeType ) } ) ) )
91+ } else {
92+ resolve ( new Response ( responseStream , header ( ) ) )
93+ }
9294 } else {
93- resolve ( new Response ( typeof ReadableStream === 'function' ? nodeToWebStream ( responseStream ) : responseStream ,
94- header ( ) ) )
95+ toBlob ( responseStream , ( err , blob ) => {
96+ if ( err ) {
97+ resolve ( new Response ( err . toString ( ) , header ( 500 , 'Error fetching the file' ) ) )
98+ }
99+
100+ if ( mimeType ) {
101+ resolve ( new Response ( blob , header ( 200 , 'OK' , { 'Content-Type' : mimeTypes . contentType ( mimeType ) } ) ) )
102+ } else {
103+ resolve ( new Response ( blob , header ( ) ) )
104+ }
105+ } )
95106 }
96107 } )
97108 } )
0 commit comments