// packages/blob/src/index.ts
var cache = {};
function createBlobURL(file) {
  const url = window.URL.createObjectURL(file);
  cache[url] = file;
  return url;
}
function getBlobByURL(url) {
  return cache[url];
}
function getBlobTypeByURL(url) {
  return getBlobByURL(url)?.type.split("/")[0];
}
function revokeBlobURL(url) {
  if (cache[url]) {
    window.URL.revokeObjectURL(url);
  }
  delete cache[url];
}
function isBlobURL(url) {
  if (!url || !url.indexOf) {
    return false;
  }
  return url.indexOf("blob:") === 0;
}
function downloadBlob(filename, content, contentType = "") {
  if (!filename || !content) {
    return;
  }
  const file = new window.Blob([content], { type: contentType });
  const url = window.URL.createObjectURL(file);
  const anchorElement = document.createElement("a");
  anchorElement.href = url;
  anchorElement.download = filename;
  anchorElement.style.display = "none";
  document.body.appendChild(anchorElement);
  anchorElement.click();
  document.body.removeChild(anchorElement);
  window.URL.revokeObjectURL(url);
}
export {
  createBlobURL,
  downloadBlob,
  getBlobByURL,
  getBlobTypeByURL,
  isBlobURL,
  revokeBlobURL
};
//# sourceMappingURL=index.mjs.map
