[whatwg/streams] Allow to set mime-type when calling blob() on a stream (#438)

I'm trying to work with serviceworker resulting in my first encounter with a ReadableByteStream. I learned from [here](https://jakearchibald.com/2015/thats-so-fetch/) that I can call **blob()** on a stream which as the method implies returns a blob. However, my blob has no mime-type set and as [type is readonly](https://developer.mozilla.org/en-US/docs/Web/API/Blob), there is no way to pass the info available (passed back as header content-type) into the call to **blob()**.

Here is an example:

    // STORE AS BLOB
    // param.name = "http://foo.css",
    // param.content = new Blob(
    //   ["span%2C%20div%20%7Bborder%3A%201px%20solid%20red%20!important%3B%7D"],
    //   {type: "text/css"}
    // )

    caches.open(CURRENT_CACHE)
        .then(function(cache) {
            request = new Request(param.name, {mode: 'no-cors'}),
            response = new Response(param.content);
            return cache.put(request, response);
        });

    // FETCH BLOB:
    caches.open(CURRENT_CACHE)
        .then(function(cache) {
            return cache.match("http://foo.css")
        }).then(function(answer) {
            console.log(answer.body);   // ReadableByteStream
            console.log(answer.headers.get('Content-Type'));  // text/css
        
            // CALLING blob() - cannot pass mime-type
            return answer.clone().blob()
        }).then(function(my_blob) {
            console.log(my_blob);
            console.log(my_blob.type);   // undefined
        });

If I have to return a blob with mime-type set, the only way I see is read out the blob content and store them in a new blob using the content-type retrieved from the header.

Hence I was wondering whether there is a plan for being able to set the mime-type when calling **blob()**? Otherwise... cool stuff!

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/issues/438

Received on Sunday, 17 April 2016 17:49:39 UTC