@etsoo/shared 1.2.5 → 1.2.6

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.
@@ -40,3 +40,12 @@ test('Tests for toExact', () => {
40
40
  expect(result).not.toBe(0.7);
41
41
  expect(result.toExact()).toBe(0.7);
42
42
  });
43
+
44
+ test('Tests for toFileSize', () => {
45
+ expect(NumberUtils.formatFileSize(1551859712)).toBe('1.45 GB');
46
+ expect(NumberUtils.formatFileSize(1551859712, 1)).toBe('1.4 GB');
47
+ expect(NumberUtils.formatFileSize(5000)).toBe('4.88 KB');
48
+ expect(NumberUtils.formatFileSize(999949)).toBe('976.51 KB');
49
+ expect(NumberUtils.formatFileSize(1125000)).toBe('1.07 MB');
50
+ expect(NumberUtils.formatFileSize(1125000, 1)).toBe('1.1 MB');
51
+ });
@@ -65,4 +65,4 @@ var ArrayUtils;
65
65
  return diff;
66
66
  }
67
67
  ArrayUtils.differences = differences;
68
- })(ArrayUtils = exports.ArrayUtils || (exports.ArrayUtils = {}));
68
+ })(ArrayUtils || (exports.ArrayUtils = ArrayUtils = {}));
@@ -77,4 +77,4 @@ var ColorUtils;
77
77
  return nColors;
78
78
  }
79
79
  ColorUtils.getEColors = getEColors;
80
- })(ColorUtils = exports.ColorUtils || (exports.ColorUtils = {}));
80
+ })(ColorUtils || (exports.ColorUtils = ColorUtils = {}));
@@ -428,4 +428,4 @@ var DataTypes;
428
428
  };
429
429
  }
430
430
  DataTypes.jsonReplacer = jsonReplacer;
431
- })(DataTypes = exports.DataTypes || (exports.DataTypes = {}));
431
+ })(DataTypes || (exports.DataTypes = DataTypes = {}));
@@ -224,4 +224,4 @@ var DateUtils;
224
224
  d1.getMonth() === d2.getMonth());
225
225
  }
226
226
  DateUtils.sameMonth = sameMonth;
227
- })(DateUtils = exports.DateUtils || (exports.DateUtils = {}));
227
+ })(DateUtils || (exports.DateUtils = DateUtils = {}));
@@ -521,4 +521,4 @@ var DomUtils;
521
521
  return false;
522
522
  }
523
523
  DomUtils.verifyPermission = verifyPermission;
524
- })(DomUtils = exports.DomUtils || (exports.DomUtils = {}));
524
+ })(DomUtils || (exports.DomUtils = DomUtils = {}));
@@ -80,4 +80,4 @@ var ExtendUtils;
80
80
  });
81
81
  }
82
82
  ExtendUtils.sleep = sleep;
83
- })(ExtendUtils = exports.ExtendUtils || (exports.ExtendUtils = {}));
83
+ })(ExtendUtils || (exports.ExtendUtils = ExtendUtils = {}));
@@ -267,4 +267,4 @@ var Keyboard;
267
267
  return input.length === 1;
268
268
  }
269
269
  Keyboard.isTypingContent = isTypingContent;
270
- })(Keyboard = exports.Keyboard || (exports.Keyboard = {}));
270
+ })(Keyboard || (exports.Keyboard = Keyboard = {}));
@@ -26,6 +26,13 @@ export declare namespace NumberUtils {
26
26
  * @returns Result
27
27
  */
28
28
  function formatMoney(input: number | bigint, currency?: string, locale?: string | string[], isInteger?: boolean, options?: Intl.NumberFormatOptions): string;
29
+ /**
30
+ * Format file size
31
+ * @param size File size
32
+ * @param fractionDigits Fraction digits
33
+ * @returns Result
34
+ */
35
+ function formatFileSize(size: number, fractionDigits?: number): string;
29
36
  /**
30
37
  * Get currency symbol or name from ISO code
31
38
  * @param code ISO currency code, like USD / CNY
@@ -50,6 +50,19 @@ var NumberUtils;
50
50
  return format(input, locale, options);
51
51
  }
52
52
  NumberUtils.formatMoney = formatMoney;
53
+ /**
54
+ * Format file size
55
+ * @param size File size
56
+ * @param fractionDigits Fraction digits
57
+ * @returns Result
58
+ */
59
+ function formatFileSize(size, fractionDigits = 2) {
60
+ const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
61
+ return ((size / Math.pow(1024, i)).toFixed(fractionDigits) +
62
+ ' ' +
63
+ ['B', 'KB', 'MB', 'GB', 'TB'][i]);
64
+ }
65
+ NumberUtils.formatFileSize = formatFileSize;
53
66
  /**
54
67
  * Get currency symbol or name from ISO code
55
68
  * @param code ISO currency code, like USD / CNY
@@ -93,4 +106,4 @@ var NumberUtils;
93
106
  }
94
107
  return undefined;
95
108
  };
96
- })(NumberUtils = exports.NumberUtils || (exports.NumberUtils = {}));
109
+ })(NumberUtils || (exports.NumberUtils = NumberUtils = {}));
@@ -93,4 +93,4 @@ var StorageUtils;
93
93
  return JSON.parse(data);
94
94
  }
95
95
  StorageUtils.getSessionObject = getSessionObject;
96
- })(StorageUtils = exports.StorageUtils || (exports.StorageUtils = {}));
96
+ })(StorageUtils || (exports.StorageUtils = StorageUtils = {}));
@@ -140,7 +140,7 @@ export declare namespace Utils {
140
140
  * @param args Arguments
141
141
  * @returns Result
142
142
  */
143
- const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : never) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
143
+ const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : []) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
144
144
  /**
145
145
  * Get time zone
146
146
  * @returns Timezone
package/lib/cjs/Utils.js CHANGED
@@ -545,4 +545,4 @@ var Utils;
545
545
  ++start;
546
546
  return input.substring(start);
547
547
  };
548
- })(Utils = exports.Utils || (exports.Utils = {}));
548
+ })(Utils || (exports.Utils = Utils = {}));
@@ -26,6 +26,13 @@ export declare namespace NumberUtils {
26
26
  * @returns Result
27
27
  */
