diginext-utils
Version:
README.md
96 lines • 4.39 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.doSaveFileMobile = exports.doSaveFileDesktop = exports.doGetFile = void 0;
exports.downloadByUrl = downloadByUrl;
const file_saver_1 = __importDefault(require("file-saver"));
const index_1 = require("../device/index");
const random_1 = require("../string/random");
const url_1 = require("../string/url");
const doGetFile = (url, data) => __awaiter(void 0, void 0, void 0, function* () {
const response = yield fetch(url);
if (!response.ok) {
return undefined;
}
const blob = yield 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 = (url, data) => __awaiter(void 0, void 0, void 0, function* () {
//
if (!(data === null || data === void 0 ? void 0 : data.file)) {
const __data = yield (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.default)(file, filename);
}
catch (error) {
window.open(url, "_self");
console.error(`saveWhenError error`, error);
}
}
return true;
});
exports.doSaveFileDesktop = doSaveFileDesktop;
const doSaveFileMobile = (url, data) => __awaiter(void 0, void 0, void 0, function* () {
return new Promise((resolve, _reject) => __awaiter(void 0, void 0, void 0, function* () {
const __data = yield (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 resolve(false);
navigator
.share({
files: [file],
title: filename,
})
.then(() => {
resolve(true);
// alert(0);
// console.log(0);
})
.catch((err) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d;
if ((_b = (_a = `${err}`).includes) === null || _b === void 0 ? void 0 : _b.call(_a, "AbortError"))
return resolve(false);
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 resolve(false);
console.error(`navigator error`, err);
yield (0, exports.doSaveFileDesktop)(url, data);
resolve(true);
}));
}));
});
exports.doSaveFileMobile = doSaveFileMobile;
function downloadByUrl(url, data) {
return __awaiter(this, void 0, void 0, function* () {
//
if ((0, index_1.isMobile)()) {
return (0, exports.doSaveFileMobile)(url, data);
}
else {
return (0, exports.doSaveFileDesktop)(url, data);
}
});
}
exports.default = downloadByUrl;
//# sourceMappingURL=downloadByUrl.js.map