@reown/appkit-common-react-native 1.1.1 → 1.2.0
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/lib/commonjs/utils/NumberUtil.js +39 -2
- package/lib/commonjs/utils/NumberUtil.js.map +1 -1
- package/lib/module/utils/NumberUtil.js +39 -2
- package/lib/module/utils/NumberUtil.js.map +1 -1
- package/lib/typescript/__tests__/NamesUtil.test.d.ts +2 -0
- package/lib/typescript/__tests__/NamesUtil.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/NumberUtil.test.d.ts +2 -0
- package/lib/typescript/__tests__/NumberUtil.test.d.ts.map +1 -0
- package/lib/typescript/utils/NumberUtil.d.ts +13 -0
- package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +4 -0
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/NamesUtil.test.ts +24 -0
- package/src/__tests__/NumberUtil.test.ts +46 -0
- package/src/utils/NumberUtil.ts +43 -2
- package/src/utils/TypeUtil.ts +6 -0
|
@@ -9,6 +9,9 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
9
9
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
10
|
const NumberUtil = exports.NumberUtil = {
|
|
11
11
|
bigNumber(value) {
|
|
12
|
+
if (typeof value === 'string') {
|
|
13
|
+
return new BigNumber.BigNumber(value.replace(/,/g, ''));
|
|
14
|
+
}
|
|
12
15
|
return new BigNumber.BigNumber(value);
|
|
13
16
|
},
|
|
14
17
|
/**
|
|
@@ -21,13 +24,47 @@ const NumberUtil = exports.NumberUtil = {
|
|
|
21
24
|
if (a === undefined || b === undefined) {
|
|
22
25
|
return BigNumber.BigNumber(0);
|
|
23
26
|
}
|
|
24
|
-
const aBigNumber = new BigNumber.BigNumber(a);
|
|
25
|
-
const bBigNumber = new BigNumber.BigNumber(b);
|
|
27
|
+
const aBigNumber = new BigNumber.BigNumber(typeof a === 'string' ? a.replace(/,/gu, '') : a);
|
|
28
|
+
const bBigNumber = new BigNumber.BigNumber(typeof b === 'string' ? b.replace(/,/gu, '') : b);
|
|
26
29
|
return aBigNumber.multipliedBy(bBigNumber);
|
|
27
30
|
},
|
|
28
31
|
roundNumber(number, threshold, fixed) {
|
|
29
32
|
const roundedNumber = number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;
|
|
30
33
|
return roundedNumber;
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* Format the given number or string to human readable numbers with the given number of decimals
|
|
37
|
+
* @param value - The value to format. It could be a number or string. If it's a string, it will be parsed to a float then formatted.
|
|
38
|
+
* @param decimals - number of decimals after dot
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
formatNumberToLocalString(value, decimals = 2) {
|
|
42
|
+
if (value === undefined) {
|
|
43
|
+
return '0.00';
|
|
44
|
+
}
|
|
45
|
+
if (typeof value === 'number') {
|
|
46
|
+
return value.toLocaleString('en-US', {
|
|
47
|
+
maximumFractionDigits: decimals,
|
|
48
|
+
minimumFractionDigits: decimals
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return parseFloat(value).toLocaleString('en-US', {
|
|
52
|
+
maximumFractionDigits: decimals,
|
|
53
|
+
minimumFractionDigits: decimals
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Parse a formatted local string back to a number
|
|
58
|
+
* @param value - The formatted string to parse
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
parseLocalStringToNumber(value) {
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Remove any commas used as thousand separators and parse the float
|
|
67
|
+
return parseFloat(value.replace(/,/gu, ''));
|
|
31
68
|
}
|
|
32
69
|
};
|
|
33
70
|
//# sourceMappingURL=NumberUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA0C,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEnC,MAAMY,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxBE,SAASA,CAACC,KAAgC,EAAE;IAC1C,OAAO,IAAI3B,SAAS,CAACA,SAAS,CAAC2B,KAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","replace","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as BigNumber from 'bignumber.js';
|
|
2
2
|
export const NumberUtil = {
|
|
3
3
|
bigNumber(value) {
|
|
4
|
+
if (typeof value === 'string') {
|
|
5
|
+
return new BigNumber.BigNumber(value.replace(/,/g, ''));
|
|
6
|
+
}
|
|
4
7
|
return new BigNumber.BigNumber(value);
|
|
5
8
|
},
|
|
6
9
|
/**
|
|
@@ -13,13 +16,47 @@ export const NumberUtil = {
|
|
|
13
16
|
if (a === undefined || b === undefined) {
|
|
14
17
|
return BigNumber.BigNumber(0);
|
|
15
18
|
}
|
|
16
|
-
const aBigNumber = new BigNumber.BigNumber(a);
|
|
17
|
-
const bBigNumber = new BigNumber.BigNumber(b);
|
|
19
|
+
const aBigNumber = new BigNumber.BigNumber(typeof a === 'string' ? a.replace(/,/gu, '') : a);
|
|
20
|
+
const bBigNumber = new BigNumber.BigNumber(typeof b === 'string' ? b.replace(/,/gu, '') : b);
|
|
18
21
|
return aBigNumber.multipliedBy(bBigNumber);
|
|
19
22
|
},
|
|
20
23
|
roundNumber(number, threshold, fixed) {
|
|
21
24
|
const roundedNumber = number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;
|
|
22
25
|
return roundedNumber;
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Format the given number or string to human readable numbers with the given number of decimals
|
|
29
|
+
* @param value - The value to format. It could be a number or string. If it's a string, it will be parsed to a float then formatted.
|
|
30
|
+
* @param decimals - number of decimals after dot
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
formatNumberToLocalString(value, decimals = 2) {
|
|
34
|
+
if (value === undefined) {
|
|
35
|
+
return '0.00';
|
|
36
|
+
}
|
|
37
|
+
if (typeof value === 'number') {
|
|
38
|
+
return value.toLocaleString('en-US', {
|
|
39
|
+
maximumFractionDigits: decimals,
|
|
40
|
+
minimumFractionDigits: decimals
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return parseFloat(value).toLocaleString('en-US', {
|
|
44
|
+
maximumFractionDigits: decimals,
|
|
45
|
+
minimumFractionDigits: decimals
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Parse a formatted local string back to a number
|
|
50
|
+
* @param value - The formatted string to parse
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
parseLocalStringToNumber(value) {
|
|
54
|
+
if (value === undefined) {
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Remove any commas used as thousand separators and parse the float
|
|
59
|
+
return parseFloat(value.replace(/,/gu, ''));
|
|
23
60
|
}
|
|
24
61
|
};
|
|
25
62
|
//# sourceMappingURL=NumberUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","multiply","a","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,cAAc;AAEzC,OAAO,MAAMC,UAAU,GAAG;EACxBC,SAASA,CAACC,KAAgC,EAAE;IAC1C,OAAO,IAAIH,SAAS,CAACA,SAAS,CAACG,KAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","replace","multiply","a","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,cAAc;AAEzC,OAAO,MAAMC,UAAU,GAAG;EACxBC,SAASA,CAACC,KAAgC,EAAE;IAC1C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO,IAAIH,SAAS,CAACA,SAAS,CAACG,KAAK,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzD;IAEA,OAAO,IAAIJ,SAAS,CAACA,SAAS,CAACG,KAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEE,QAAQA,CAACC,CAAwC,EAAEC,CAAwC,EAAE;IAC3F,IAAID,CAAC,KAAKE,SAAS,IAAID,CAAC,KAAKC,SAAS,EAAE;MACtC,OAAOR,SAAS,CAACA,SAAS,CAAC,CAAC,CAAC;IAC/B;IAEA,MAAMS,UAAU,GAAG,IAAIT,SAAS,CAACA,SAAS,CAAC,OAAOM,CAAC,KAAK,QAAQ,GAAGA,CAAC,CAACF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGE,CAAC,CAAC;IAC5F,MAAMI,UAAU,GAAG,IAAIV,SAAS,CAACA,SAAS,CAAC,OAAOO,CAAC,KAAK,QAAQ,GAAGA,CAAC,CAACH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGG,CAAC,CAAC;IAE5F,OAAOE,UAAU,CAACE,YAAY,CAACD,UAAU,CAAC;EAC5C,CAAC;EAEDE,WAAWA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,KAAa,EAAE;IAC5D,MAAMC,aAAa,GACjBH,MAAM,CAACI,QAAQ,CAAC,CAAC,CAACC,MAAM,IAAIJ,SAAS,GAAGK,MAAM,CAACN,MAAM,CAAC,CAACO,OAAO,CAACL,KAAK,CAAC,GAAGF,MAAM;IAEhF,OAAOG,aAAa;EACtB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEK,yBAAyBA,CAAClB,KAAkC,EAAEmB,QAAQ,GAAG,CAAC,EAAE;IAC1E,IAAInB,KAAK,KAAKK,SAAS,EAAE;MACvB,OAAO,MAAM;IACf;IAEA,IAAI,OAAOL,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,CAACoB,cAAc,CAAC,OAAO,EAAE;QACnCC,qBAAqB,EAAEF,QAAQ;QAC/BG,qBAAqB,EAAEH;MACzB,CAAC,CAAC;IACJ;IAEA,OAAOI,UAAU,CAACvB,KAAK,CAAC,CAACoB,cAAc,CAAC,OAAO,EAAE;MAC/CC,qBAAqB,EAAEF,QAAQ;MAC/BG,qBAAqB,EAAEH;IACzB,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEK,wBAAwBA,CAACxB,KAAyB,EAAE;IAClD,IAAIA,KAAK,KAAKK,SAAS,EAAE;MACvB,OAAO,CAAC;IACV;;IAEA;IACA,OAAOkB,UAAU,CAACvB,KAAK,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;EAC7C;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NamesUtil.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/NamesUtil.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberUtil.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/NumberUtil.test.ts"],"names":[],"mappings":""}
|
|
@@ -9,5 +9,18 @@ export declare const NumberUtil: {
|
|
|
9
9
|
*/
|
|
10
10
|
multiply(a: BigNumber.BigNumber.Value | undefined, b: BigNumber.BigNumber.Value | undefined): BigNumber.BigNumber;
|
|
11
11
|
roundNumber(number: number, threshold: number, fixed: number): string | number;
|
|
12
|
+
/**
|
|
13
|
+
* Format the given number or string to human readable numbers with the given number of decimals
|
|
14
|
+
* @param value - The value to format. It could be a number or string. If it's a string, it will be parsed to a float then formatted.
|
|
15
|
+
* @param decimals - number of decimals after dot
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
formatNumberToLocalString(value: string | number | undefined, decimals?: number): string;
|
|
19
|
+
/**
|
|
20
|
+
* Parse a formatted local string back to a number
|
|
21
|
+
* @param value - The formatted string to parse
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
parseLocalStringToNumber(value: string | undefined): number;
|
|
12
25
|
};
|
|
13
26
|
//# sourceMappingURL=NumberUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;qBACJ,mBAAmB,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;qBACJ,mBAAmB,CAAC,KAAK;IAQ1C;;;;;OAKG;gBACS,mBAAmB,CAAC,KAAK,GAAG,SAAS,KAAK,mBAAmB,CAAC,KAAK,GAAG,SAAS;wBAWvE,MAAM,aAAa,MAAM,SAAS,MAAM;IAO5D;;;;;OAKG;qCAC8B,MAAM,GAAG,MAAM,GAAG,SAAS;IAiB5D;;;;OAIG;oCAC6B,MAAM,GAAG,SAAS;CAQnD,CAAC"}
|
|
@@ -75,5 +75,9 @@ export interface TransactionQuantity {
|
|
|
75
75
|
numeric: string;
|
|
76
76
|
}
|
|
77
77
|
export type SocialProvider = 'apple' | 'x' | 'discord' | 'farcaster';
|
|
78
|
+
export type ThemeMode = 'dark' | 'light';
|
|
79
|
+
export interface ThemeVariables {
|
|
80
|
+
accent?: string;
|
|
81
|
+
}
|
|
78
82
|
export {};
|
|
79
83
|
//# sourceMappingURL=TypeUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,GAAG,GAAG,SAAS,GAAG,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,GAAG,GAAG,SAAS,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ConstantsUtil, NamesUtil } from '../index';
|
|
2
|
+
|
|
3
|
+
describe('NamesUtil', () => {
|
|
4
|
+
describe('isReownName', () => {
|
|
5
|
+
test('returns true for names ending with legacy suffix', () => {
|
|
6
|
+
const legacyName = `testname${ConstantsUtil.WC_NAME_SUFFIX_LEGACY}`;
|
|
7
|
+
expect(NamesUtil.isReownName(legacyName)).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test('returns true for names ending with current suffix', () => {
|
|
11
|
+
const currentName = `testname${ConstantsUtil.WC_NAME_SUFFIX}`;
|
|
12
|
+
expect(NamesUtil.isReownName(currentName)).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('returns false for names not ending with either suffix', () => {
|
|
16
|
+
expect(NamesUtil.isReownName('testname')).toBe(false);
|
|
17
|
+
expect(NamesUtil.isReownName('testname.com')).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('returns false for empty string', () => {
|
|
21
|
+
expect(NamesUtil.isReownName('')).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { NumberUtil } from '../utils/NumberUtil';
|
|
2
|
+
|
|
3
|
+
// -- Tests --------------------------------------------------------------------
|
|
4
|
+
describe('NumberUtil', () => {
|
|
5
|
+
it('should return isGreaterThan as expected', () => {
|
|
6
|
+
const isGreaterThan = NumberUtil.bigNumber('6.348').isGreaterThan('0');
|
|
7
|
+
expect(isGreaterThan).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
describe('NumberUtil.parseLocalStringToNumber', () => {
|
|
12
|
+
it('should return 0 when value is undefined', () => {
|
|
13
|
+
const result = NumberUtil.parseLocalStringToNumber(undefined);
|
|
14
|
+
expect(result).toBe(0);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('should return the number when value is a string', () => {
|
|
18
|
+
const result = NumberUtil.parseLocalStringToNumber('123.45');
|
|
19
|
+
expect(result).toBe(123.45);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('should return the number when value is a string with a lot of decimals', () => {
|
|
23
|
+
const result = NumberUtil.parseLocalStringToNumber('123.4567890123456789');
|
|
24
|
+
expect(result).toBe(123.4567890123456789);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('should return the number when value is a string with zero and a lot of decimals', () => {
|
|
28
|
+
const result = NumberUtil.parseLocalStringToNumber('0.000000000000000001');
|
|
29
|
+
expect(result).toBe(0.000000000000000001);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('should return the number when value is a string with a negative sign', () => {
|
|
33
|
+
const result = NumberUtil.parseLocalStringToNumber('-123.45');
|
|
34
|
+
expect(result).toBe(-123.45);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('should return the number when value is a string with commas', () => {
|
|
38
|
+
const result = NumberUtil.parseLocalStringToNumber('123,456.78');
|
|
39
|
+
expect(result).toBe(123456.78);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should return the number when value is a string with a lot of commas', () => {
|
|
43
|
+
const result = NumberUtil.parseLocalStringToNumber('123,456,789.123,456,789');
|
|
44
|
+
expect(result).toBe(123456789.123456789);
|
|
45
|
+
});
|
|
46
|
+
});
|
package/src/utils/NumberUtil.ts
CHANGED
|
@@ -2,6 +2,10 @@ import * as BigNumber from 'bignumber.js';
|
|
|
2
2
|
|
|
3
3
|
export const NumberUtil = {
|
|
4
4
|
bigNumber(value: BigNumber.BigNumber.Value) {
|
|
5
|
+
if (typeof value === 'string') {
|
|
6
|
+
return new BigNumber.BigNumber(value.replace(/,/g, ''));
|
|
7
|
+
}
|
|
8
|
+
|
|
5
9
|
return new BigNumber.BigNumber(value);
|
|
6
10
|
},
|
|
7
11
|
|
|
@@ -16,8 +20,8 @@ export const NumberUtil = {
|
|
|
16
20
|
return BigNumber.BigNumber(0);
|
|
17
21
|
}
|
|
18
22
|
|
|
19
|
-
const aBigNumber = new BigNumber.BigNumber(a);
|
|
20
|
-
const bBigNumber = new BigNumber.BigNumber(b);
|
|
23
|
+
const aBigNumber = new BigNumber.BigNumber(typeof a === 'string' ? a.replace(/,/gu, '') : a);
|
|
24
|
+
const bBigNumber = new BigNumber.BigNumber(typeof b === 'string' ? b.replace(/,/gu, '') : b);
|
|
21
25
|
|
|
22
26
|
return aBigNumber.multipliedBy(bBigNumber);
|
|
23
27
|
},
|
|
@@ -27,5 +31,42 @@ export const NumberUtil = {
|
|
|
27
31
|
number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;
|
|
28
32
|
|
|
29
33
|
return roundedNumber;
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Format the given number or string to human readable numbers with the given number of decimals
|
|
38
|
+
* @param value - The value to format. It could be a number or string. If it's a string, it will be parsed to a float then formatted.
|
|
39
|
+
* @param decimals - number of decimals after dot
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
formatNumberToLocalString(value: string | number | undefined, decimals = 2) {
|
|
43
|
+
if (value === undefined) {
|
|
44
|
+
return '0.00';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (typeof value === 'number') {
|
|
48
|
+
return value.toLocaleString('en-US', {
|
|
49
|
+
maximumFractionDigits: decimals,
|
|
50
|
+
minimumFractionDigits: decimals
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return parseFloat(value).toLocaleString('en-US', {
|
|
55
|
+
maximumFractionDigits: decimals,
|
|
56
|
+
minimumFractionDigits: decimals
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* Parse a formatted local string back to a number
|
|
61
|
+
* @param value - The formatted string to parse
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
parseLocalStringToNumber(value: string | undefined) {
|
|
65
|
+
if (value === undefined) {
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Remove any commas used as thousand separators and parse the float
|
|
70
|
+
return parseFloat(value.replace(/,/gu, ''));
|
|
30
71
|
}
|
|
31
72
|
};
|
package/src/utils/TypeUtil.ts
CHANGED