| 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;
- }
- }
|