qidian-shared 1.0.60 → 1.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ import { buildTree, remapKeys, toArr } from "./utils/conversion.mjs";
14
14
  import { MD5, decryptBase64, encryptBase64, encryptWithAes, generateAesKey, generateRandomString } from "./utils/crypto.mjs";
15
15
  import { domOff, domOn, getHtmlTxt, getScrollEl } from "./utils/dom.mjs";
16
16
  import { easyDownload } from "./utils/download.mjs";
17
- import { b2kb, b2mb, cutFileSuffix, cutFilename, isTypeByName } from "./utils/file.mjs";
17
+ import { b2gb, b2kb, b2mb, cutFileSuffix, cutFilename, formatByte, isTypeByName } from "./utils/file.mjs";
18
18
  import { formatGlob } from "./utils/glob.mjs";
19
19
  import { decrypt, encrypt } from "./utils/jsencrypt.mjs";
20
20
  import { parseRelaxedJSON } from "./utils/json.mjs";
@@ -26,6 +26,7 @@ import { validator, validatorRegs } from "./utils/validator.mjs";
26
26
  export {
27
27
  MD5,
28
28
  abortWrapper,
29
+ b2gb,
29
30
  b2kb,
30
31
  b2mb,
31
32
  buildTree,
@@ -50,6 +51,7 @@ export {
50
51
  extractSlotsWithoutPrefix,
51
52
  filterSlots,
52
53
  findEnum,
54
+ formatByte,
53
55
  formatGlob,
54
56
  generateAesKey,
55
57
  generateRandomString,
@@ -3,3 +3,5 @@ export declare function cutFileSuffix(name?: string): string;
3
3
  export declare function isTypeByName(name: string | undefined, suffixs: string[]): boolean;
4
4
  export declare function b2kb(size?: number): number;
5
5
  export declare function b2mb(size?: number): number;
6
+ export declare function b2gb(size?: number): number;
7
+ export declare function formatByte(size?: number | string): string;
@@ -1,3 +1,5 @@
1
+ import { toPrecision } from "./calc.mjs";
2
+ import { isEmpty } from "./common.mjs";
1
3
  function cutFilename(name, num) {
2
4
  if (!name) return "";
3
5
  const lastIndex = name.lastIndexOf(".");
@@ -19,11 +21,28 @@ function b2kb(size = 0) {
19
21
  function b2mb(size = 0) {
20
22
  return size / 1024 / 1024;
21
23
  }
24
+ function b2gb(size = 0) {
25
+ return size / 1024 / 1024 / 1024;
26
+ }
27
+ function formatByte(size) {
28
+ if (isEmpty(size)) return "0B";
29
+ const numSize = typeof size === "string" ? parseFloat(size) : size;
30
+ if (numSize < 1024) {
31
+ return `${toPrecision(numSize, 2)}B`;
32
+ } else if (numSize < 1024 * 1024) {
33
+ return `${toPrecision(b2kb(numSize), 2)}KB`;
34
+ } else if (numSize < 1024 * 1024 * 1024) {
35
+ return `${toPrecision(b2mb(numSize), 2)}MB`;
36
+ }
37
+ return `${toPrecision(b2gb(numSize), 2)}GB`;
38
+ }
22
39
  export {
40
+ b2gb,
23
41
  b2kb,
24
42
  b2mb,
25
43
  cutFileSuffix,
26
44
  cutFilename,
45
+ formatByte,
27
46
  isTypeByName
28
47
  };
29
48
  //# sourceMappingURL=file.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转KB\n * @param size 字节\n * @returns kb\n */\nexport function b2kb(size = 0) {\n return size / 1024\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO;AAChB;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;"}
1
+ {"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["import { toPrecision } from './calc'\nimport { isEmpty } from './common'\n\n/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转KB\n * @param size 字节\n * @returns kb\n */\nexport function b2kb(size = 0) {\n return size / 1024\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n\n/**\n * 字节转GB\n * @param size 字节\n * @returns gb\n */\nexport function b2gb(size = 0) {\n return size / 1024 / 1024 / 1024\n}\n\n/**\n * 格式化文件大小\n * @param size 字节\n * @returns 格式化后的文件大小字符串\n */\nexport function formatByte(size?: number | string) {\n if (isEmpty(size)) return '0B'\n\n const numSize = typeof size === 'string' ? parseFloat(size) : size\n if (numSize < 1024) {\n return `${toPrecision(numSize, 2)}B`\n } else if (numSize < 1024 * 1024) {\n return `${toPrecision(b2kb(numSize), 2)}KB`\n } else if (numSize < 1024 * 1024 * 1024) {\n return `${toPrecision(b2mb(numSize), 2)}MB`\n }\n\n return `${toPrecision(b2gb(numSize), 2)}GB`\n}\n"],"names":[],"mappings":";;AASO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO;AAChB;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO,OAAO;AAC9B;AAOO,SAAS,WAAW,MAAwB;AACjD,MAAI,QAAQ,IAAI,EAAG,QAAO;AAE1B,QAAM,UAAU,OAAO,SAAS,WAAW,WAAW,IAAI,IAAI;AAC9D,MAAI,UAAU,MAAM;AAClB,WAAO,GAAG,YAAY,SAAS,CAAC,CAAC;AAAA,EACnC,WAAW,UAAU,OAAO,MAAM;AAChC,WAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AAAA,EACzC,WAAW,UAAU,OAAO,OAAO,MAAM;AACvC,WAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AAAA,EACzC;AAEA,SAAO,GAAG,YAAY,KAAK,OAAO,GAAG,CAAC,CAAC;AACzC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-shared",
3
- "version": "1.0.60",
3
+ "version": "1.0.62",
4
4
  "description": "QiDian 共享工具函数和钩子",
5
5
  "type": "module",
6
6
  "author": "qidian",