{"version":3,"file":"file.utils.mjs","names":[],"sources":["../../../../../../../@warlock.js/seal/src/helpers/file.utils.ts"],"sourcesContent":["import type { FileSizeOption } from \"../types/file.types\";\n\nexport function resolveFileSize(size: number | FileSizeOption): number {\n  if (typeof size === \"number\") {\n    return size;\n  }\n\n  switch (size.unit) {\n    case \"B\":\n      return size.size;\n    case \"KB\":\n      return size.size * 1024;\n    case \"MB\":\n      return size.size * 1024 * 1024;\n    case \"GB\":\n      return size.size * 1024 * 1024 * 1024;\n  }\n}\n\n/**\n * Convert the given size to a human size\n * i.e 2MB, 0.5MB, 120KB, 1.5GB..etc\n */\nexport function humanizeSize(sizeInBits: number): string {\n  const units = [\"B\", \"KB\", \"MB\", \"GB\"];\n  let size = sizeInBits;\n  let unitIndex = 0;\n\n  while (size >= 1024 && unitIndex < units.length - 1) {\n    size /= 1024;\n    unitIndex++;\n  }\n\n  return `${Number.isInteger(size) ? size : size.toFixed(2)}${units[unitIndex]}`;\n}\n"],"mappings":";AAEA,SAAgB,gBAAgB,MAAuC;CACrE,IAAI,OAAO,SAAS,UAClB,OAAO;CAGT,QAAQ,KAAK,MAAb;EACE,KAAK,KACH,OAAO,KAAK;EACd,KAAK,MACH,OAAO,KAAK,OAAO;EACrB,KAAK,MACH,OAAO,KAAK,OAAO,OAAO;EAC5B,KAAK,MACH,OAAO,KAAK,OAAO,OAAO,OAAO;CACrC;AACF;;;;;AAMA,SAAgB,aAAa,YAA4B;CACvD,MAAM,QAAQ;EAAC;EAAK;EAAM;EAAM;CAAI;CACpC,IAAI,OAAO;CACX,IAAI,YAAY;CAEhB,OAAO,QAAQ,QAAQ,YAAY,MAAM,SAAS,GAAG;EACnD,QAAQ;EACR;CACF;CAEA,OAAO,GAAG,OAAO,UAAU,IAAI,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,MAAM;AACpE"}