@react-pakistan/util-functions 1.23.98 → 1.23.100

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.
@@ -0,0 +1,6 @@
1
+ export type FormatOptions = {
2
+ decimals?: number;
3
+ useLocale?: boolean;
4
+ customSuffixes?: Array<string>;
5
+ };
6
+ export declare const formatNumber: (input: any, options?: FormatOptions) => string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any, prefer-exponentiation-operator, no-restricted-properties */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.formatNumber = void 0;
5
+ var formatNumber = function (input, options) {
6
+ if (options === void 0) { options = {}; }
7
+ var _a = options.decimals, decimals = _a === void 0 ? 2 : _a, _b = options.useLocale, useLocale = _b === void 0 ? true : _b, customSuffixes = options.customSuffixes;
8
+ // Attempt to convert input to a number
9
+ var number = Number(input);
10
+ if (Number.isNaN(number) || !Number.isFinite(number)) {
11
+ return 'Invalid number';
12
+ }
13
+ var absNumber = Math.abs(number);
14
+ var sign = number < 0 ? '-' : '';
15
+ // Define suffixes (default or custom)
16
+ var defaultSuffixes = ['', 'K', 'M', 'B', 'T', 'Q'];
17
+ var suffixes = customSuffixes || defaultSuffixes;
18
+ // Find magnitude
19
+ var tier = Math.floor(Math.log10(absNumber) / 3);
20
+ if (tier === 0) {
21
+ var formatted_1 = useLocale ? absNumber.toLocaleString() : absNumber.toFixed(decimals);
22
+ return sign + formatted_1;
23
+ }
24
+ var suffix = suffixes[tier] || "e".concat(tier * 3);
25
+ var scale = Math.pow(10, tier * 3);
26
+ var scaled = absNumber / scale;
27
+ var rounded = scaled.toFixed(decimals);
28
+ var formatted = useLocale ? Number(rounded).toLocaleString() : rounded;
29
+ return "".concat(sign).concat(formatted).concat(suffix);
30
+ };
31
+ exports.formatNumber = formatNumber;
@@ -9,6 +9,7 @@ export * from './enum-to-text';
9
9
  export * from './fetch-data';
10
10
  export * from './fetch-supabase-image';
11
11
  export * from './format-date';
12
+ export * from './format-number';
12
13
  export * from './format-time';
13
14
  export * from './generate-blog-schema';
14
15
  export * from './generate-breadcrumb-schema';
package/general/index.js CHANGED
@@ -26,6 +26,7 @@ __exportStar(require("./enum-to-text"), exports);
26
26
  __exportStar(require("./fetch-data"), exports);
27
27
  __exportStar(require("./fetch-supabase-image"), exports);
28
28
  __exportStar(require("./format-date"), exports);
29
+ __exportStar(require("./format-number"), exports);
29
30
  __exportStar(require("./format-time"), exports);
30
31
  __exportStar(require("./generate-blog-schema"), exports);
31
32
  __exportStar(require("./generate-breadcrumb-schema"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pakistan/util-functions",
3
- "version": "1.23.98",
3
+ "version": "1.23.100",
4
4
  "description": "A library of all util functions",
5
5
  "main": "index.js",
6
6
  "scripts": {