Skip to content

Instantly share code, notes, and snippets.

@32teeth
Created November 1, 2023 16:06
Show Gist options
  • Save 32teeth/4caa7ef9d1736d7625aa68d478b6755c to your computer and use it in GitHub Desktop.
Save 32teeth/4caa7ef9d1736d7625aa68d478b6755c to your computer and use it in GitHub Desktop.
Console Save
declare global {
interface Console {
save(data: any, filename?: string): void;
}
}
(function (console: Console) {
console.save = function (data: any, filename?: string): void {
if (!data) {
console.error('Console.save: No data');
return;
}
if (!filename) filename = 'console.json';
if (typeof data === 'object') {
data = JSON.stringify(data, undefined, 4);
}
const blob = new Blob([data], { type: 'text/json' });
const e = document.createEvent('MouseEvents');
const a = document.createElement('a');
a.download = filename;
a.href = window.URL.createObjectURL(blob);
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
};
})(console);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment