Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
28 lines
660 B
TypeScript
28 lines
660 B
TypeScript
const generateDownloadUrl = async (url: string) => {
|
|
const resp = await fetch(url);
|
|
const respBlob = await resp.blob();
|
|
|
|
const blob = new Blob([ respBlob ]);
|
|
|
|
return URL.createObjectURL(blob);
|
|
};
|
|
|
|
export const downloadFile = async (url: string, fileName: string) => {
|
|
const dowloadUrl = await generateDownloadUrl(url);
|
|
const link = document.createElement('a');
|
|
|
|
if (fileName) {
|
|
link.download = fileName;
|
|
}
|
|
link.href = dowloadUrl;
|
|
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
link.remove();
|
|
|
|
// fix for certain browsers
|
|
setTimeout(() => {
|
|
URL.revokeObjectURL(dowloadUrl);
|
|
}, 0);
|
|
};
|