diff --git a/snarf.ts b/snarf.ts new file mode 100644 index 0000000..1c25d29 --- /dev/null +++ b/snarf.ts @@ -0,0 +1,14 @@ +import { readerFromStreamReader } from "https://deno.land/std/io/mod.ts"; +import { basename, dirname } from "https://deno.land/std/path/mod.ts"; + +export async function snarf(url: Request | string, init?: RequestInit, fn?: string): Promise { + var outf= fn ?? basename(typeof url === "string" ? url : url.url) + res= await fetch(url, init); + sr= res.body?.getReader(); + if(sr !== null && sr !== void 0) { + var r=readerFromStreamReader(sr); + var f=Deno.open(outf, {create:true,write:true}) + await Deno.copy(r,f) + f.close() + } +}