| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | export class downloader {    #name;    #content;    #type;    #encode;    constructor() {        this.#name = "download.json";        this.#content = "";        this.#type = "text/plain";        this.#encode = "utf-8";    }    name(target) {        this.#name = target;        return this;    }    content(target) {        this.#content = target;        return this;    }    type(target) {        this.#type = target;        return this;    }    encode(target) {        this.#encode = target;        return this;    }    get #href() {        return (            "data:" + this.#type             + ";charset=" + this.#encode + ","             + encodeURIComponent(this.#content)        );    }    get #link() {        const link = document.createElement("a");        link.style.display = "none";        link.href = this.#href;        link.download = this.#name;        return link;    }    process() {        const link = this.#link;        const body = document.querySelector("body");        body.appendChild(link);        link.click();        body.removeChild(link);        return this;    }}
 |