synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
43 lines (42 loc) • 1.47 kB
JavaScript
import { getEntity as _, getFiles as g, getFileHandleContent as m } from "../../synapse-client/SynapseClient.js";
import { FileHandleAssociateType as u } from "@sage-bionetworks/synapse-types";
const A = 200, E = "ESTIMATED_DOWNLOAD_SPEED_EXPIRE_TIME", a = "ESTIMATED_DOWNLOAD_SPEED", f = "syn12600511", F = (t) => new Promise((n, d) => {
const i = localStorage.getItem(
E
), s = localStorage.getItem(a);
if (i && s && (/* @__PURE__ */ new Date()).getTime() < Number(i)) {
n(Number(s));
return;
}
_(t, f).then((e) => {
const o = e, S = {
includeFileHandles: !0,
includePreSignedURLs: !0,
includePreviewPreSignedURLs: !1,
requestedFiles: [
{
associateObjectId: o.id,
associateObjectType: u.FileEntity,
fileHandleId: o.dataFileHandleId
}
]
};
g(S, t).then((l) => {
const D = l.requestedFiles[0].preSignedURL, c = l.requestedFiles[0].fileHandle, T = (/* @__PURE__ */ new Date()).getTime();
return m(c, D).then(() => {
const r = c.contentSize / (((/* @__PURE__ */ new Date()).getTime() - T - A) / 1e3), I = (/* @__PURE__ */ new Date()).getTime();
localStorage.setItem(
E,
(I + 1e3 * 60 * 5).toString()
), localStorage.setItem(
a,
r.toString()
), n(r);
});
});
}).catch((e) => d(e));
});
export {
F as testDownloadSpeed
};
//# sourceMappingURL=testDownloadSpeed.js.map