diginext-utils
Version:
README.md
81 lines (80 loc) • 3.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.doSaveFileMobile = exports.doSaveFileDesktop = exports.doGetFile = void 0;
const file_saver_1 = require("file-saver");
const index_1 = require("../device/index");
const random_1 = require("../string/random");
const url_1 = require("../string/url");
const doGetFile = async (url, data) => {
const response = await fetch(url);
if (!response.ok) {
return undefined;
}
const blob = await response.blob();
const ext = (0, url_1.getExtensionFromMimeType)(blob.type);
const filename = (data === null || data === void 0 ? void 0 : data.filename) ? `${data === null || data === void 0 ? void 0 : data.filename}.${ext}` : `${(0, random_1.randomFileName)("img", 3)}.${ext}`;
const file = new File([blob], filename, {
type: blob.type,
});
return { file, filename };
};
exports.doGetFile = doGetFile;
const doSaveFileDesktop = async (url, data) => {
//
if (!(data === null || data === void 0 ? void 0 : data.file)) {
const __data = await (0, exports.doGetFile)(url, data);
const file = __data === null || __data === void 0 ? void 0 : __data.file;
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
if (!file || !filename)
return false;
try {
(0, file_saver_1.saveAs)(file, filename);
}
catch (error) {
window.open(url, "_self");
console.error(`saveWhenError error`, error);
}
}
return true;
};
exports.doSaveFileDesktop = doSaveFileDesktop;
const doSaveFileMobile = async (url, data) => {
return new Promise(async (resolve, reject) => {
const __data = await (0, exports.doGetFile)(url, data);
const file = __data === null || __data === void 0 ? void 0 : __data.file;
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
if (!file || !filename)
return false;
navigator
.share({
files: [file],
title: filename,
})
.then(() => {
resolve(true);
// alert(0);
// console.log(0);
})
.catch(async (err) => {
var _a, _b, _c, _d;
if ((_b = (_a = `${err}`).includes) === null || _b === void 0 ? void 0 : _b.call(_a, "AbortError"))
return;
if ((_d = (_c = err === null || err === void 0 ? void 0 : err.message) === null || _c === void 0 ? void 0 : _c.includes) === null || _d === void 0 ? void 0 : _d.call(_c, "cancellation"))
return;
console.error(`navigator error`, err);
await (0, exports.doSaveFileDesktop)(url, data);
resolve(true);
});
});
};
exports.doSaveFileMobile = doSaveFileMobile;
async function downloadByUrl(url, data) {
//
if ((0, index_1.isMobile)()) {
return (0, exports.doSaveFileMobile)(url, data);
}
else {
return (0, exports.doSaveFileDesktop)(url, data);
}
}
exports.default = downloadByUrl;