1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

Make fetch.blob() work

This commit is contained in:
Parsa Ghadimi 2018-09-14 22:26:37 +04:30 committed by Ryan Dahl
parent 662e57b20a
commit 4b1eb855bf
3 changed files with 14 additions and 3 deletions

View file

@ -20,6 +20,7 @@ import {
FormData
} from "./dom_types";
import { TextDecoder } from "./text_encoding";
import { DenoBlob } from "./blob";
interface Header {
name: string;
@ -134,8 +135,10 @@ class FetchResponse implements Response {
}
async blob(): Promise<Blob> {
notImplemented();
return {} as Blob;
const arrayBuffer = await this.arrayBuffer();
return new DenoBlob([arrayBuffer], {
type: this.headers.get("content-type") || ""
});
}
async formData(): Promise<FormData> {

View file

@ -35,3 +35,11 @@ test(async function headersAppend() {
}
assert(err instanceof TypeError);
});
testPerm({ net: true }, async function fetchBlob() {
const response = await fetch("http://localhost:4545/package.json");
const headers = response.headers;
const blob = await response.blob();
assertEqual(blob.type, headers.get("Content-Type"));
assertEqual(blob.size, Number(headers.get("Content-Length")));
});

View file

@ -9,7 +9,7 @@ export function setLogDebug(debug: boolean): void {
}
/**
* Debug logging for deno.
* Debug logging for deno.
* Enable with the `--log-debug` or `-D` command line flag.
* @internal
*/