fix some browsers (including firefox) downloading the script as a text file

This commit is contained in:
undergroundwires
2020-09-03 00:48:22 +01:00
parent bb92c9ec28
commit 8c17929151
2 changed files with 13 additions and 4 deletions

View File

@@ -1,9 +1,18 @@
import fileSaver from 'file-saver';
export enum FileType {
BatchFile,
}
export class SaveFileDialog {
public static saveText(text: string, fileName: string): void {
this.saveBlob(text, 'text/plain;charset=utf-8', fileName);
public static saveFile(text: string, fileName: string, type: FileType): void {
const mimeType = this.mimeTypes.get(type);
this.saveBlob(text, mimeType, fileName);
}
private static readonly mimeTypes = new Map<FileType, string>([
// Some browsers (including firefox + IE) require right mime type
// otherwise they ignore extension and save the file as text.
[ FileType.BatchFile, 'application/bat' ], // https://en.wikipedia.org/wiki/Batch_file
]);
private static saveBlob(file: BlobPart, fileType: string, fileName: string): void {
try {