28
28
  function formatMoney(input: number | bigint, currency?: string, locale?: string | string[], isInteger?: boolean, options?: Intl.NumberFormatOptions): string;
29
+ /**
30
+ * Format file size
31
+ * @param size File size
32
+ * @param fractionDigits Fraction digits
33
+ * @returns Result
34
+ */
35
+ function formatFileSize(size: number, fractionDigits?: number): string;
29
36
  /**
30
37
  * Get currency symbol or name from ISO code
31
38
  * @param code ISO currency code, like USD / CNY
@@ -47,6 +47,19 @@ export var NumberUtils;
47
47
  return format(input, locale, options);
48
48
  }
49
49
  NumberUtils.formatMoney = formatMoney;
50
+ /**
51
+ * Format file size
52
+ * @param size File size
53
+ * @param fractionDigits Fraction digits
54
+ * @returns Result
55
+ */
56
+ function formatFileSize(size, fractionDigits = 2) {
57
+ const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
58
+ return ((size / Math.pow(1024, i)).toFixed(fractionDigits) +
59
+ ' ' +
60
+ ['B', 'KB', 'MB', 'GB', 'TB'][i]);
61
+ }
62
+ NumberUtils.formatFileSize = formatFileSize;
50
63
  /**
51
64
  * Get currency symbol or name from ISO code
52
65
  * @param code ISO currency code, like USD / CNY
@@ -140,7 +140,7 @@ export declare namespace Utils {
140
140
  * @param args Arguments
141
141
  * @returns Result
142
142
  */
143
- const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : never) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
143
+ const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : []) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
144
144
  /**
145
145
  * Get time zone
146
146
  * @returns Timezone
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/shared",
3
- "version": "1.2.5",
3
+ "version": "1.2.6",
4
4
  "description": "TypeScript shared utilities and functions",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -54,12 +54,12 @@
54
54
  },
55
55
  "homepage": "https://github.com/ETSOO/Shared#readme",
56
56
  "devDependencies": {
57
- "@types/jest": "^29.5.1",
57
+ "@types/jest": "^29.5.2",
58
58
  "@types/lodash.isequal": "^4.5.6",
59
59
  "jest": "^29.5.0",
60
60
  "jest-environment-jsdom": "^29.5.0",
61
61
  "ts-jest": "^29.1.0",
62
- "typescript": "^5.0.4"
62
+ "typescript": "^5.1.3"
63
63
  },
64
64
  "dependencies": {
65
65
  "lodash.isequal": "^4.5.0"
@@ -66,6 +66,21 @@ export namespace NumberUtils {
66
66
  return format(input, locale, options);
67
67
  }
68
68
 
69
+ /**
70
+ * Format file size
71
+ * @param size File size
72
+ * @param fractionDigits Fraction digits
73
+ * @returns Result
74
+ */
75
+ export function formatFileSize(size: number, fractionDigits: number = 2) {
76
+ const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
77
+ return (
78
+ (size / Math.pow(1024, i)).toFixed(fractionDigits) +
79
+ ' ' +
80
+ ['B', 'KB', 'MB', 'GB', 'TB'][i]
81
+ );
82
+ }
83
+
69
84
  /**
70
85
  * Get currency symbol or name from ISO code
71
86
  * @param code ISO currency code, like USD / CNY
package/src/Utils.ts CHANGED
@@ -359,7 +359,9 @@ export namespace Utils {
359
359
  */
360
360
  export const getResult = <R, T = DataTypes.Func<R> | R>(
361
361
  input: T,
362
- ...args: T extends DataTypes.Func<R> ? Parameters<typeof input> : never
362
+ ...args: T extends DataTypes.Func<R>
363
+ ? Parameters<typeof input>
364
+ : never | []
363
365
  ): T extends DataTypes.Func<R> ? ReturnType<T> : T => {
364
366
  return typeof input === 'function' ? input(...args) : input;
365
367
  };