UNPKG

@qundus/qform

Version:

The only form library you'll ever need :)

1 lines 3.13 kB
{"version":3,"sources":["../../src/validators/file.ts"],"names":["Ranges"],"mappings":";;;;;;;AAAA,IAAA,YAAA,GAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,kBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAAA,IAAM,MAAA,GAAS,CAAC,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAChE,IAAK,MAAA,qBAAAA,OAAAA,KAAL;AACN,EAAAA,QAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,QAAA,MAAA,CAAA,GAAO,IAAA;AACP,EAAAA,QAAA,KAAA,CAAA,GAAM,IAAA;AACN,EAAAA,QAAA,KAAA,CAAA,GAAM,IAAA;AACN,EAAAA,QAAA,MAAA,CAAA,GAAO,IAAA;AACP,EAAAA,QAAA,MAAA,CAAA,GAAO,IAAA;AACP,EAAAA,QAAA,KAAA,CAAA,GAAM,IAAA;AACN,EAAAA,QAAA,OAAA,CAAA,GAAQ,IAAA;AACR,EAAAA,QAAA,OAAA,CAAA,GAAQ,IAAA;AATG,EAAA,OAAAA,OAAAA;AAAA,CAAA,EAAA,MAAA,IAAA,EAAA,CAAA;AAWL,SAAS,SAAA,CAAU,KAAA,EAAe,QAAA,GAAW,CAAA,EAAG;AACtD,EAAA,IAAI,CAAC,CAAC,KAAA,EAAO,OAAO,EAAE,IAAA,EAAM,CAAA,EAAG,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,CAAA,EAAG,MAAA,EAAQ,SAAA,EAAU;AAE/E,EAAA,MAAM,CAAA,GAAI,IAAA;AACV,EAAA,MAAM,EAAA,GAAK,QAAA,GAAW,CAAA,GAAI,CAAA,GAAI,QAAA;AAE9B,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA;AAClD,EAAA,MAAM,IAAA,GAAO,OAAO,UAAA,CAAA,CAAY,KAAA,GAAQ,KAAK,CAAA,EAAG,OAAA,CAAQ,EAAE,CAAC,CAAA;AAC3D,EAAA,MAAM,KAAA,GAAQ,OAAO,CAAC,CAAA;AACtB,EAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,CAAA,EAAG,QAAQ,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAG;AAChE;AAEO,SAAS,kBAAA,CACf,IAAA,EACA,SAAA,EACA,UAAA,EACA,WAAW,CAAA,EACV;AACD,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,KAAc,SAAA,CAAU,IAAA,CAAK,MAAM,QAAQ,CAAA;AACzD,EAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA;AAChD,EAAA,IAAI,cAAc,cAAA,EAAgB;AACjC,IAAA,IAAI,QAAQ,SAAA,EAAW;AACtB,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD,CAAA,MAAA,IAAW,YAAY,cAAA,EAAgB;AACtC,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,OAAO,KAAA;AAER","file":"index.cjs","sourcesContent":["const ranges = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"] as const;\nexport enum Ranges {\n\tbyte = \"Bytes\",\n\tkilo = \"KB\",\n\tmeg = \"MB\",\n\tgig = \"GB\",\n\ttera = \"TB\",\n\tpeta = \"PB\",\n\texa = \"EB\",\n\tzetta = \"ZB\",\n\tyotta = \"YB\",\n}\nexport function bytesInfo(bytes: number, decimals = 2) {\n\tif (!+bytes) return { size: 0, range: \"Bytes\", range_idx: 0, format: \"0 Bytes\" };\n\n\tconst k = 1024;\n\tconst dm = decimals < 0 ? 0 : decimals;\n\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\tconst size = Number.parseFloat((bytes / k ** i).toFixed(dm));\n\tconst range = ranges[i];\n\treturn { size, range, range_idx: i, format: `${size} ${range}` };\n}\n\nexport function isFileSizeLessThan(\n\tfile: File,\n\tfile_size: number,\n\tsize_range: (typeof ranges)[number],\n\tdecimals = 2,\n) {\n\tif (!file) return undefined;\n\tconst { size, range_idx } = bytesInfo(file.size, decimals);\n\tconst file_range_idx = ranges.indexOf(size_range);\n\tif (range_idx === file_range_idx) {\n\t\tif (size <= file_size) {\n\t\t\treturn true;\n\t\t}\n\t} else if (range_idx < file_range_idx) {\n\t\treturn true;\n\t}\n\n\treturn false;\n\t// return `File size limit is ${file_size} ${size_range}`;\n}\n"]}