Skip to content

downloadBlob

Edit

Starts a browser download for an in-memory Blob.

downloadBlob.ts
/** Starts a browser download for a Blob and releases its temporary object URL. */
export const downloadBlob = (blob: Blob, filename: string): void => {
if (filename.trim().length === 0) throw new TypeError("filename cannot be empty");
const url = URL.createObjectURL(blob);
const anchor = document.createElement("a");
anchor.href = url;
anchor.download = filename;
anchor.style.display = "none";
document.body.append(anchor);
try {
anchor.click();
} finally {
anchor.remove();
URL.revokeObjectURL(url);
}
};
Terminal
wget -O src/lib/downloadBlob.ts https://raw.githubusercontent.com/jrTilak/lazykit/HEAD/registry/functions/downloadBlob.ts
downloadBlob.example.ts
import { downloadBlob } from "./downloadBlob";
const report = new Blob(["name,total\nAda,42"], { type: "text/csv" });
downloadBlob(report, "report.csv");
  • blob (Blob) — Browser data to download.
  • filename (string) — Non-empty suggested filename.
  • The temporary anchor and object URL are always released.