@driveflux/format-money 6.0.2 → 6.0.3-next.1
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/config.js +14 -13
- package/dist/index.js +71 -19
- package/package.json +7 -7
package/dist/config.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { singleton } from '@driveflux/singleton';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
var getConfig = function() {
|
|
3
|
+
return {
|
|
4
|
+
defaultFormat: {
|
|
5
|
+
currency: 'MYR',
|
|
6
|
+
currencyDisplay: 'narrowSymbol',
|
|
7
|
+
maximumFractionDigits: 2,
|
|
8
|
+
minimumFractionDigits: 2
|
|
9
|
+
},
|
|
10
|
+
defaultLocale: 'en-MY'
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export var config = singleton('formatMoneyConfig', getConfig());
|
|
14
|
+
export var resetConfig = function() {
|
|
13
15
|
config = singleton('formatMoneyConfig', getConfig(), true);
|
|
14
16
|
return config;
|
|
15
17
|
};
|
|
16
|
-
export
|
|
18
|
+
export var setConfig = function(key, value) {
|
|
17
19
|
config[key] = value;
|
|
18
20
|
};
|
|
19
|
-
//# sourceMappingURL=config.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,73 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _object_spread(target) {
|
|
15
|
+
for(var i = 1; i < arguments.length; i++){
|
|
16
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
17
|
+
var ownKeys = Object.keys(source);
|
|
18
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
19
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
ownKeys.forEach(function(key) {
|
|
24
|
+
_define_property(target, key, source[key]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
29
|
+
function ownKeys(object, enumerableOnly) {
|
|
30
|
+
var keys = Object.keys(object);
|
|
31
|
+
if (Object.getOwnPropertySymbols) {
|
|
32
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
33
|
+
if (enumerableOnly) {
|
|
34
|
+
symbols = symbols.filter(function(sym) {
|
|
35
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
keys.push.apply(keys, symbols);
|
|
39
|
+
}
|
|
40
|
+
return keys;
|
|
41
|
+
}
|
|
42
|
+
function _object_spread_props(target, source) {
|
|
43
|
+
source = source != null ? source : {};
|
|
44
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
45
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
46
|
+
} else {
|
|
47
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
48
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return target;
|
|
52
|
+
}
|
|
53
|
+
function _type_of(obj) {
|
|
54
|
+
"@swc/helpers - typeof";
|
|
55
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
56
|
+
}
|
|
1
57
|
import { config } from './config.js';
|
|
2
58
|
/**
|
|
3
59
|
* Formats the money object into a string
|
|
4
60
|
* @param money
|
|
5
61
|
* @param locales
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let locale = config.defaultLocale;
|
|
62
|
+
*/ export function formatMoney(money, providedOptions) {
|
|
63
|
+
var options = _object_spread({}, config.defaultFormat);
|
|
64
|
+
var locale = config.defaultLocale;
|
|
10
65
|
if (typeof providedOptions === 'string') {
|
|
11
66
|
options.currency = providedOptions;
|
|
12
67
|
}
|
|
13
|
-
if (typeof providedOptions === 'object' && providedOptions) {
|
|
14
|
-
for
|
|
15
|
-
|
|
68
|
+
if ((typeof providedOptions === "undefined" ? "undefined" : _type_of(providedOptions)) === 'object' && providedOptions) {
|
|
69
|
+
for(var k in providedOptions){
|
|
70
|
+
var key = k;
|
|
16
71
|
if (key === 'locales') {
|
|
17
72
|
locale = providedOptions[key];
|
|
18
73
|
continue;
|
|
@@ -22,28 +77,25 @@ export function formatMoney(money, providedOptions) {
|
|
|
22
77
|
options[key] = providedOptions[key];
|
|
23
78
|
}
|
|
24
79
|
}
|
|
25
|
-
return new Intl.NumberFormat(locale, {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}).format(money);
|
|
80
|
+
return new Intl.NumberFormat(locale, _object_spread_props(_object_spread({}, options), {
|
|
81
|
+
style: 'currency'
|
|
82
|
+
})).format(money);
|
|
29
83
|
}
|
|
30
84
|
/** // TODO check if there are any instances using this function, update them then remove this
|
|
31
85
|
* @deprecated use formatMoney instead
|
|
32
86
|
* @returns
|
|
33
|
-
*/
|
|
34
|
-
export const formatMoneyWithFraction = formatMoney;
|
|
87
|
+
*/ export var formatMoneyWithFraction = formatMoney;
|
|
35
88
|
/**
|
|
36
89
|
*
|
|
37
90
|
* @param money
|
|
38
91
|
* @param fraction cannot be less than 1
|
|
39
92
|
* @returns
|
|
40
|
-
*/
|
|
41
|
-
|
|
93
|
+
*/ export var decimals = function(money) {
|
|
94
|
+
var fraction = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2;
|
|
42
95
|
if (fraction < 1) {
|
|
43
96
|
throw new Error('Fraction cannot be less than 1');
|
|
44
97
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return Math.round(safe * 10
|
|
98
|
+
var m = +money;
|
|
99
|
+
var safe = Number.isNaN(m) ? 0 : m;
|
|
100
|
+
return Math.round(safe * Math.pow(10, fraction)) / Math.pow(10, fraction);
|
|
48
101
|
};
|
|
49
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@driveflux/format-money",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3-next.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@driveflux/singleton": "2.0.
|
|
16
|
+
"@driveflux/singleton": "2.0.3-next.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@driveflux/fab": "3.0.
|
|
20
|
-
"@driveflux/tsconfig": "2.0.
|
|
21
|
-
"@types/node": "^
|
|
22
|
-
"del-cli": "^
|
|
23
|
-
"typescript": "^5.
|
|
19
|
+
"@driveflux/fab": "3.0.3-next.1",
|
|
20
|
+
"@driveflux/tsconfig": "2.0.3-next.1",
|
|
21
|
+
"@types/node": "^24.9.1",
|
|
22
|
+
"del-cli": "^7.0.0",
|
|
23
|
+
"typescript": "^5.9.3"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "fab",
|