35 lines
810 B
JavaScript
35 lines
810 B
JavaScript
export function downloadFile(name, content, extension, mime) {
|
|
const filename = prompt("Filename?", name);
|
|
if (!filename) {
|
|
return;
|
|
}
|
|
|
|
const blob = new Blob([content], { type: mime });
|
|
const url = URL.createObjectURL(blob);
|
|
|
|
const element = document.createElement("a");
|
|
|
|
element.href = url;
|
|
element.download = filename.endsWith(extension) ? filename : filename + extension;
|
|
element.style.display = "none";
|
|
|
|
document.body.appendChild(element);
|
|
|
|
element.click();
|
|
|
|
document.body.removeChild(element);
|
|
}
|
|
|
|
export function slugify(text) {
|
|
return text
|
|
.split(/\W+/)
|
|
.map((word) => word.toLowerCase())
|
|
.join("-");
|
|
}
|
|
|
|
export function minifyJs(code) {
|
|
return code
|
|
.replace(/[\s\n]+/g, " ")
|
|
.replace(/;\s+/g, ";");
|
|
}
|