snarf-deno/snarf.ts

15 lines
547 B
TypeScript

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<void> {
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()
}
}