mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-08 03:54:58 +10:00
50ba37a27f
* chore(release): v5.1.0 * feat: implement resume thumbnails * fix: remove unused mcp tools * docs: fix formatting of docs
29 lines
718 B
TypeScript
29 lines
718 B
TypeScript
import { slugify } from "./string";
|
|
|
|
export function generateFilename(prefix: string, extension?: string) {
|
|
const name = slugify(prefix);
|
|
return `${name}${extension ? `.${extension}` : ""}`;
|
|
}
|
|
|
|
export function downloadWithAnchor(blob: Blob, filename: string) {
|
|
const a = document.createElement("a");
|
|
const url = URL.createObjectURL(blob);
|
|
|
|
a.href = url;
|
|
a.rel = "noopener";
|
|
a.download = filename;
|
|
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
document.body.removeChild(a);
|
|
|
|
setTimeout(() => URL.revokeObjectURL(url), 5000);
|
|
}
|
|
|
|
export async function downloadFromUrl(url: string, filename: string) {
|
|
const response = await fetch(url);
|
|
const blob = await response.blob();
|
|
|
|
downloadWithAnchor(blob, filename);
|
|
}
|